From 1de6f8f944aef7a94796a46626eb1cd5498ff758 Mon Sep 17 00:00:00 2001 From: Sam Rawlins Date: Thu, 26 Feb 2026 08:57:14 -0800 Subject: [PATCH 1/2] [pigeon] Tidy GeneratorAdapters to be const, with getters instead of fields --- packages/pigeon/lib/src/pigeon_lib.dart | 18 ++--- .../pigeon/lib/src/pigeon_lib_internal.dart | 80 +++++++++---------- packages/pigeon/test/pigeon_lib_test.dart | 18 ++--- 3 files changed, 55 insertions(+), 61 deletions(-) diff --git a/packages/pigeon/lib/src/pigeon_lib.dart b/packages/pigeon/lib/src/pigeon_lib.dart index 75216141dc59..97ad3859850a 100644 --- a/packages/pigeon/lib/src/pigeon_lib.dart +++ b/packages/pigeon/lib/src/pigeon_lib.dart @@ -706,15 +706,15 @@ ${_argParser.usage}'''; final List safeGeneratorAdapters = adapters ?? [ - DartGeneratorAdapter(), - JavaGeneratorAdapter(), - SwiftGeneratorAdapter(), - KotlinGeneratorAdapter(), - CppGeneratorAdapter(), - GObjectGeneratorAdapter(), - DartTestGeneratorAdapter(), - ObjcGeneratorAdapter(), - AstGeneratorAdapter(), + const DartGeneratorAdapter(), + const JavaGeneratorAdapter(), + const SwiftGeneratorAdapter(), + const KotlinGeneratorAdapter(), + const CppGeneratorAdapter(), + const GObjectGeneratorAdapter(), + const DartTestGeneratorAdapter(), + const ObjcGeneratorAdapter(), + const AstGeneratorAdapter(), ]; _executeConfigurePigeon(options); diff --git a/packages/pigeon/lib/src/pigeon_lib_internal.dart b/packages/pigeon/lib/src/pigeon_lib_internal.dart index f1387d8032e7..fe187acac691 100644 --- a/packages/pigeon/lib/src/pigeon_lib_internal.dart +++ b/packages/pigeon/lib/src/pigeon_lib_internal.dart @@ -193,26 +193,19 @@ IOSink? _openSink(String? output, {String basePath = ''}) { if (output == null) { return null; } - IOSink sink; - File file; if (output == 'stdout') { - sink = stdout; - } else { - file = File(path.posix.join(basePath, output)); - file.createSync(recursive: true); - sink = file.openWrite(); + return stdout; } - return sink; + final file = File(path.posix.join(basePath, output)); + file.createSync(recursive: true); + return file.openWrite(); } /// An adapter that will call a generator to write code to a sink /// based on the contents of [InternalPigeonOptions]. abstract class GeneratorAdapter { - /// Constructor for [GeneratorAdapter] - GeneratorAdapter(this.fileTypeList); - /// A list of file types the generator should create. - List fileTypeList; + List get fileTypeList; /// Returns an [IOSink] instance to be written to /// if the [GeneratorAdapter] should generate. @@ -257,10 +250,10 @@ void _errorOnInheritedClass(List errors, String generator, Root root) { /// A [GeneratorAdapter] that generates the AST. class AstGeneratorAdapter implements GeneratorAdapter { /// Constructor for [AstGeneratorAdapter]. - AstGeneratorAdapter(); + const AstGeneratorAdapter(); @override - List fileTypeList = const [FileType.na]; + List get fileTypeList => const [FileType.na]; @override void generate( @@ -283,13 +276,13 @@ class AstGeneratorAdapter implements GeneratorAdapter { /// A [GeneratorAdapter] that generates Dart source code. class DartGeneratorAdapter implements GeneratorAdapter { /// Constructor for [DartGeneratorAdapter]. - DartGeneratorAdapter(); + const DartGeneratorAdapter(); /// A string representing the name of the language being generated. - String languageString = 'Dart'; + static const String languageString = 'Dart'; @override - List fileTypeList = const [FileType.na]; + List get fileTypeList => const [FileType.na]; @override void generate( @@ -322,10 +315,10 @@ class DartGeneratorAdapter implements GeneratorAdapter { /// A [GeneratorAdapter] that generates Dart test source code. class DartTestGeneratorAdapter implements GeneratorAdapter { /// Constructor for [DartTestGeneratorAdapter]. - DartTestGeneratorAdapter(); + const DartTestGeneratorAdapter(); @override - List fileTypeList = const [FileType.na]; + List get fileTypeList => const [FileType.na]; @override void generate( @@ -370,15 +363,16 @@ class DartTestGeneratorAdapter implements GeneratorAdapter { /// A [GeneratorAdapter] that generates Objective-C code. class ObjcGeneratorAdapter implements GeneratorAdapter { /// Constructor for [ObjcGeneratorAdapter]. - ObjcGeneratorAdapter({ - this.fileTypeList = const [FileType.header, FileType.source], - }); + const ObjcGeneratorAdapter(); /// A string representing the name of the language being generated. - String languageString = 'Objective-C'; + static const String languageString = 'Objective-C'; @override - List fileTypeList; + List get fileTypeList => const [ + FileType.header, + FileType.source, + ]; @override void generate( @@ -431,13 +425,13 @@ class ObjcGeneratorAdapter implements GeneratorAdapter { /// A [GeneratorAdapter] that generates Java source code. class JavaGeneratorAdapter implements GeneratorAdapter { /// Constructor for [JavaGeneratorAdapter]. - JavaGeneratorAdapter(); + const JavaGeneratorAdapter(); /// A string representing the name of the language being generated. - String languageString = 'Java'; + static const String languageString = 'Java'; @override - List fileTypeList = const [FileType.na]; + List get fileTypeList => const [FileType.na]; @override void generate( @@ -475,13 +469,13 @@ class JavaGeneratorAdapter implements GeneratorAdapter { /// A [GeneratorAdapter] that generates Swift source code. class SwiftGeneratorAdapter implements GeneratorAdapter { /// Constructor for [SwiftGeneratorAdapter]. - SwiftGeneratorAdapter(); + const SwiftGeneratorAdapter(); /// A string representing the name of the language being generated. - String languageString = 'Swift'; + static const String languageString = 'Swift'; @override - List fileTypeList = const [FileType.na]; + List get fileTypeList => const [FileType.na]; @override void generate( @@ -516,15 +510,16 @@ class SwiftGeneratorAdapter implements GeneratorAdapter { /// A [GeneratorAdapter] that generates C++ source code. class CppGeneratorAdapter implements GeneratorAdapter { /// Constructor for [CppGeneratorAdapter]. - CppGeneratorAdapter({ - this.fileTypeList = const [FileType.header, FileType.source], - }); + const CppGeneratorAdapter(); /// A string representing the name of the language being generated. - String languageString = 'C++'; + static const String languageString = 'C++'; @override - List fileTypeList; + List get fileTypeList => const [ + FileType.header, + FileType.source, + ]; @override void generate( @@ -577,15 +572,16 @@ class CppGeneratorAdapter implements GeneratorAdapter { /// A [GeneratorAdapter] that generates GObject source code. class GObjectGeneratorAdapter implements GeneratorAdapter { /// Constructor for [GObjectGeneratorAdapter]. - GObjectGeneratorAdapter({ - this.fileTypeList = const [FileType.header, FileType.source], - }); + const GObjectGeneratorAdapter(); /// A string representing the name of the language being generated. - String languageString = 'GObject'; + static const String languageString = 'GObject'; @override - List fileTypeList; + List get fileTypeList => const [ + FileType.header, + FileType.source, + ]; @override void generate( @@ -649,10 +645,10 @@ class GObjectGeneratorAdapter implements GeneratorAdapter { /// A [GeneratorAdapter] that generates Kotlin source code. class KotlinGeneratorAdapter implements GeneratorAdapter { /// Constructor for [KotlinGeneratorAdapter]. - KotlinGeneratorAdapter({this.fileTypeList = const [FileType.na]}); + const KotlinGeneratorAdapter(); @override - List fileTypeList; + List get fileTypeList => const [FileType.na]; @override void generate( diff --git a/packages/pigeon/test/pigeon_lib_test.dart b/packages/pigeon/test/pigeon_lib_test.dart index 2627787c4f03..13f84047f0a5 100644 --- a/packages/pigeon/test/pigeon_lib_test.dart +++ b/packages/pigeon/test/pigeon_lib_test.dart @@ -494,7 +494,7 @@ abstract class NestorApi { copyrightHeader: './copyright_header.txt', dartOut: '', ); - final dartGeneratorAdapter = DartGeneratorAdapter(); + const dartGeneratorAdapter = DartGeneratorAdapter(); final buffer = StringBuffer(); dartGeneratorAdapter.generate( buffer, @@ -511,7 +511,7 @@ abstract class NestorApi { javaOut: 'Foo.java', copyrightHeader: './copyright_header.txt', ); - final javaGeneratorAdapter = JavaGeneratorAdapter(); + const javaGeneratorAdapter = JavaGeneratorAdapter(); final buffer = StringBuffer(); javaGeneratorAdapter.generate( buffer, @@ -529,7 +529,7 @@ abstract class NestorApi { objcHeaderOut: '', objcSourceOut: '', ); - final objcHeaderGeneratorAdapter = ObjcGeneratorAdapter(); + const objcHeaderGeneratorAdapter = ObjcGeneratorAdapter(); final buffer = StringBuffer(); objcHeaderGeneratorAdapter.generate( buffer, @@ -547,7 +547,7 @@ abstract class NestorApi { objcHeaderOut: '', objcSourceOut: '', ); - final objcSourceGeneratorAdapter = ObjcGeneratorAdapter(); + const objcSourceGeneratorAdapter = ObjcGeneratorAdapter(); final buffer = StringBuffer(); objcSourceGeneratorAdapter.generate( buffer, @@ -564,7 +564,7 @@ abstract class NestorApi { swiftOut: 'Foo.swift', copyrightHeader: './copyright_header.txt', ); - final swiftGeneratorAdapter = SwiftGeneratorAdapter(); + const swiftGeneratorAdapter = SwiftGeneratorAdapter(); final buffer = StringBuffer(); swiftGeneratorAdapter.generate( buffer, @@ -582,7 +582,7 @@ abstract class NestorApi { cppHeaderOut: 'Foo.h', copyrightHeader: './copyright_header.txt', ); - final cppHeaderGeneratorAdapter = CppGeneratorAdapter(); + const cppHeaderGeneratorAdapter = CppGeneratorAdapter(); final buffer = StringBuffer(); cppHeaderGeneratorAdapter.generate( buffer, @@ -600,9 +600,7 @@ abstract class NestorApi { cppHeaderOut: '', cppSourceOut: '', ); - final cppSourceGeneratorAdapter = CppGeneratorAdapter( - fileTypeList: [FileType.source], - ); + const cppSourceGeneratorAdapter = CppGeneratorAdapter(); final buffer = StringBuffer(); cppSourceGeneratorAdapter.generate( buffer, @@ -1174,7 +1172,7 @@ abstract class Api { dartTestOut: 'stdout', dartOut: 'stdout', ); - final dartTestGeneratorAdapter = DartTestGeneratorAdapter(); + const dartTestGeneratorAdapter = DartTestGeneratorAdapter(); final buffer = StringBuffer(); dartTestGeneratorAdapter.generate( buffer, From e400e683000165532e6438c0a70fc187bb5140af Mon Sep 17 00:00:00 2001 From: Sam Rawlins Date: Thu, 26 Feb 2026 12:16:29 -0800 Subject: [PATCH 2/2] bump to 26.1.8 --- packages/pigeon/CHANGELOG.md | 4 ++++ packages/pigeon/lib/src/generator_tools.dart | 2 +- packages/pigeon/pubspec.yaml | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/pigeon/CHANGELOG.md b/packages/pigeon/CHANGELOG.md index 721ab01fc459..2668bb0a9f7e 100644 --- a/packages/pigeon/CHANGELOG.md +++ b/packages/pigeon/CHANGELOG.md @@ -1,3 +1,7 @@ +## 26.1.8 + +* Makes some internal class constructors constant. + ## 26.1.7 * [objc] Updates to use module imports. diff --git a/packages/pigeon/lib/src/generator_tools.dart b/packages/pigeon/lib/src/generator_tools.dart index e00fdf2063dd..37a3eb94e161 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.1.7'; +const String pigeonVersion = '26.1.8'; /// Read all the content from [stdin] to a String. String readStdin() { diff --git a/packages/pigeon/pubspec.yaml b/packages/pigeon/pubspec.yaml index d01fb9466690..a2b22e26f34c 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.1.7 # This must match the version in lib/src/generator_tools.dart +version: 26.1.8 # This must match the version in lib/src/generator_tools.dart environment: sdk: ^3.9.0