From 9b46470812b6b6ecd34a490dde990cd002d1cbd3 Mon Sep 17 00:00:00 2001 From: tarrinneal Date: Thu, 23 Oct 2025 16:29:06 -0700 Subject: [PATCH 1/4] removes containsKey --- packages/pigeon/CHANGELOG.md | 4 ++++ packages/pigeon/lib/src/kotlin/kotlin_generator.dart | 2 +- .../src/main/kotlin/com/example/test_plugin/CoreTests.gen.kt | 2 +- .../kotlin/com/example/test_plugin/EventChannelTests.gen.kt | 2 +- packages/pigeon/pubspec.yaml | 2 +- 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/pigeon/CHANGELOG.md b/packages/pigeon/CHANGELOG.md index 0bea707a6e1..4538a4fadf3 100644 --- a/packages/pigeon/CHANGELOG.md +++ b/packages/pigeon/CHANGELOG.md @@ -1,3 +1,7 @@ +## 26.0.3 + +* [kotlin] Removes all `containsKey` and replaces with `contains`. + ## 26.0.2 * [kotlin] Fixes support for classes that override equals and hashCode for ProxyApis. diff --git a/packages/pigeon/lib/src/kotlin/kotlin_generator.dart b/packages/pigeon/lib/src/kotlin/kotlin_generator.dart index 7762d1c1de8..52c4b1c4f20 100644 --- a/packages/pigeon/lib/src/kotlin/kotlin_generator.dart +++ b/packages/pigeon/lib/src/kotlin/kotlin_generator.dart @@ -1341,7 +1341,7 @@ fun deepEquals(a: Any?, b: Any?): Boolean { } if (a is Map<*, *> && b is Map<*, *>) { return a.size == b.size && a.all { - (b as Map).containsKey(it.key) && + (b as Map).contains(it.key) && deepEquals(it.value, b[it.key]) } } diff --git a/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/CoreTests.gen.kt b/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/CoreTests.gen.kt index da69ba67a1e..71fe5b65b32 100644 --- a/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/CoreTests.gen.kt +++ b/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/CoreTests.gen.kt @@ -59,7 +59,7 @@ private object CoreTestsPigeonUtils { } if (a is Map<*, *> && b is Map<*, *>) { return a.size == b.size && - a.all { (b as Map).containsKey(it.key) && deepEquals(it.value, b[it.key]) } + a.all { (b as Map).contains(it.key) && deepEquals(it.value, b[it.key]) } } return a == b } diff --git a/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/EventChannelTests.gen.kt b/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/EventChannelTests.gen.kt index 086269a7adc..fce3027c257 100644 --- a/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/EventChannelTests.gen.kt +++ b/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/EventChannelTests.gen.kt @@ -37,7 +37,7 @@ private object EventChannelTestsPigeonUtils { } if (a is Map<*, *> && b is Map<*, *>) { return a.size == b.size && - a.all { (b as Map).containsKey(it.key) && deepEquals(it.value, b[it.key]) } + a.all { (b as Map).contains(it.key) && deepEquals(it.value, b[it.key]) } } return a == b } diff --git a/packages/pigeon/pubspec.yaml b/packages/pigeon/pubspec.yaml index 3e247f4cfad..60c5bac2b6c 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.0.2 # This must match the version in lib/src/generator_tools.dart +version: 26.0.3 # This must match the version in lib/src/generator_tools.dart environment: sdk: ^3.7.0 From 2bc9a77ca253e8df63a8248a817055073da0a0ec Mon Sep 17 00:00:00 2001 From: tarrinneal Date: Thu, 23 Oct 2025 16:29:17 -0700 Subject: [PATCH 2/4] 3 --- packages/pigeon/lib/src/generator_tools.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/pigeon/lib/src/generator_tools.dart b/packages/pigeon/lib/src/generator_tools.dart index fea24b6ef45..4d1ac6caa82 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.0.2'; +const String pigeonVersion = '26.0.3'; /// Read all the content from [stdin] to a String. String readStdin() { From f13cbd45e740ca869ecad8b24f3cf11294b35b67 Mon Sep 17 00:00:00 2001 From: tarrinneal Date: Thu, 23 Oct 2025 17:56:44 -0700 Subject: [PATCH 3/4] test --- packages/pigeon/test/kotlin_generator_test.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/pigeon/test/kotlin_generator_test.dart b/packages/pigeon/test/kotlin_generator_test.dart index 358fb6eff8b..cda740ae734 100644 --- a/packages/pigeon/test/kotlin_generator_test.dart +++ b/packages/pigeon/test/kotlin_generator_test.dart @@ -55,6 +55,7 @@ void main() { expect(code, contains('val field1: Long? = null')); expect(code, contains('fun fromList(pigeonVar_list: List): Foobar')); expect(code, contains('fun toList(): List')); + expect(code, isNot(contains('containsKey'))); }); test('gen one enum', () { From dde9f5e19c3441d9e7027ea9b0ee605b709efbb0 Mon Sep 17 00:00:00 2001 From: tarrinneal Date: Thu, 23 Oct 2025 18:07:00 -0700 Subject: [PATCH 4/4] gen --- .../dev/flutter/pigeon_example_app/EventChannelMessages.g.kt | 2 +- .../main/kotlin/dev/flutter/pigeon_example_app/Messages.g.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/pigeon/example/app/android/app/src/main/kotlin/dev/flutter/pigeon_example_app/EventChannelMessages.g.kt b/packages/pigeon/example/app/android/app/src/main/kotlin/dev/flutter/pigeon_example_app/EventChannelMessages.g.kt index 064992228d4..d7ec9b6255c 100644 --- a/packages/pigeon/example/app/android/app/src/main/kotlin/dev/flutter/pigeon_example_app/EventChannelMessages.g.kt +++ b/packages/pigeon/example/app/android/app/src/main/kotlin/dev/flutter/pigeon_example_app/EventChannelMessages.g.kt @@ -34,7 +34,7 @@ private object EventChannelMessagesPigeonUtils { } if (a is Map<*, *> && b is Map<*, *>) { return a.size == b.size && - a.all { (b as Map).containsKey(it.key) && deepEquals(it.value, b[it.key]) } + a.all { (b as Map).contains(it.key) && deepEquals(it.value, b[it.key]) } } return a == b } diff --git a/packages/pigeon/example/app/android/app/src/main/kotlin/dev/flutter/pigeon_example_app/Messages.g.kt b/packages/pigeon/example/app/android/app/src/main/kotlin/dev/flutter/pigeon_example_app/Messages.g.kt index e6850db636e..645bf5551ed 100644 --- a/packages/pigeon/example/app/android/app/src/main/kotlin/dev/flutter/pigeon_example_app/Messages.g.kt +++ b/packages/pigeon/example/app/android/app/src/main/kotlin/dev/flutter/pigeon_example_app/Messages.g.kt @@ -56,7 +56,7 @@ private object MessagesPigeonUtils { } if (a is Map<*, *> && b is Map<*, *>) { return a.size == b.size && - a.all { (b as Map).containsKey(it.key) && deepEquals(it.value, b[it.key]) } + a.all { (b as Map).contains(it.key) && deepEquals(it.value, b[it.key]) } } return a == b }