From 6de907671089c946417c47dd648edad19acd2e14 Mon Sep 17 00:00:00 2001 From: tarrinneal Date: Tue, 24 Mar 2026 18:13:33 -0700 Subject: [PATCH 1/4] Update analyzer to support 10.0.0 --- packages/pigeon/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/pigeon/pubspec.yaml b/packages/pigeon/pubspec.yaml index d727a2368700..b3dce8924a67 100644 --- a/packages/pigeon/pubspec.yaml +++ b/packages/pigeon/pubspec.yaml @@ -8,7 +8,7 @@ environment: sdk: ^3.9.0 dependencies: - analyzer: ">=8.0.0 <10.0.0" + analyzer: ">=8.0.0 <11.0.0" args: ^2.5.0 code_builder: ^4.10.0 collection: ^1.15.0 From 930e774d201b98cd0831eeb897a450dafce13f33 Mon Sep 17 00:00:00 2001 From: tarrinneal Date: Tue, 24 Mar 2026 18:21:58 -0700 Subject: [PATCH 2/4] allow use of analyzer 10 --- packages/pigeon/CHANGELOG.md | 4 ++++ packages/pigeon/lib/src/generator_tools.dart | 2 +- packages/pigeon/pubspec.yaml | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/pigeon/CHANGELOG.md b/packages/pigeon/CHANGELOG.md index 7286aedf68c2..3c77d8af36f0 100644 --- a/packages/pigeon/CHANGELOG.md +++ b/packages/pigeon/CHANGELOG.md @@ -1,3 +1,7 @@ +## 26.2.4 + +* Updates `analyzer` dependency to support version 10.0.0. + ## 26.2.3 * Produces a helpful error message when a method return type is missing or an diff --git a/packages/pigeon/lib/src/generator_tools.dart b/packages/pigeon/lib/src/generator_tools.dart index aadb022bd246..a07c3d651b2f 100644 --- a/packages/pigeon/lib/src/generator_tools.dart +++ b/packages/pigeon/lib/src/generator_tools.dart @@ -15,7 +15,7 @@ import 'generator.dart'; /// The current version of pigeon. /// /// This must match the version in pubspec.yaml. -const String pigeonVersion = '26.2.3'; +const String pigeonVersion = '26.2.4'; /// Default plugin package name. const String defaultPluginPackageName = 'dev.flutter.pigeon'; diff --git a/packages/pigeon/pubspec.yaml b/packages/pigeon/pubspec.yaml index b3dce8924a67..a05de29ca108 100644 --- a/packages/pigeon/pubspec.yaml +++ b/packages/pigeon/pubspec.yaml @@ -2,7 +2,7 @@ name: pigeon description: Code generator tool to make communication between Flutter and the host platform type-safe and easier. repository: https://github.com/flutter/packages/tree/main/packages/pigeon issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+pigeon%22 -version: 26.2.3 # This must match the version in lib/src/generator_tools.dart +version: 26.2.4 # This must match the version in lib/src/generator_tools.dart environment: sdk: ^3.9.0 @@ -27,3 +27,4 @@ topics: - interop - platform-channels - plugin-development + From 53296115f066906df76201640742cf37e6ccf791 Mon Sep 17 00:00:00 2001 From: tarrinneal Date: Tue, 24 Mar 2026 18:44:25 -0700 Subject: [PATCH 3/4] fix broken parent class assumptions --- packages/pigeon/lib/src/pigeon_lib_internal.dart | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/pigeon/lib/src/pigeon_lib_internal.dart b/packages/pigeon/lib/src/pigeon_lib_internal.dart index 75bbb96a293e..19da4613ce42 100644 --- a/packages/pigeon/lib/src/pigeon_lib_internal.dart +++ b/packages/pigeon/lib/src/pigeon_lib_internal.dart @@ -1922,10 +1922,14 @@ class RootBuilder extends dart_ast_visitor.RecursiveAstVisitor { // resolved return type, via // `node.declaredFragment!.element.returnType`. String erroneousDeclaration = node.name.lexeme; - final dart_ast.AstNode? enclosingDeclaration = node.parent; + dart_ast.AstNode? enclosingDeclaration = node.parent; + while (enclosingDeclaration != null && + enclosingDeclaration is! dart_ast.ClassDeclaration) { + enclosingDeclaration = enclosingDeclaration.parent; + } if (enclosingDeclaration is dart_ast.ClassDeclaration) { erroneousDeclaration = - '${enclosingDeclaration.name}.$erroneousDeclaration'; + '${enclosingDeclaration.name.lexeme}.$erroneousDeclaration'; } _errors.add( Error( From 2a4705571bfd93693c558409d975caa5ae71af92 Mon Sep 17 00:00:00 2001 From: tarrinneal Date: Wed, 25 Mar 2026 17:19:54 -0700 Subject: [PATCH 4/4] upgrade to analyzer 12 --- .../pigeon/lib/src/pigeon_lib_internal.dart | 20 +++++++++---------- packages/pigeon/pubspec.yaml | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/pigeon/lib/src/pigeon_lib_internal.dart b/packages/pigeon/lib/src/pigeon_lib_internal.dart index 19da4613ce42..617a901f37cc 100644 --- a/packages/pigeon/lib/src/pigeon_lib_internal.dart +++ b/packages/pigeon/lib/src/pigeon_lib_internal.dart @@ -1579,7 +1579,7 @@ class RootBuilder extends dart_ast_visitor.RecursiveAstVisitor { _errors.add( Error( message: - 'API "${node.name.lexeme}" can only have one API annotation but contains: ${node.metadata}', + 'API "${node.namePart.typeName.lexeme}" can only have one API annotation but contains: ${node.metadata}', lineNumber: calculateLineNumber(source, node.offset), ), ); @@ -1606,7 +1606,7 @@ class RootBuilder extends dart_ast_visitor.RecursiveAstVisitor { } _currentApi = AstHostApi( - name: node.name.lexeme, + name: node.namePart.typeName.lexeme, methods: [], dartHostTestHandler: dartHostTestHandler, documentationComments: _documentationCommentsParser( @@ -1615,7 +1615,7 @@ class RootBuilder extends dart_ast_visitor.RecursiveAstVisitor { ); } else if (_hasMetadata(node.metadata, 'FlutterApi')) { _currentApi = AstFlutterApi( - name: node.name.lexeme, + name: node.namePart.typeName.lexeme, methods: [], documentationComments: _documentationCommentsParser( node.documentationComment?.tokens, @@ -1642,7 +1642,7 @@ class RootBuilder extends dart_ast_visitor.RecursiveAstVisitor { _errors.add( Error( message: - 'ProxyApis should either set the super class in the annotation OR use extends: ("${node.name.lexeme}").', + 'ProxyApis should either set the super class in the annotation OR use extends: ("${node.namePart.typeName.lexeme}").', lineNumber: calculateLineNumber(source, node.offset), ), ); @@ -1713,7 +1713,7 @@ class RootBuilder extends dart_ast_visitor.RecursiveAstVisitor { } _currentApi = AstProxyApi( - name: node.name.lexeme, + name: node.namePart.typeName.lexeme, methods: [], constructors: [], fields: [], @@ -1760,7 +1760,7 @@ class RootBuilder extends dart_ast_visitor.RecursiveAstVisitor { ); } _currentApi = AstEventChannelApi( - name: node.name.lexeme, + name: node.namePart.typeName.lexeme, methods: [], swiftOptions: swiftOptions, kotlinOptions: kotlinOptions, @@ -1771,7 +1771,7 @@ class RootBuilder extends dart_ast_visitor.RecursiveAstVisitor { } } else { _currentClass = Class( - name: node.name.lexeme, + name: node.namePart.typeName.lexeme, fields: [], superClassName: node.implementsClause?.interfaces.first.name.toString() ?? @@ -1929,7 +1929,7 @@ class RootBuilder extends dart_ast_visitor.RecursiveAstVisitor { } if (enclosingDeclaration is dart_ast.ClassDeclaration) { erroneousDeclaration = - '${enclosingDeclaration.name.lexeme}.$erroneousDeclaration'; + '${enclosingDeclaration.namePart.typeName}.$erroneousDeclaration'; } _errors.add( Error( @@ -1986,8 +1986,8 @@ class RootBuilder extends dart_ast_visitor.RecursiveAstVisitor { Object? visitEnumDeclaration(dart_ast.EnumDeclaration node) { _enums.add( Enum( - name: node.name.lexeme, - members: node.constants + name: node.namePart.typeName.lexeme, + members: node.body.constants .map( (dart_ast.EnumConstantDeclaration e) => EnumMember( name: e.name.lexeme, diff --git a/packages/pigeon/pubspec.yaml b/packages/pigeon/pubspec.yaml index a05de29ca108..014f40d0c486 100644 --- a/packages/pigeon/pubspec.yaml +++ b/packages/pigeon/pubspec.yaml @@ -8,7 +8,7 @@ environment: sdk: ^3.9.0 dependencies: - analyzer: ">=8.0.0 <11.0.0" + analyzer: ">=10.0.0 <12.0.0" args: ^2.5.0 code_builder: ^4.10.0 collection: ^1.15.0