Migrate imitation_game and pigeon to null safety (#2526)

diff --git a/packages/imitation_game/imitation_tests/smiley/flutter/smiley/lib/main.dart b/packages/imitation_game/imitation_tests/smiley/flutter/smiley/lib/main.dart
index 627dd5a..424dbd7 100644
--- a/packages/imitation_game/imitation_tests/smiley/flutter/smiley/lib/main.dart
+++ b/packages/imitation_game/imitation_tests/smiley/flutter/smiley/lib/main.dart
@@ -24,7 +24,7 @@
   final String measurementName =
       '${Platform.isAndroid ? "android_" : "ios_"}startup_time';
   final http.Response response = await http.post(
-    'http://$_hostIp',
+    Uri.http(_hostIp),
     headers: <String, String>{
       'Content-Type': 'application/json; charset=UTF-8',
     },
diff --git a/packages/imitation_game/imitation_tests/smiley/flutter/smiley/pubspec.yaml b/packages/imitation_game/imitation_tests/smiley/flutter/smiley/pubspec.yaml
index 61a4149..a8704cc 100644
--- a/packages/imitation_game/imitation_tests/smiley/flutter/smiley/pubspec.yaml
+++ b/packages/imitation_game/imitation_tests/smiley/flutter/smiley/pubspec.yaml
@@ -21,10 +21,10 @@
   sdk: ">=2.7.0 <3.0.0"
 
 dependencies:
-  cupertino_icons: ^0.1.3
+  cupertino_icons: ^1.0.5
   flutter:
     sdk: flutter
-  http: ^0.12.2
+  http: ^0.13.5
   poll_ios_stats: ^0.0.1
 
 dev_dependencies:
diff --git a/packages/pigeon/CONTRIBUTING.md b/packages/pigeon/CONTRIBUTING.md
index 2dc8e70..0bad855 100644
--- a/packages/pigeon/CONTRIBUTING.md
+++ b/packages/pigeon/CONTRIBUTING.md
@@ -54,7 +54,6 @@
 looks like (see [State Diagram](#state-diagram)):
 
 ```dart
-@dart = 2.12
 import 'path/to/supplied/pigeon/file.dart'
 import 'dart:io';
 import 'dart:isolate';
diff --git a/packages/pigeon/e2e_tests/test_objc/android/app/src/main/java/io/flutter/plugins/Pigeon.java b/packages/pigeon/e2e_tests/test_objc/android/app/src/main/java/io/flutter/plugins/Pigeon.java
index b8bda15b..bc7fe87 100644
--- a/packages/pigeon/e2e_tests/test_objc/android/app/src/main/java/io/flutter/plugins/Pigeon.java
+++ b/packages/pigeon/e2e_tests/test_objc/android/app/src/main/java/io/flutter/plugins/Pigeon.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Autogenerated from Pigeon (v3.0.4), do not edit directly.
+// Autogenerated from Pigeon (v4.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 
 package dev.flutter.aaclarke.pigeon;
@@ -26,9 +26,9 @@
 public class MessagePigeon {
 
   public enum MessageRequestState {
-    pending(0),
-    success(1),
-    failure(2);
+    PENDING(0),
+    SUCCESS(1),
+    FAILURE(2);
 
     private int index;
 
diff --git a/packages/pigeon/e2e_tests/test_objc/lib/dartle.dart b/packages/pigeon/e2e_tests/test_objc/lib/dartle.dart
index d321f40..3e86aca 100644
--- a/packages/pigeon/e2e_tests/test_objc/lib/dartle.dart
+++ b/packages/pigeon/e2e_tests/test_objc/lib/dartle.dart
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Autogenerated from Pigeon (v3.0.4), do not edit directly.
+// Autogenerated from Pigeon (v4.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
-// @dart = 2.12
 import 'dart:async';
 import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List;
 
diff --git a/packages/pigeon/mock_handler_tester/test/message.dart b/packages/pigeon/mock_handler_tester/test/message.dart
index d321f40..3e86aca 100644
--- a/packages/pigeon/mock_handler_tester/test/message.dart
+++ b/packages/pigeon/mock_handler_tester/test/message.dart
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Autogenerated from Pigeon (v3.0.4), do not edit directly.
+// Autogenerated from Pigeon (v4.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
-// @dart = 2.12
 import 'dart:async';
 import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List;
 
diff --git a/packages/pigeon/mock_handler_tester/test/test.dart b/packages/pigeon/mock_handler_tester/test/test.dart
index f0640c2..b8adae4 100644
--- a/packages/pigeon/mock_handler_tester/test/test.dart
+++ b/packages/pigeon/mock_handler_tester/test/test.dart
@@ -2,11 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Autogenerated from Pigeon (v3.0.4), do not edit directly.
+// Autogenerated from Pigeon (v4.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, unnecessary_import
 // ignore_for_file: avoid_relative_lib_imports
-// @dart = 2.12
 import 'dart:async';
 import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List;
 import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer;
diff --git a/packages/pigeon/platform_tests/android_unit_tests/pubspec.yaml b/packages/pigeon/platform_tests/android_unit_tests/pubspec.yaml
index febf7cf..2d098b8 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/pubspec.yaml
+++ b/packages/pigeon/platform_tests/android_unit_tests/pubspec.yaml
@@ -5,7 +5,7 @@
 version: 1.0.0+1
 
 environment:
-  sdk: ">=2.7.0 <3.0.0"
+  sdk: ">=2.12.0 <3.0.0"
 
 dependencies:
   cupertino_icons: ^1.0.2
diff --git a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/all_datatypes.dart b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/all_datatypes.dart
index fa0e4b8..c3f9fe3 100644
--- a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/all_datatypes.dart
+++ b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/all_datatypes.dart
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Autogenerated from Pigeon (v3.2.0), do not edit directly.
+// Autogenerated from Pigeon (v4.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
-// @dart = 2.12
 import 'dart:async';
 import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List;
 
@@ -66,7 +65,7 @@
     return Everything(
       aBool: pigeonMap['aBool'] as bool?,
       anInt: pigeonMap['anInt'] as int?,
-      aDouble: (pigeonMap['aDouble'] as num?)?.toDouble(),
+      aDouble: pigeonMap['aDouble'] as double?,
       aString: pigeonMap['aString'] as String?,
       aByteArray: pigeonMap['aByteArray'] as Uint8List?,
       a4ByteArray: pigeonMap['a4ByteArray'] as Int32List?,
diff --git a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/multiple_arity.gen.dart b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/multiple_arity.gen.dart
index e75d34c..33f8c04 100644
--- a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/multiple_arity.gen.dart
+++ b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/multiple_arity.gen.dart
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Autogenerated from Pigeon (v3.2.0), do not edit directly.
+// Autogenerated from Pigeon (v4.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
-// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name
-// @dart = 2.12
+// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
 import 'dart:async';
 import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List;
 
diff --git a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/non_null_fields.gen.dart b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/non_null_fields.gen.dart
index 9cb1e52..0ef5ab0 100644
--- a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/non_null_fields.gen.dart
+++ b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/non_null_fields.gen.dart
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Autogenerated from Pigeon (v3.2.0), do not edit directly.
+// Autogenerated from Pigeon (v4.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
-// @dart = 2.12
 import 'dart:async';
 import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List;
 
diff --git a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/null_fields.gen.dart b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/null_fields.gen.dart
index 4e6c96b..1e5593a 100644
--- a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/null_fields.gen.dart
+++ b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/null_fields.gen.dart
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Autogenerated from Pigeon (v3.2.0), do not edit directly.
+// Autogenerated from Pigeon (v4.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
-// @dart = 2.12
 import 'dart:async';
 import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List;
 
diff --git a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/null_safe_pigeon.dart b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/null_safe_pigeon.dart
index 25425f8..b5e42c9 100644
--- a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/null_safe_pigeon.dart
+++ b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/null_safe_pigeon.dart
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Autogenerated from Pigeon (v3.2.0), do not edit directly.
+// Autogenerated from Pigeon (v4.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
-// @dart = 2.12
 import 'dart:async';
 import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List;
 
diff --git a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/nullable_returns.gen.dart b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/nullable_returns.gen.dart
index efdff1c..6d315e6 100644
--- a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/nullable_returns.gen.dart
+++ b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/nullable_returns.gen.dart
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Autogenerated from Pigeon (v3.2.0), do not edit directly.
+// Autogenerated from Pigeon (v4.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
-// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name
-// @dart = 2.12
+// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
 import 'dart:async';
 import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List;
 
diff --git a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/primitive.dart b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/primitive.dart
index 806478f..e0a8455 100644
--- a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/primitive.dart
+++ b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/primitive.dart
@@ -2,10 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Autogenerated from Pigeon (v3.2.0), do not edit directly.
+// Autogenerated from Pigeon (v4.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
-// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name
-// @dart = 2.12
+// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
 import 'dart:async';
 import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List;
 
diff --git a/packages/pigeon/platform_tests/ios_swift_unit_tests/lib/main.dart b/packages/pigeon/platform_tests/ios_swift_unit_tests/lib/main.dart
index 69750c1..2bf25d3 100644
--- a/packages/pigeon/platform_tests/ios_swift_unit_tests/lib/main.dart
+++ b/packages/pigeon/platform_tests/ios_swift_unit_tests/lib/main.dart
@@ -9,7 +9,7 @@
 /// An empty app.
 class MyApp extends StatelessWidget {
   /// Creates an empty app.
-  const MyApp({Key key}) : super(key: key);
+  const MyApp({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
diff --git a/packages/pigeon/platform_tests/ios_swift_unit_tests/pubspec.yaml b/packages/pigeon/platform_tests/ios_swift_unit_tests/pubspec.yaml
index 1a3c6d8..be6cdd2 100644
--- a/packages/pigeon/platform_tests/ios_swift_unit_tests/pubspec.yaml
+++ b/packages/pigeon/platform_tests/ios_swift_unit_tests/pubspec.yaml
@@ -5,7 +5,7 @@
 version: 1.0.0+1
 
 environment:
-  sdk: ">=2.1.0 <3.0.0"
+  sdk: ">=2.12.0 <3.0.0"
 
 dependencies:
   cupertino_icons: ^0.1.2
diff --git a/packages/pigeon/platform_tests/ios_unit_tests/lib/main.dart b/packages/pigeon/platform_tests/ios_unit_tests/lib/main.dart
index 69750c1..2bf25d3 100644
--- a/packages/pigeon/platform_tests/ios_unit_tests/lib/main.dart
+++ b/packages/pigeon/platform_tests/ios_unit_tests/lib/main.dart
@@ -9,7 +9,7 @@
 /// An empty app.
 class MyApp extends StatelessWidget {
   /// Creates an empty app.
-  const MyApp({Key key}) : super(key: key);
+  const MyApp({Key? key}) : super(key: key);
 
   @override
   Widget build(BuildContext context) {
diff --git a/packages/pigeon/platform_tests/ios_unit_tests/pubspec.yaml b/packages/pigeon/platform_tests/ios_unit_tests/pubspec.yaml
index 125ae23..1354ce6 100644
--- a/packages/pigeon/platform_tests/ios_unit_tests/pubspec.yaml
+++ b/packages/pigeon/platform_tests/ios_unit_tests/pubspec.yaml
@@ -15,7 +15,7 @@
 version: 1.0.0+1
 
 environment:
-  sdk: ">=2.1.0 <3.0.0"
+  sdk: ">=2.12.0 <3.0.0"
 
 dependencies:
   cupertino_icons: ^0.1.2