diff --git a/packages/pigeon/CHANGELOG.md b/packages/pigeon/CHANGELOG.md
index 9181db8..33ed27c 100644
--- a/packages/pigeon/CHANGELOG.md
+++ b/packages/pigeon/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 1.0.8
+
+* [front-end] Started accepting explicit Object references in type arguments.
+* [codecs] Fixed nuisance where duplicate entries could show up in custom codecs.
+
 ## 1.0.7
 
 * [front-end] Fixed bug where nested classes' type arguments aren't included in
diff --git a/packages/pigeon/lib/ast.dart b/packages/pigeon/lib/ast.dart
index 8ad4ccf..f4da018 100644
--- a/packages/pigeon/lib/ast.dart
+++ b/packages/pigeon/lib/ast.dart
@@ -2,6 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+import 'package:collection/collection.dart' show ListEquality;
+import 'package:meta/meta.dart';
+
+final Function _listEquals = const ListEquality<dynamic>().equals;
+
 /// Enum that represents where an [Api] is located, on the host or Flutter.
 enum ApiLocation {
   /// The API is for calling functions defined on the host.
@@ -79,16 +84,17 @@
 }
 
 /// A specific instance of a type.
+@immutable
 class TypeDeclaration {
   /// Constructor for [TypeDeclaration].
-  TypeDeclaration({
+  const TypeDeclaration({
     required this.baseName,
     required this.isNullable,
     this.typeArguments = const <TypeDeclaration>[],
   });
 
   /// Void constructor.
-  TypeDeclaration.voidDeclaration()
+  const TypeDeclaration.voidDeclaration()
       : baseName = 'void',
         isNullable = false,
         typeArguments = const <TypeDeclaration>[];
@@ -106,6 +112,31 @@
   final bool isNullable;
 
   @override
+  int get hashCode {
+    // This has to be implemented because TypeDeclaration is used as a Key to a
+    // Map in generator_tools.dart.
+    int hash = 17;
+    hash = hash * 37 + baseName.hashCode;
+    hash = hash * 37 + isNullable.hashCode;
+    for (final TypeDeclaration typeArgument in typeArguments) {
+      hash = hash * 37 + typeArgument.hashCode;
+    }
+    return hash;
+  }
+
+  @override
+  bool operator ==(Object other) {
+    if (other.runtimeType != runtimeType) {
+      return false;
+    } else {
+      return other is TypeDeclaration &&
+          baseName == other.baseName &&
+          isNullable == other.isNullable &&
+          _listEquals(typeArguments, other.typeArguments);
+    }
+  }
+
+  @override
   String toString() {
     return '(TypeDeclaration baseName:$baseName isNullable:$isNullable typeArguments:$typeArguments)';
   }
diff --git a/packages/pigeon/lib/generator_tools.dart b/packages/pigeon/lib/generator_tools.dart
index cb74607..8164d24 100644
--- a/packages/pigeon/lib/generator_tools.dart
+++ b/packages/pigeon/lib/generator_tools.dart
@@ -8,7 +8,7 @@
 import 'ast.dart';
 
 /// The current version of pigeon. This must match the version in pubspec.yaml.
-const String pigeonVersion = '1.0.7';
+const String pigeonVersion = '1.0.8';
 
 /// Read all the content from [stdin] to a String.
 String readStdin() {
@@ -275,6 +275,7 @@
   'Float64List',
   'List',
   'Map',
+  'Object',
 ];
 
 /// Custom codecs' custom types are enumerated from 255 down to this number to
diff --git a/packages/pigeon/lib/objc_generator.dart b/packages/pigeon/lib/objc_generator.dart
index 1d21c5e..da9c4be 100644
--- a/packages/pigeon/lib/objc_generator.dart
+++ b/packages/pigeon/lib/objc_generator.dart
@@ -62,48 +62,58 @@
   }
 }
 
-String _callbackForType(TypeDeclaration type, String objcType) {
+String _callbackForType(TypeDeclaration type, _ObjcPtr objcType) {
   return type.isVoid
       ? 'void(^)(NSError *_Nullable)'
-      : 'void(^)($objcType *, NSError *_Nullable)';
+      : 'void(^)(${objcType.ptr.trim()}, NSError *_Nullable)';
 }
 
-const Map<String, String> _objcTypeForDartTypeMap = <String, String>{
-  'bool': 'NSNumber',
-  'int': 'NSNumber',
-  'String': 'NSString',
-  'double': 'NSNumber',
-  'Uint8List': 'FlutterStandardTypedData',
-  'Int32List': 'FlutterStandardTypedData',
-  'Int64List': 'FlutterStandardTypedData',
-  'Float64List': 'FlutterStandardTypedData',
-  'List': 'NSArray',
-  'Map': 'NSDictionary',
+class _ObjcPtr {
+  const _ObjcPtr({required this.baseName}) : hasAsterisk = baseName != 'id';
+  final String baseName;
+  final bool hasAsterisk;
+  String get ptr => '$baseName${hasAsterisk ? ' *' : ' '}';
+}
+
+const Map<String, _ObjcPtr> _objcTypeForDartTypeMap = <String, _ObjcPtr>{
+  'bool': _ObjcPtr(baseName: 'NSNumber'),
+  'int': _ObjcPtr(baseName: 'NSNumber'),
+  'String': _ObjcPtr(baseName: 'NSString'),
+  'double': _ObjcPtr(baseName: 'NSNumber'),
+  'Uint8List': _ObjcPtr(baseName: 'FlutterStandardTypedData'),
+  'Int32List': _ObjcPtr(baseName: 'FlutterStandardTypedData'),
+  'Int64List': _ObjcPtr(baseName: 'FlutterStandardTypedData'),
+  'Float64List': _ObjcPtr(baseName: 'FlutterStandardTypedData'),
+  'List': _ObjcPtr(baseName: 'NSArray'),
+  'Map': _ObjcPtr(baseName: 'NSDictionary'),
+  'Object': _ObjcPtr(baseName: 'id'),
 };
 
 String _flattenTypeArguments(String? classPrefix, List<TypeDeclaration> args) {
   final String result = args
-      .map<String>(
-          (TypeDeclaration e) => '${_objcTypeForDartType(classPrefix, e)} *')
+      .map<String>((TypeDeclaration e) =>
+          _objcTypeForDartType(classPrefix, e).ptr.trim())
       .join(', ');
   return result;
 }
 
 String? _objcTypePtrForPrimitiveDartType(String? classPrefix, NamedType field) {
   return _objcTypeForDartTypeMap.containsKey(field.type.baseName)
-      ? '${_objcTypeForDartType(classPrefix, field.type)} *'
+      ? _objcTypeForDartType(classPrefix, field.type).ptr
       : null;
 }
 
 /// Returns the objc type for a dart [type], prepending the [classPrefix] for
 /// generated classes.  For example:
 /// _objcTypeForDartType(null, 'int') => 'NSNumber'.
-String _objcTypeForDartType(String? classPrefix, TypeDeclaration field) {
+_ObjcPtr _objcTypeForDartType(String? classPrefix, TypeDeclaration field) {
   return _objcTypeForDartTypeMap.containsKey(field.baseName)
       ? field.typeArguments.isEmpty
           ? _objcTypeForDartTypeMap[field.baseName]!
-          : '${_objcTypeForDartTypeMap[field.baseName]}<${_flattenTypeArguments(classPrefix, field.typeArguments)}>'
-      : _className(classPrefix, field.baseName);
+          : _ObjcPtr(
+              baseName:
+                  '${_objcTypeForDartTypeMap[field.baseName]!.baseName}<${_flattenTypeArguments(classPrefix, field.typeArguments)}>')
+      : _ObjcPtr(baseName: _className(classPrefix, field.baseName));
 }
 
 String _propertyTypeForDartType(NamedType field) {
@@ -293,8 +303,8 @@
   final Iterable<String> argTypes = followedByOne(
     func.arguments.map((NamedType arg) {
       final String nullable = func.isAsynchronous ? 'nullable ' : '';
-      final String argType = _objcTypeForDartType(options.prefix, arg.type);
-      return '$nullable$argType *';
+      final _ObjcPtr argType = _objcTypeForDartType(options.prefix, arg.type);
+      return '$nullable${argType.ptr.trim()}';
     }),
     lastArgType,
   );
@@ -313,7 +323,7 @@
   final String apiName = _className(options.prefix, api.name);
   indent.writeln('@protocol $apiName');
   for (final Method func in api.methods) {
-    final String returnTypeName =
+    final _ObjcPtr returnTypeName =
         _objcTypeForDartType(options.prefix, func.returnType);
 
     String? lastArgName;
@@ -326,12 +336,13 @@
         lastArgName = 'completion';
       } else {
         lastArgType =
-            'void(^)($returnTypeName *_Nullable, FlutterError *_Nullable)';
+            'void(^)(${returnTypeName.ptr}_Nullable, FlutterError *_Nullable)';
         lastArgName = 'completion';
       }
     } else {
-      returnType =
-          func.returnType.isVoid ? 'void' : 'nullable $returnTypeName *';
+      returnType = func.returnType.isVoid
+          ? 'void'
+          : 'nullable ${returnTypeName.ptr.trim()}';
       lastArgType = 'FlutterError *_Nullable *_Nonnull';
       lastArgName = 'error';
     }
@@ -356,7 +367,7 @@
   indent.writeln(
       '- (instancetype)initWithBinaryMessenger:(id<FlutterBinaryMessenger>)binaryMessenger;');
   for (final Method func in api.methods) {
-    final String returnType =
+    final _ObjcPtr returnType =
         _objcTypeForDartType(options.prefix, func.returnType);
     final String callbackType = _callbackForType(func.returnType, returnType);
     indent.writeln(_makeObjcSignature(
@@ -492,7 +503,7 @@
           indent.write(
               '[channel setMessageHandler:^(id _Nullable message, FlutterReply callback) ');
           indent.scoped('{', '}];', () {
-            final String returnType =
+            final _ObjcPtr returnType =
                 _objcTypeForDartType(options.prefix, func.returnType);
             String syncCall;
             String? callSignature;
@@ -506,9 +517,9 @@
                   indexMap(func.arguments, _getSafeArgName);
               map3(wholeNumbers.take(func.arguments.length), argNames,
                   func.arguments, (int count, String argName, NamedType arg) {
-                final String argType =
+                final _ObjcPtr argType =
                     _objcTypeForDartType(options.prefix, arg.type);
-                return '$argType *$argName = args[$count];';
+                return '${argType.ptr}$argName = args[$count];';
               }).forEach(indent.writeln);
               callSignature =
                   map2(selectorComponents.take(argNames.length), argNames,
@@ -537,13 +548,13 @@
                 const String callback = 'callback(wrapResult(output, error));';
                 if (func.arguments.isEmpty) {
                   indent.writeScoped(
-                      '[api ${selectorComponents.first}:^($returnType *_Nullable output, FlutterError *_Nullable error) {',
+                      '[api ${selectorComponents.first}:^(${returnType.ptr}_Nullable output, FlutterError *_Nullable error) {',
                       '}];', () {
                     indent.writeln(callback);
                   });
                 } else {
                   indent.writeScoped(
-                      '[api $callSignature ${selectorComponents.last}:^($returnType *_Nullable output, FlutterError *_Nullable error) {',
+                      '[api $callSignature ${selectorComponents.last}:^(${returnType.ptr}_Nullable output, FlutterError *_Nullable error) {',
                       '}];', () {
                     indent.writeln(callback);
                   });
@@ -555,7 +566,7 @@
                 indent.writeln('$syncCall;');
                 indent.writeln('callback(wrapResult(nil, error));');
               } else {
-                indent.writeln('$returnType *output = $syncCall;');
+                indent.writeln('${returnType.ptr}output = $syncCall;');
                 indent.writeln('callback(wrapResult(output, error));');
               }
             }
@@ -591,7 +602,7 @@
   });
   indent.addln('');
   for (final Method func in api.methods) {
-    final String returnType =
+    final _ObjcPtr returnType =
         _objcTypeForDartType(options.prefix, func.returnType);
     final String callbackType = _callbackForType(func.returnType, returnType);
 
@@ -627,7 +638,7 @@
         if (func.returnType.isVoid) {
           indent.writeln('completion(nil);');
         } else {
-          indent.writeln('$returnType *output = reply;');
+          indent.writeln('${returnType.ptr}output = reply;');
           indent.writeln('completion(output, nil);');
         }
       });
diff --git a/packages/pigeon/lib/pigeon_lib.dart b/packages/pigeon/lib/pigeon_lib.dart
index 3c29fc7..439f5cd 100644
--- a/packages/pigeon/lib/pigeon_lib.dart
+++ b/packages/pigeon/lib/pigeon_lib.dart
@@ -565,6 +565,7 @@
           !validTypes.contains(element.key.baseName) &&
           !element.key.isVoid &&
           element.key.baseName != 'dynamic' &&
+          element.key.baseName != 'Object' &&
           element.key.baseName.isNotEmpty) {
         final int? lineNumber = element.value.isEmpty
             ? null
@@ -709,7 +710,7 @@
     } else {
       return NamedType(
         name: '',
-        type: TypeDeclaration(baseName: '', isNullable: false),
+        type: const TypeDeclaration(baseName: '', isNullable: false),
         offset: parameter.offset,
       );
     }
diff --git a/packages/pigeon/pigeons/all_datatypes.dart b/packages/pigeon/pigeons/all_datatypes.dart
index 138b4ca..8a260d2 100644
--- a/packages/pigeon/pigeons/all_datatypes.dart
+++ b/packages/pigeon/pigeons/all_datatypes.dart
@@ -19,6 +19,7 @@
   Map? aMap;
   List<List<bool?>?>? nestedList;
   Map<String?, String?>? mapWithAnnotations;
+  Map<String?, Object?>? mapWithObject;
 }
 
 @HostApi()
diff --git a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/AllDatatypesTest.java b/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/AllDatatypesTest.java
index b6a8cf1..6cef5dd 100644
--- a/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/AllDatatypesTest.java
+++ b/packages/pigeon/platform_tests/android_unit_tests/android/app/src/test/java/com/example/android_unit_tests/AllDatatypesTest.java
@@ -51,6 +51,7 @@
           assertNull(everything.getAFloatArray());
           assertNull(everything.getAList());
           assertNull(everything.getAMap());
+          assertNull(everything.getMapWithObject());
         });
     assertTrue(didCall[0]);
   }
@@ -61,6 +62,12 @@
     return result;
   }
 
+  private static HashMap<String, Object> makeStringMap(String key, Integer value) {
+    HashMap<String, Object> result = new HashMap<String, Object>();
+    result.put(key, value);
+    return result;
+  }
+
   private static boolean floatArraysEqual(double[] x, double[] y) {
     if (x.length != y.length) {
       return false;
@@ -86,6 +93,7 @@
     everything.setAFloatArray(new double[] {0.5, 0.25, 1.5, 1.25});
     everything.setAList(Arrays.asList(new int[] {1, 2, 3}));
     everything.setAMap(makeMap("hello", 1234));
+    everything.setMapWithObject(makeStringMap("hello", 1234));
     BinaryMessenger binaryMessenger = mock(BinaryMessenger.class);
     doAnswer(
             invocation -> {
@@ -120,6 +128,9 @@
               everything.getAMap().keySet().toArray(), result.getAMap().keySet().toArray());
           assertArrayEquals(
               everything.getAMap().values().toArray(), result.getAMap().values().toArray());
+          assertArrayEquals(
+              everything.getMapWithObject().values().toArray(),
+              result.getMapWithObject().values().toArray());
         });
     assertTrue(didCall[0]);
   }
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 4c983f3..06ba8f5 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,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 (v0.3.0), do not edit directly.
+// Autogenerated from Pigeon (v1.0.8), 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
@@ -25,6 +25,7 @@
   Map<Object?, Object?>? aMap;
   List<List<bool?>?>? nestedList;
   Map<String?, String?>? mapWithAnnotations;
+  Map<String?, Object?>? mapWithObject;
 
   Object encode() {
     final Map<Object?, Object?> pigeonMap = <Object?, Object?>{};
@@ -40,6 +41,7 @@
     pigeonMap['aMap'] = aMap;
     pigeonMap['nestedList'] = nestedList;
     pigeonMap['mapWithAnnotations'] = mapWithAnnotations;
+    pigeonMap['mapWithObject'] = mapWithObject;
     return pigeonMap;
   }
 
@@ -60,7 +62,9 @@
           (pigeonMap['nestedList'] as List<Object?>?)?.cast<List<bool?>?>()
       ..mapWithAnnotations =
           (pigeonMap['mapWithAnnotations'] as Map<Object?, Object?>?)
-              ?.cast<String?, String?>();
+              ?.cast<String?, String?>()
+      ..mapWithObject = (pigeonMap['mapWithObject'] as Map<Object?, Object?>?)
+          ?.cast<String?, Object?>();
   }
 }
 
diff --git a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/test/all_datatypes_test.dart b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/test/all_datatypes_test.dart
index 78accde..6d82d91 100644
--- a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/test/all_datatypes_test.dart
+++ b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/test/all_datatypes_test.dart
@@ -35,6 +35,7 @@
     expect(result.aMap, isNull);
     expect(result.nestedList, isNull);
     expect(result.mapWithAnnotations, isNull);
+    expect(result.mapWithObject, isNull);
   });
 
   test('with values', () async {
@@ -54,6 +55,7 @@
       <bool?>[true]
     ];
     everything.mapWithAnnotations = <String?, String?>{'hello': 'world'};
+    everything.mapWithObject = <String?, Object?>{'hello': 1234};
     final BinaryMessenger mockMessenger = MockBinaryMessenger();
     echoOneArgument(
       mockMessenger,
@@ -74,5 +76,6 @@
     expect(result.aMap, everything.aMap);
     expect(result.aList, everything.aList);
     expect(result.mapWithAnnotations, everything.mapWithAnnotations);
+    expect(result.mapWithObject, everything.mapWithObject);
   });
 }
diff --git a/packages/pigeon/platform_tests/ios_unit_tests/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/pigeon/platform_tests/ios_unit_tests/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index 97e0ecb..20fcf69 100644
--- a/packages/pigeon/platform_tests/ios_unit_tests/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/packages/pigeon/platform_tests/ios_unit_tests/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Scheme
-   LastUpgradeVersion = "1020"
+   LastUpgradeVersion = "1300"
    version = "1.3">
    <BuildAction
       parallelizeBuildables = "YES"
diff --git a/packages/pigeon/platform_tests/ios_unit_tests/ios/RunnerTests/AllDatatypesTest.m b/packages/pigeon/platform_tests/ios_unit_tests/ios/RunnerTests/AllDatatypesTest.m
index 93c0896..67bb71c 100644
--- a/packages/pigeon/platform_tests/ios_unit_tests/ios/RunnerTests/AllDatatypesTest.m
+++ b/packages/pigeon/platform_tests/ios_unit_tests/ios/RunnerTests/AllDatatypesTest.m
@@ -53,6 +53,7 @@
       typedDataWithFloat64:[@"12345678" dataUsingEncoding:NSUTF8StringEncoding]];
   everything.aList = @[ @(1), @(2) ];
   everything.aMap = @{ @"hello" : @(1234) };
+  everything.mapWithObject = @{ @"hello" : @(1234), @"goodbye" : @"world" };
   EchoBinaryMessenger* binaryMessenger =
       [[EchoBinaryMessenger alloc] initWithCodec:FlutterEverythingGetCodec()];
   FlutterEverything* api = [[FlutterEverything alloc] initWithBinaryMessenger:binaryMessenger];
@@ -69,6 +70,7 @@
              XCTAssertEqualObjects(result.aFloatArray.data, everything.aFloatArray.data);
              XCTAssertEqualObjects(result.aList, everything.aList);
              XCTAssertEqualObjects(result.aMap, everything.aMap);
+             XCTAssertEqualObjects(result.mapWithObject, everything.mapWithObject);
              [expectation fulfill];
            }];
   [self waitForExpectations:@[ expectation ] timeout:1.0];
diff --git a/packages/pigeon/pubspec.yaml b/packages/pigeon/pubspec.yaml
index 8a451a9..9d711f2 100644
--- a/packages/pigeon/pubspec.yaml
+++ b/packages/pigeon/pubspec.yaml
@@ -2,7 +2,7 @@
 description: Code generator tool to make communication between Flutter and the host platform type-safe and easier.
 repository: https://github.com/flutter/packages/tree/master/packages/pigeon
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3Apigeon
-version: 1.0.7 # This must match the version in lib/generator_tools.dart
+version: 1.0.8 # This must match the version in lib/generator_tools.dart
 
 environment:
   sdk: '>=2.12.0 <3.0.0'
@@ -10,6 +10,8 @@
 dependencies:
   analyzer: ^2.4.0
   args: ^2.0.0
+  collection: ^1.15.0
+  meta: ^1.7.0
   path: ^1.8.0
 
 dev_dependencies:
diff --git a/packages/pigeon/run_tests.sh b/packages/pigeon/run_tests.sh
index 660055a..aaa73dd 100755
--- a/packages/pigeon/run_tests.sh
+++ b/packages/pigeon/run_tests.sh
@@ -234,8 +234,8 @@
     --input pigeons/message.dart \
     --dart_out mock_handler_tester/test/message.dart \
     --dart_test_out mock_handler_tester/test/test.dart
-  dartfmt -w mock_handler_tester/test/message.dart
-  dartfmt -w mock_handler_tester/test/test.dart
+  dart format mock_handler_tester/test/message.dart
+  dart format mock_handler_tester/test/test.dart
   cd mock_handler_tester
   flutter test
   popd
@@ -299,7 +299,7 @@
     --objc_header_out $DARTLE_H \
     --objc_source_out $DARTLE_M \
     --java_out $PIGEON_JAVA
-  dartfmt -w $DARTLE_DART
+  dart format $DARTLE_DART
 
   pushd $PWD
   cd e2e_tests/test_objc
diff --git a/packages/pigeon/test/dart_generator_test.dart b/packages/pigeon/test/dart_generator_test.dart
index 02aa5ad..92b73f8 100644
--- a/packages/pigeon/test/dart_generator_test.dart
+++ b/packages/pigeon/test/dart_generator_test.dart
@@ -13,7 +13,7 @@
       name: 'Foobar',
       fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'dataType1',
               isNullable: true,
             ),
@@ -61,21 +61,22 @@
           name: 'doSomething',
           arguments: <NamedType>[
             NamedType(
-                type: TypeDeclaration(
+                type: const TypeDeclaration(
                   baseName: 'Input',
                   isNullable: false,
                 ),
                 name: 'input',
                 offset: null)
           ],
-          returnType: TypeDeclaration(baseName: 'Output', isNullable: false),
+          returnType:
+              const TypeDeclaration(baseName: 'Output', isNullable: false),
           isAsynchronous: false,
         )
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -84,7 +85,7 @@
       ]),
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -107,12 +108,14 @@
           arguments: <NamedType>[
             NamedType(
                 name: 'x',
-                type: TypeDeclaration(isNullable: false, baseName: 'int')),
+                type:
+                    const TypeDeclaration(isNullable: false, baseName: 'int')),
             NamedType(
                 name: 'y',
-                type: TypeDeclaration(isNullable: false, baseName: 'int')),
+                type:
+                    const TypeDeclaration(isNullable: false, baseName: 'int')),
           ],
-          returnType: TypeDeclaration(baseName: 'int', isNullable: false),
+          returnType: const TypeDeclaration(baseName: 'int', isNullable: false),
           isAsynchronous: false,
         )
       ])
@@ -133,12 +136,14 @@
           arguments: <NamedType>[
             NamedType(
                 name: 'x',
-                type: TypeDeclaration(isNullable: false, baseName: 'int')),
+                type:
+                    const TypeDeclaration(isNullable: false, baseName: 'int')),
             NamedType(
                 name: 'y',
-                type: TypeDeclaration(isNullable: false, baseName: 'int')),
+                type:
+                    const TypeDeclaration(isNullable: false, baseName: 'int')),
           ],
-          returnType: TypeDeclaration(baseName: 'int', isNullable: false),
+          returnType: const TypeDeclaration(baseName: 'int', isNullable: false),
           isAsynchronous: false,
         )
       ])
@@ -161,7 +166,7 @@
         name: 'Input',
         fields: <NamedType>[
           NamedType(
-              type: TypeDeclaration(
+              type: const TypeDeclaration(
                 baseName: 'String',
                 isNullable: true,
               ),
@@ -173,7 +178,7 @@
         name: 'Nested',
         fields: <NamedType>[
           NamedType(
-              type: TypeDeclaration(
+              type: const TypeDeclaration(
                 baseName: 'Input',
                 isNullable: true,
               ),
@@ -206,21 +211,22 @@
           name: 'doSomething',
           arguments: <NamedType>[
             NamedType(
-                type: TypeDeclaration(
+                type: const TypeDeclaration(
                   baseName: 'Input',
                   isNullable: false,
                 ),
                 name: 'input',
                 offset: null)
           ],
-          returnType: TypeDeclaration(baseName: 'Output', isNullable: false),
+          returnType:
+              const TypeDeclaration(baseName: 'Output', isNullable: false),
           isAsynchronous: false,
         )
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -229,7 +235,7 @@
       ]),
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -252,21 +258,21 @@
           name: 'doSomething',
           arguments: <NamedType>[
             NamedType(
-                type: TypeDeclaration(
+                type: const TypeDeclaration(
                   baseName: 'Input',
                   isNullable: false,
                 ),
                 name: '',
                 offset: null)
           ],
-          returnType: TypeDeclaration.voidDeclaration(),
+          returnType: const TypeDeclaration.voidDeclaration(),
           isAsynchronous: false,
         )
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -288,21 +294,21 @@
           name: 'doSomething',
           arguments: <NamedType>[
             NamedType(
-                type: TypeDeclaration(
+                type: const TypeDeclaration(
                   baseName: 'Input',
                   isNullable: false,
                 ),
                 name: '',
                 offset: null)
           ],
-          returnType: TypeDeclaration.voidDeclaration(),
+          returnType: const TypeDeclaration.voidDeclaration(),
           isAsynchronous: false,
         )
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -326,14 +332,15 @@
         Method(
           name: 'doSomething',
           arguments: <NamedType>[],
-          returnType: TypeDeclaration(baseName: 'Output', isNullable: false),
+          returnType:
+              const TypeDeclaration(baseName: 'Output', isNullable: false),
           isAsynchronous: false,
         )
       ])
     ], classes: <Class>[
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -355,21 +362,22 @@
           name: 'doSomething',
           arguments: <NamedType>[
             NamedType(
-                type: TypeDeclaration(
+                type: const TypeDeclaration(
                   baseName: 'EnumClass',
                   isNullable: false,
                 ),
                 name: '',
                 offset: null)
           ],
-          returnType: TypeDeclaration(baseName: 'EnumClass', isNullable: false),
+          returnType:
+              const TypeDeclaration(baseName: 'EnumClass', isNullable: false),
           isAsynchronous: false,
         )
       ])
     ], classes: <Class>[
       Class(name: 'EnumClass', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'Enum',
               isNullable: true,
             ),
@@ -401,21 +409,22 @@
           name: 'doSomething',
           arguments: <NamedType>[
             NamedType(
-                type: TypeDeclaration(
+                type: const TypeDeclaration(
                   baseName: 'EnumClass',
                   isNullable: false,
                 ),
                 name: '',
                 offset: null)
           ],
-          returnType: TypeDeclaration(baseName: 'EnumClass', isNullable: false),
+          returnType:
+              const TypeDeclaration(baseName: 'EnumClass', isNullable: false),
           isAsynchronous: false,
         )
       ])
     ], classes: <Class>[
       Class(name: 'EnumClass', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'Enum',
               isNullable: true,
             ),
@@ -448,14 +457,15 @@
         Method(
           name: 'doSomething',
           arguments: <NamedType>[],
-          returnType: TypeDeclaration(baseName: 'Output', isNullable: false),
+          returnType:
+              const TypeDeclaration(baseName: 'Output', isNullable: false),
           isAsynchronous: false,
         )
       ])
     ], classes: <Class>[
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -480,7 +490,7 @@
               name: 'doSomething',
               arguments: <NamedType>[
                 NamedType(
-                    type: TypeDeclaration(
+                    type: const TypeDeclaration(
                       baseName: 'Input',
                       isNullable: false,
                     ),
@@ -488,28 +498,28 @@
                     offset: null)
               ],
               returnType:
-                  TypeDeclaration(baseName: 'Output', isNullable: false),
+                  const TypeDeclaration(baseName: 'Output', isNullable: false),
               isAsynchronous: false,
             ),
             Method(
               name: 'voidReturner',
               arguments: <NamedType>[
                 NamedType(
-                    type: TypeDeclaration(
+                    type: const TypeDeclaration(
                       baseName: 'Input',
                       isNullable: false,
                     ),
                     name: '',
                     offset: null)
               ],
-              returnType: TypeDeclaration.voidDeclaration(),
+              returnType: const TypeDeclaration.voidDeclaration(),
               isAsynchronous: false,
             )
           ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -518,7 +528,7 @@
       ]),
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -552,7 +562,7 @@
       name: 'Foobar',
       fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'dataType1',
               isNullable: true,
             ),
@@ -578,21 +588,22 @@
           name: 'doSomething',
           arguments: <NamedType>[
             NamedType(
-                type: TypeDeclaration(
+                type: const TypeDeclaration(
                   baseName: 'Input',
                   isNullable: false,
                 ),
                 name: '',
                 offset: null)
           ],
-          returnType: TypeDeclaration(baseName: 'Output', isNullable: false),
+          returnType:
+              const TypeDeclaration(baseName: 'Output', isNullable: false),
           isAsynchronous: true,
         )
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -601,7 +612,7 @@
       ]),
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -625,21 +636,21 @@
           name: 'doSomething',
           arguments: <NamedType>[
             NamedType(
-                type: TypeDeclaration(
+                type: const TypeDeclaration(
                   baseName: 'Input',
                   isNullable: false,
                 ),
                 name: '',
                 offset: null)
           ],
-          returnType: TypeDeclaration.voidDeclaration(),
+          returnType: const TypeDeclaration.voidDeclaration(),
           isAsynchronous: true,
         )
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -648,7 +659,7 @@
       ]),
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -671,21 +682,22 @@
           name: 'doSomething',
           arguments: <NamedType>[
             NamedType(
-                type: TypeDeclaration(
+                type: const TypeDeclaration(
                   baseName: 'Input',
                   isNullable: false,
                 ),
                 name: '',
                 offset: null)
           ],
-          returnType: TypeDeclaration(baseName: 'Output', isNullable: false),
+          returnType:
+              const TypeDeclaration(baseName: 'Output', isNullable: false),
           isAsynchronous: true,
         )
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -694,7 +706,7 @@
       ]),
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -715,14 +727,15 @@
         Method(
           name: 'doSomething',
           arguments: <NamedType>[],
-          returnType: TypeDeclaration(baseName: 'Output', isNullable: false),
+          returnType:
+              const TypeDeclaration(baseName: 'Output', isNullable: false),
           isAsynchronous: true,
         )
       ])
     ], classes: <Class>[
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -758,7 +771,7 @@
       name: 'Foobar',
       fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
                 baseName: 'List',
                 isNullable: true,
                 typeArguments: <TypeDeclaration>[
@@ -785,7 +798,7 @@
       name: 'Foobar',
       fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
                 baseName: 'Map',
                 isNullable: true,
                 typeArguments: <TypeDeclaration>[
@@ -814,10 +827,10 @@
         Api(name: 'Api', location: ApiLocation.host, methods: <Method>[
           Method(
               name: 'doit',
-              returnType: TypeDeclaration.voidDeclaration(),
+              returnType: const TypeDeclaration.voidDeclaration(),
               arguments: <NamedType>[
                 NamedType(
-                    type: TypeDeclaration(
+                    type: const TypeDeclaration(
                         baseName: 'List',
                         isNullable: false,
                         typeArguments: <TypeDeclaration>[
@@ -843,10 +856,10 @@
         Api(name: 'Api', location: ApiLocation.flutter, methods: <Method>[
           Method(
               name: 'doit',
-              returnType: TypeDeclaration.voidDeclaration(),
+              returnType: const TypeDeclaration.voidDeclaration(),
               arguments: <NamedType>[
                 NamedType(
-                    type: TypeDeclaration(
+                    type: const TypeDeclaration(
                         baseName: 'List',
                         isNullable: false,
                         typeArguments: <TypeDeclaration>[
@@ -872,7 +885,7 @@
         Api(name: 'Api', location: ApiLocation.host, methods: <Method>[
           Method(
               name: 'doit',
-              returnType: TypeDeclaration(
+              returnType: const TypeDeclaration(
                   baseName: 'List',
                   isNullable: false,
                   typeArguments: <TypeDeclaration>[
@@ -900,7 +913,7 @@
         Api(name: 'Api', location: ApiLocation.flutter, methods: <Method>[
           Method(
               name: 'doit',
-              returnType: TypeDeclaration(
+              returnType: const TypeDeclaration(
                   baseName: 'List',
                   isNullable: false,
                   typeArguments: <TypeDeclaration>[
@@ -908,7 +921,7 @@
                   ]),
               arguments: <NamedType>[
                 NamedType(
-                    type: TypeDeclaration(
+                    type: const TypeDeclaration(
                         baseName: 'List',
                         isNullable: false,
                         typeArguments: <TypeDeclaration>[
diff --git a/packages/pigeon/test/generator_tools_test.dart b/packages/pigeon/test/generator_tools_test.dart
index 6daaf0c..b50dea6 100644
--- a/packages/pigeon/test/generator_tools_test.dart
+++ b/packages/pigeon/test/generator_tools_test.dart
@@ -72,7 +72,7 @@
         name: 'doSomething',
         arguments: <NamedType>[
           NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'List',
               isNullable: false,
               typeArguments: <TypeDeclaration>[
@@ -83,7 +83,8 @@
             offset: null,
           )
         ],
-        returnType: TypeDeclaration(baseName: 'Output', isNullable: false),
+        returnType:
+            const TypeDeclaration(baseName: 'Output', isNullable: false),
         isAsynchronous: true,
       )
     ]);
@@ -110,12 +111,12 @@
         name: 'doSomething',
         arguments: <NamedType>[
           NamedType(
-            type: TypeDeclaration(baseName: 'Output', isNullable: false),
+            type: const TypeDeclaration(baseName: 'Output', isNullable: false),
             name: '',
             offset: null,
           )
         ],
-        returnType: TypeDeclaration(
+        returnType: const TypeDeclaration(
           baseName: 'List',
           isNullable: false,
           typeArguments: <TypeDeclaration>[
@@ -148,17 +149,17 @@
         name: 'doSomething',
         arguments: <NamedType>[
           NamedType(
-            type: TypeDeclaration(baseName: 'Foo', isNullable: false),
+            type: const TypeDeclaration(baseName: 'Foo', isNullable: false),
             name: '',
             offset: null,
           ),
           NamedType(
-            type: TypeDeclaration(baseName: 'Bar', isNullable: false),
+            type: const TypeDeclaration(baseName: 'Bar', isNullable: false),
             name: '',
             offset: null,
           ),
         ],
-        returnType: TypeDeclaration(
+        returnType: const TypeDeclaration(
           baseName: 'List',
           isNullable: false,
           typeArguments: <TypeDeclaration>[TypeDeclaration.voidDeclaration()],
@@ -190,14 +191,14 @@
           arguments: <NamedType>[
             NamedType(
                 name: 'x',
-                type: TypeDeclaration(
+                type: const TypeDeclaration(
                     isNullable: false,
                     baseName: 'List',
                     typeArguments: <TypeDeclaration>[
                       TypeDeclaration(baseName: 'Foo', isNullable: true)
                     ])),
           ],
-          returnType: TypeDeclaration.voidDeclaration(),
+          returnType: const TypeDeclaration.voidDeclaration(),
           isAsynchronous: false,
         )
       ])
@@ -205,12 +206,12 @@
       Class(name: 'Foo', fields: <NamedType>[
         NamedType(
             name: 'bar',
-            type: TypeDeclaration(baseName: 'Bar', isNullable: true)),
+            type: const TypeDeclaration(baseName: 'Bar', isNullable: true)),
       ]),
       Class(name: 'Bar', fields: <NamedType>[
         NamedType(
             name: 'value',
-            type: TypeDeclaration(baseName: 'int', isNullable: true))
+            type: const TypeDeclaration(baseName: 'int', isNullable: true))
       ])
     ], enums: <Enum>[]);
     final List<EnumeratedClass> classes =
@@ -227,4 +228,57 @@
             .length,
         1);
   });
+
+  test('getCodecClasses: unique entries', () {
+    final Root root = Root(apis: <Api>[
+      Api(
+        name: 'Api1',
+        location: ApiLocation.flutter,
+        methods: <Method>[
+          Method(
+            name: 'foo',
+            arguments: <NamedType>[
+              NamedType(
+                  name: 'x',
+                  type: const TypeDeclaration(
+                      isNullable: false, baseName: 'Foo')),
+            ],
+            returnType: const TypeDeclaration.voidDeclaration(),
+            isAsynchronous: false,
+          )
+        ],
+      ),
+      Api(
+        name: 'Api2',
+        location: ApiLocation.host,
+        methods: <Method>[
+          Method(
+            name: 'foo',
+            arguments: <NamedType>[
+              NamedType(
+                  name: 'x',
+                  type: const TypeDeclaration(
+                      isNullable: false, baseName: 'Foo')),
+            ],
+            returnType: const TypeDeclaration.voidDeclaration(),
+            isAsynchronous: false,
+          )
+        ],
+      )
+    ], classes: <Class>[
+      Class(name: 'Foo', fields: <NamedType>[
+        NamedType(
+            name: 'bar',
+            type: const TypeDeclaration(baseName: 'int', isNullable: true)),
+      ]),
+    ], enums: <Enum>[]);
+    final List<EnumeratedClass> classes =
+        getCodecClasses(root.apis[0], root).toList();
+    expect(classes.length, 1);
+    expect(
+        classes
+            .where((EnumeratedClass element) => element.name == 'Foo')
+            .length,
+        1);
+  });
 }
diff --git a/packages/pigeon/test/java_generator_test.dart b/packages/pigeon/test/java_generator_test.dart
index 835725a..461a806 100644
--- a/packages/pigeon/test/java_generator_test.dart
+++ b/packages/pigeon/test/java_generator_test.dart
@@ -12,7 +12,7 @@
       name: 'Foobar',
       fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'int',
               isNullable: true,
             ),
@@ -64,7 +64,7 @@
       name: 'Foobar',
       fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'int',
               isNullable: true,
             ),
@@ -93,21 +93,22 @@
           name: 'doSomething',
           arguments: <NamedType>[
             NamedType(
-                type: TypeDeclaration(
+                type: const TypeDeclaration(
                   baseName: 'Input',
                   isNullable: false,
                 ),
                 name: '',
                 offset: null)
           ],
-          returnType: TypeDeclaration(baseName: 'Output', isNullable: false),
+          returnType:
+              const TypeDeclaration(baseName: 'Output', isNullable: false),
           isAsynchronous: false,
         )
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -116,7 +117,7 @@
       ]),
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -137,56 +138,56 @@
     final Root root = Root(apis: <Api>[], classes: <Class>[
       Class(name: 'Foobar', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'bool',
               isNullable: true,
             ),
             name: 'aBool',
             offset: null),
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'int',
               isNullable: true,
             ),
             name: 'aInt',
             offset: null),
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'double',
               isNullable: true,
             ),
             name: 'aDouble',
             offset: null),
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
             name: 'aString',
             offset: null),
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'Uint8List',
               isNullable: true,
             ),
             name: 'aUint8List',
             offset: null),
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'Int32List',
               isNullable: true,
             ),
             name: 'aInt32List',
             offset: null),
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'Int64List',
               isNullable: true,
             ),
             name: 'aInt64List',
             offset: null),
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'Float64List',
               isNullable: true,
             ),
@@ -216,21 +217,22 @@
           name: 'doSomething',
           arguments: <NamedType>[
             NamedType(
-                type: TypeDeclaration(
+                type: const TypeDeclaration(
                   baseName: 'Input',
                   isNullable: false,
                 ),
                 name: '',
                 offset: null)
           ],
-          returnType: TypeDeclaration(baseName: 'Output', isNullable: false),
+          returnType:
+              const TypeDeclaration(baseName: 'Output', isNullable: false),
           isAsynchronous: false,
         )
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -239,7 +241,7 @@
       ]),
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -262,21 +264,21 @@
           name: 'doSomething',
           arguments: <NamedType>[
             NamedType(
-                type: TypeDeclaration(
+                type: const TypeDeclaration(
                   baseName: 'Input',
                   isNullable: false,
                 ),
                 name: '',
                 offset: null)
           ],
-          returnType: TypeDeclaration.voidDeclaration(),
+          returnType: const TypeDeclaration.voidDeclaration(),
           isAsynchronous: false,
         )
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -299,21 +301,21 @@
           name: 'doSomething',
           arguments: <NamedType>[
             NamedType(
-                type: TypeDeclaration(
+                type: const TypeDeclaration(
                   baseName: 'Input',
                   isNullable: false,
                 ),
                 name: '',
                 offset: null)
           ],
-          returnType: TypeDeclaration.voidDeclaration(),
+          returnType: const TypeDeclaration.voidDeclaration(),
           isAsynchronous: false,
         )
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -335,14 +337,15 @@
         Method(
           name: 'doSomething',
           arguments: <NamedType>[],
-          returnType: TypeDeclaration(baseName: 'Output', isNullable: false),
+          returnType:
+              const TypeDeclaration(baseName: 'Output', isNullable: false),
           isAsynchronous: false,
         )
       ])
     ], classes: <Class>[
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -364,14 +367,15 @@
         Method(
           name: 'doSomething',
           arguments: <NamedType>[],
-          returnType: TypeDeclaration(baseName: 'Output', isNullable: false),
+          returnType:
+              const TypeDeclaration(baseName: 'Output', isNullable: false),
           isAsynchronous: false,
         )
       ])
     ], classes: <Class>[
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -391,7 +395,7 @@
     final Root root = Root(apis: <Api>[], classes: <Class>[
       Class(name: 'Foobar', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'List',
               isNullable: true,
             ),
@@ -411,7 +415,7 @@
     final Root root = Root(apis: <Api>[], classes: <Class>[
       Class(name: 'Foobar', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'Map',
               isNullable: true,
             ),
@@ -432,7 +436,7 @@
       name: 'Outer',
       fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'Nested',
               isNullable: true,
             ),
@@ -444,7 +448,7 @@
       name: 'Nested',
       fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'int',
               isNullable: true,
             ),
@@ -477,21 +481,22 @@
           name: 'doSomething',
           arguments: <NamedType>[
             NamedType(
-                type: TypeDeclaration(
+                type: const TypeDeclaration(
                   baseName: 'Input',
                   isNullable: false,
                 ),
                 name: 'arg',
                 offset: null)
           ],
-          returnType: TypeDeclaration(baseName: 'Output', isNullable: false),
+          returnType:
+              const TypeDeclaration(baseName: 'Output', isNullable: false),
           isAsynchronous: true,
         )
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -500,7 +505,7 @@
       ]),
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -528,21 +533,22 @@
           name: 'doSomething',
           arguments: <NamedType>[
             NamedType(
-                type: TypeDeclaration(
+                type: const TypeDeclaration(
                   baseName: 'Input',
                   isNullable: false,
                 ),
                 name: '',
                 offset: null)
           ],
-          returnType: TypeDeclaration(baseName: 'Output', isNullable: false),
+          returnType:
+              const TypeDeclaration(baseName: 'Output', isNullable: false),
           isAsynchronous: true,
         )
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -551,7 +557,7 @@
       ]),
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'String',
               isNullable: true,
             ),
@@ -579,7 +585,7 @@
       name: 'EnumClass',
       fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
               baseName: 'Enum1',
               isNullable: true,
             ),
@@ -628,7 +634,7 @@
       name: 'Foobar',
       fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
                 baseName: 'List',
                 isNullable: true,
                 typeArguments: <TypeDeclaration>[
@@ -656,7 +662,7 @@
       name: 'Foobar',
       fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
                 baseName: 'Map',
                 isNullable: true,
                 typeArguments: <TypeDeclaration>[
@@ -686,10 +692,10 @@
         Api(name: 'Api', location: ApiLocation.host, methods: <Method>[
           Method(
               name: 'doit',
-              returnType: TypeDeclaration.voidDeclaration(),
+              returnType: const TypeDeclaration.voidDeclaration(),
               arguments: <NamedType>[
                 NamedType(
-                    type: TypeDeclaration(
+                    type: const TypeDeclaration(
                         baseName: 'List',
                         isNullable: false,
                         typeArguments: <TypeDeclaration>[
@@ -716,10 +722,10 @@
         Api(name: 'Api', location: ApiLocation.flutter, methods: <Method>[
           Method(
               name: 'doit',
-              returnType: TypeDeclaration.voidDeclaration(),
+              returnType: const TypeDeclaration.voidDeclaration(),
               arguments: <NamedType>[
                 NamedType(
-                    type: TypeDeclaration(
+                    type: const TypeDeclaration(
                         baseName: 'List',
                         isNullable: false,
                         typeArguments: <TypeDeclaration>[
@@ -746,7 +752,7 @@
         Api(name: 'Api', location: ApiLocation.host, methods: <Method>[
           Method(
               name: 'doit',
-              returnType: TypeDeclaration(
+              returnType: const TypeDeclaration(
                   baseName: 'List',
                   isNullable: false,
                   typeArguments: <TypeDeclaration>[
@@ -772,7 +778,7 @@
         Api(name: 'Api', location: ApiLocation.flutter, methods: <Method>[
           Method(
               name: 'doit',
-              returnType: TypeDeclaration(
+              returnType: const TypeDeclaration(
                   baseName: 'List',
                   isNullable: false,
                   typeArguments: <TypeDeclaration>[
@@ -800,12 +806,14 @@
           arguments: <NamedType>[
             NamedType(
                 name: 'x',
-                type: TypeDeclaration(isNullable: false, baseName: 'int')),
+                type:
+                    const TypeDeclaration(isNullable: false, baseName: 'int')),
             NamedType(
                 name: 'y',
-                type: TypeDeclaration(isNullable: false, baseName: 'int')),
+                type:
+                    const TypeDeclaration(isNullable: false, baseName: 'int')),
           ],
-          returnType: TypeDeclaration(baseName: 'int', isNullable: false),
+          returnType: const TypeDeclaration(baseName: 'int', isNullable: false),
           isAsynchronous: false,
         )
       ])
@@ -832,12 +840,14 @@
           arguments: <NamedType>[
             NamedType(
                 name: 'x',
-                type: TypeDeclaration(isNullable: false, baseName: 'int')),
+                type:
+                    const TypeDeclaration(isNullable: false, baseName: 'int')),
             NamedType(
                 name: 'y',
-                type: TypeDeclaration(isNullable: false, baseName: 'int')),
+                type:
+                    const TypeDeclaration(isNullable: false, baseName: 'int')),
           ],
-          returnType: TypeDeclaration(baseName: 'int', isNullable: false),
+          returnType: const TypeDeclaration(baseName: 'int', isNullable: false),
           isAsynchronous: false,
         )
       ])
diff --git a/packages/pigeon/test/objc_generator_test.dart b/packages/pigeon/test/objc_generator_test.dart
index 241ba81..d1ddbc3 100644
--- a/packages/pigeon/test/objc_generator_test.dart
+++ b/packages/pigeon/test/objc_generator_test.dart
@@ -11,7 +11,7 @@
     final Root root = Root(apis: <Api>[], classes: <Class>[
       Class(name: 'Foobar', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'field1',
             offset: null)
       ]),
@@ -27,7 +27,7 @@
     final Root root = Root(apis: <Api>[], classes: <Class>[
       Class(name: 'Foobar', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'field1',
             offset: null)
       ]),
@@ -83,11 +83,13 @@
           name: 'Foobar',
           fields: <NamedType>[
             NamedType(
-                type: TypeDeclaration(baseName: 'String', isNullable: true),
+                type:
+                    const TypeDeclaration(baseName: 'String', isNullable: true),
                 name: 'field1',
                 offset: null),
             NamedType(
-                type: TypeDeclaration(baseName: 'Enum1', isNullable: true),
+                type:
+                    const TypeDeclaration(baseName: 'Enum1', isNullable: true),
                 name: 'enum1',
                 offset: null),
           ],
@@ -119,11 +121,13 @@
           name: 'Foobar',
           fields: <NamedType>[
             NamedType(
-                type: TypeDeclaration(baseName: 'String', isNullable: true),
+                type:
+                    const TypeDeclaration(baseName: 'String', isNullable: true),
                 name: 'field1',
                 offset: null),
             NamedType(
-                type: TypeDeclaration(baseName: 'Enum1', isNullable: true),
+                type:
+                    const TypeDeclaration(baseName: 'Enum1', isNullable: true),
                 name: 'enum1',
                 offset: null),
           ],
@@ -152,22 +156,24 @@
             name: 'doSomething',
             arguments: <NamedType>[
               NamedType(
-                  type: TypeDeclaration(baseName: 'Input', isNullable: false),
+                  type: const TypeDeclaration(
+                      baseName: 'Input', isNullable: false),
                   name: '',
                   offset: null)
             ],
-            returnType: TypeDeclaration(baseName: 'Output', isNullable: false))
+            returnType:
+                const TypeDeclaration(baseName: 'Output', isNullable: false))
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'input',
             offset: null)
       ]),
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'output',
             offset: null)
       ])
@@ -189,25 +195,26 @@
             name: 'doSomething',
             arguments: <NamedType>[
               NamedType(
-                  type: TypeDeclaration(
+                  type: const TypeDeclaration(
                     baseName: 'Input',
                     isNullable: false,
                   ),
                   name: '',
                   offset: null)
             ],
-            returnType: TypeDeclaration(baseName: 'Output', isNullable: false))
+            returnType:
+                const TypeDeclaration(baseName: 'Output', isNullable: false))
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'input',
             offset: null)
       ]),
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'output',
             offset: null)
       ])
@@ -229,35 +236,39 @@
     final Root root = Root(apis: <Api>[], classes: <Class>[
       Class(name: 'Foobar', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'bool', isNullable: true),
+            type: const TypeDeclaration(baseName: 'bool', isNullable: true),
             name: 'aBool',
             offset: null),
         NamedType(
-            type: TypeDeclaration(baseName: 'int', isNullable: true),
+            type: const TypeDeclaration(baseName: 'int', isNullable: true),
             name: 'aInt',
             offset: null),
         NamedType(
-            type: TypeDeclaration(baseName: 'double', isNullable: true),
+            type: const TypeDeclaration(baseName: 'double', isNullable: true),
             name: 'aDouble',
             offset: null),
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'aString',
             offset: null),
         NamedType(
-            type: TypeDeclaration(baseName: 'Uint8List', isNullable: true),
+            type:
+                const TypeDeclaration(baseName: 'Uint8List', isNullable: true),
             name: 'aUint8List',
             offset: null),
         NamedType(
-            type: TypeDeclaration(baseName: 'Int32List', isNullable: true),
+            type:
+                const TypeDeclaration(baseName: 'Int32List', isNullable: true),
             name: 'aInt32List',
             offset: null),
         NamedType(
-            type: TypeDeclaration(baseName: 'Int64List', isNullable: true),
+            type:
+                const TypeDeclaration(baseName: 'Int64List', isNullable: true),
             name: 'aInt64List',
             offset: null),
         NamedType(
-            type: TypeDeclaration(baseName: 'Float64List', isNullable: true),
+            type: const TypeDeclaration(
+                baseName: 'Float64List', isNullable: true),
             name: 'aFloat64List',
             offset: null),
       ]),
@@ -286,7 +297,7 @@
     final Root root = Root(apis: <Api>[], classes: <Class>[
       Class(name: 'Foobar', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'bool', isNullable: true),
+            type: const TypeDeclaration(baseName: 'bool', isNullable: true),
             name: 'aBool',
             offset: null),
       ]),
@@ -303,13 +314,13 @@
     final Root root = Root(apis: <Api>[], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'input',
             offset: null)
       ]),
       Class(name: 'Nested', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'Input', isNullable: true),
+            type: const TypeDeclaration(baseName: 'Input', isNullable: true),
             name: 'nested',
             offset: null)
       ])
@@ -325,13 +336,13 @@
     final Root root = Root(apis: <Api>[], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'input',
             offset: null)
       ]),
       Class(name: 'Nested', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'Input', isNullable: true),
+            type: const TypeDeclaration(baseName: 'Input', isNullable: true),
             name: 'nested',
             offset: null)
       ])
@@ -347,7 +358,7 @@
     final Root root = Root(apis: <Api>[], classes: <Class>[
       Class(name: 'Foobar', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'field1',
             offset: null)
       ]),
@@ -362,7 +373,7 @@
     final Root root = Root(apis: <Api>[], classes: <Class>[
       Class(name: 'Foobar', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'field1',
             offset: null)
       ]),
@@ -380,25 +391,26 @@
             name: 'doSomething',
             arguments: <NamedType>[
               NamedType(
-                  type: TypeDeclaration(
+                  type: const TypeDeclaration(
                     baseName: 'Input',
                     isNullable: false,
                   ),
                   name: '',
                   offset: null)
             ],
-            returnType: TypeDeclaration(baseName: 'Nested', isNullable: false))
+            returnType:
+                const TypeDeclaration(baseName: 'Nested', isNullable: false))
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'input',
             offset: null)
       ]),
       Class(name: 'Nested', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'Input', isNullable: true),
+            type: const TypeDeclaration(baseName: 'Input', isNullable: true),
             name: 'nested',
             offset: null)
       ])
@@ -418,25 +430,26 @@
             name: 'doSomething',
             arguments: <NamedType>[
               NamedType(
-                  type: TypeDeclaration(
+                  type: const TypeDeclaration(
                     baseName: 'Input',
                     isNullable: false,
                   ),
                   name: '',
                   offset: null)
             ],
-            returnType: TypeDeclaration(baseName: 'Nested', isNullable: false))
+            returnType:
+                const TypeDeclaration(baseName: 'Nested', isNullable: false))
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'input',
             offset: null)
       ]),
       Class(name: 'Nested', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'Input', isNullable: true),
+            type: const TypeDeclaration(baseName: 'Input', isNullable: true),
             name: 'nested',
             offset: null)
       ])
@@ -456,25 +469,26 @@
             name: 'doSomething',
             arguments: <NamedType>[
               NamedType(
-                  type: TypeDeclaration(
+                  type: const TypeDeclaration(
                     baseName: 'Input',
                     isNullable: false,
                   ),
                   name: '',
                   offset: null)
             ],
-            returnType: TypeDeclaration(baseName: 'Output', isNullable: false))
+            returnType:
+                const TypeDeclaration(baseName: 'Output', isNullable: false))
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'input',
             offset: null)
       ]),
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'output',
             offset: null)
       ])
@@ -497,25 +511,26 @@
             name: 'doSomething',
             arguments: <NamedType>[
               NamedType(
-                  type: TypeDeclaration(
+                  type: const TypeDeclaration(
                     baseName: 'Input',
                     isNullable: false,
                   ),
                   name: '',
                   offset: null)
             ],
-            returnType: TypeDeclaration(baseName: 'Output', isNullable: false))
+            returnType:
+                const TypeDeclaration(baseName: 'Output', isNullable: false))
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'input',
             offset: null)
       ]),
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'output',
             offset: null)
       ])
@@ -534,19 +549,19 @@
             name: 'doSomething',
             arguments: <NamedType>[
               NamedType(
-                  type: TypeDeclaration(
+                  type: const TypeDeclaration(
                     baseName: 'Input',
                     isNullable: false,
                   ),
                   name: '',
                   offset: null)
             ],
-            returnType: TypeDeclaration.voidDeclaration())
+            returnType: const TypeDeclaration.voidDeclaration())
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'input',
             offset: null)
       ]),
@@ -565,19 +580,19 @@
             name: 'doSomething',
             arguments: <NamedType>[
               NamedType(
-                  type: TypeDeclaration(
+                  type: const TypeDeclaration(
                     baseName: 'Input',
                     isNullable: false,
                   ),
                   name: '',
                   offset: null)
             ],
-            returnType: TypeDeclaration.voidDeclaration())
+            returnType: const TypeDeclaration.voidDeclaration())
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'input',
             offset: null)
       ]),
@@ -598,19 +613,19 @@
             name: 'doSomething',
             arguments: <NamedType>[
               NamedType(
-                  type: TypeDeclaration(
+                  type: const TypeDeclaration(
                     baseName: 'Input',
                     isNullable: false,
                   ),
                   name: '',
                   offset: null)
             ],
-            returnType: TypeDeclaration.voidDeclaration())
+            returnType: const TypeDeclaration.voidDeclaration())
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'input',
             offset: null)
       ]),
@@ -629,19 +644,19 @@
             name: 'doSomething',
             arguments: <NamedType>[
               NamedType(
-                  type: TypeDeclaration(
+                  type: const TypeDeclaration(
                     baseName: 'Input',
                     isNullable: false,
                   ),
                   name: '',
                   offset: null)
             ],
-            returnType: TypeDeclaration.voidDeclaration())
+            returnType: const TypeDeclaration.voidDeclaration())
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'input',
             offset: null)
       ]),
@@ -660,12 +675,13 @@
         Method(
             name: 'doSomething',
             arguments: <NamedType>[],
-            returnType: TypeDeclaration(baseName: 'Output', isNullable: false))
+            returnType:
+                const TypeDeclaration(baseName: 'Output', isNullable: false))
       ])
     ], classes: <Class>[
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'output',
             offset: null)
       ]),
@@ -683,12 +699,13 @@
         Method(
             name: 'doSomething',
             arguments: <NamedType>[],
-            returnType: TypeDeclaration(baseName: 'Output', isNullable: false))
+            returnType:
+                const TypeDeclaration(baseName: 'Output', isNullable: false))
       ])
     ], classes: <Class>[
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'output',
             offset: null)
       ]),
@@ -706,12 +723,13 @@
         Method(
             name: 'doSomething',
             arguments: <NamedType>[],
-            returnType: TypeDeclaration(baseName: 'Output', isNullable: false))
+            returnType:
+                const TypeDeclaration(baseName: 'Output', isNullable: false))
       ])
     ], classes: <Class>[
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'output',
             offset: null)
       ]),
@@ -732,12 +750,13 @@
         Method(
             name: 'doSomething',
             arguments: <NamedType>[],
-            returnType: TypeDeclaration(baseName: 'Output', isNullable: false))
+            returnType:
+                const TypeDeclaration(baseName: 'Output', isNullable: false))
       ])
     ], classes: <Class>[
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'output',
             offset: null)
       ]),
@@ -757,7 +776,7 @@
     final Root root = Root(apis: <Api>[], classes: <Class>[
       Class(name: 'Foobar', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'List', isNullable: true),
+            type: const TypeDeclaration(baseName: 'List', isNullable: true),
             name: 'field1',
             offset: null)
       ]),
@@ -773,7 +792,7 @@
     final Root root = Root(apis: <Api>[], classes: <Class>[
       Class(name: 'Foobar', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'Map', isNullable: true),
+            type: const TypeDeclaration(baseName: 'Map', isNullable: true),
             name: 'field1',
             offset: null)
       ]),
@@ -785,6 +804,56 @@
     expect(code, matches('@property.*NSDictionary.*field1'));
   });
 
+  test('gen map field with object', () {
+    final Root root = Root(apis: <Api>[], classes: <Class>[
+      Class(name: 'Foobar', fields: <NamedType>[
+        NamedType(
+            type: const TypeDeclaration(
+                baseName: 'Map',
+                isNullable: true,
+                typeArguments: <TypeDeclaration>[
+                  TypeDeclaration(baseName: 'String', isNullable: true),
+                  TypeDeclaration(baseName: 'Object', isNullable: true),
+                ]),
+            name: 'field1',
+            offset: null)
+      ]),
+    ], enums: <Enum>[]);
+    final StringBuffer sink = StringBuffer();
+    generateObjcHeader(const ObjcOptions(), root, sink);
+    final String code = sink.toString();
+    expect(code, contains('@interface Foobar'));
+    expect(
+        code,
+        contains(
+            '@property(nonatomic, strong, nullable) NSDictionary<NSString *, id> *'));
+  });
+
+  test('gen map argument with object', () {
+    final Root root = Root(apis: <Api>[
+      Api(name: 'Api', location: ApiLocation.host, methods: <Method>[
+        Method(
+            name: 'doit',
+            returnType: const TypeDeclaration.voidDeclaration(),
+            arguments: <NamedType>[
+              NamedType(
+                  name: 'foo',
+                  type: const TypeDeclaration(
+                      baseName: 'Map',
+                      isNullable: true,
+                      typeArguments: <TypeDeclaration>[
+                        TypeDeclaration(baseName: 'String', isNullable: true),
+                        TypeDeclaration(baseName: 'Object', isNullable: true),
+                      ]))
+            ]),
+      ])
+    ], classes: <Class>[], enums: <Enum>[]);
+    final StringBuffer sink = StringBuffer();
+    generateObjcHeader(const ObjcOptions(), root, sink);
+    final String code = sink.toString();
+    expect(code, contains('(NSDictionary<NSString *, id> *)foo'));
+  });
+
   test('async void(input) HostApi header', () {
     final Root root = Root(apis: <Api>[
       Api(name: 'Api', location: ApiLocation.host, methods: <Method>[
@@ -792,26 +861,26 @@
             name: 'doSomething',
             arguments: <NamedType>[
               NamedType(
-                  type: TypeDeclaration(
+                  type: const TypeDeclaration(
                     baseName: 'Input',
                     isNullable: false,
                   ),
                   name: 'input',
                   offset: null)
             ],
-            returnType: TypeDeclaration.voidDeclaration(),
+            returnType: const TypeDeclaration.voidDeclaration(),
             isAsynchronous: true)
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'input',
             offset: null)
       ]),
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'output',
             offset: null)
       ]),
@@ -833,26 +902,27 @@
             name: 'doSomething',
             arguments: <NamedType>[
               NamedType(
-                  type: TypeDeclaration(
+                  type: const TypeDeclaration(
                     baseName: 'Input',
                     isNullable: false,
                   ),
                   name: 'input',
                   offset: null)
             ],
-            returnType: TypeDeclaration(baseName: 'Output', isNullable: false),
+            returnType:
+                const TypeDeclaration(baseName: 'Output', isNullable: false),
             isAsynchronous: true)
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'input',
             offset: null)
       ]),
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'output',
             offset: null)
       ]),
@@ -873,13 +943,14 @@
         Method(
             name: 'doSomething',
             arguments: <NamedType>[],
-            returnType: TypeDeclaration(baseName: 'Output', isNullable: false),
+            returnType:
+                const TypeDeclaration(baseName: 'Output', isNullable: false),
             isAsynchronous: true)
       ])
     ], classes: <Class>[
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'output',
             offset: null)
       ]),
@@ -900,7 +971,7 @@
         Method(
             name: 'doSomething',
             arguments: <NamedType>[],
-            returnType: TypeDeclaration.voidDeclaration(),
+            returnType: const TypeDeclaration.voidDeclaration(),
             isAsynchronous: true)
       ])
     ], classes: <Class>[], enums: <Enum>[]);
@@ -921,26 +992,27 @@
             name: 'doSomething',
             arguments: <NamedType>[
               NamedType(
-                  type: TypeDeclaration(
+                  type: const TypeDeclaration(
                     baseName: 'Input',
                     isNullable: false,
                   ),
                   name: '',
                   offset: null)
             ],
-            returnType: TypeDeclaration(baseName: 'Output', isNullable: false),
+            returnType:
+                const TypeDeclaration(baseName: 'Output', isNullable: false),
             isAsynchronous: true)
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'input',
             offset: null)
       ]),
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'output',
             offset: null)
       ]),
@@ -962,26 +1034,26 @@
             name: 'doSomething',
             arguments: <NamedType>[
               NamedType(
-                  type: TypeDeclaration(
+                  type: const TypeDeclaration(
                     baseName: 'Input',
                     isNullable: false,
                   ),
                   name: 'foo',
                   offset: null)
             ],
-            returnType: TypeDeclaration.voidDeclaration(),
+            returnType: const TypeDeclaration.voidDeclaration(),
             isAsynchronous: true)
       ])
     ], classes: <Class>[
       Class(name: 'Input', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'input',
             offset: null)
       ]),
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'output',
             offset: null)
       ]),
@@ -1002,7 +1074,7 @@
         Method(
             name: 'doSomething',
             arguments: <NamedType>[],
-            returnType: TypeDeclaration.voidDeclaration(),
+            returnType: const TypeDeclaration.voidDeclaration(),
             isAsynchronous: true)
       ])
     ], classes: <Class>[], enums: <Enum>[]);
@@ -1022,13 +1094,14 @@
         Method(
             name: 'doSomething',
             arguments: <NamedType>[],
-            returnType: TypeDeclaration(baseName: 'Output', isNullable: false),
+            returnType:
+                const TypeDeclaration(baseName: 'Output', isNullable: false),
             isAsynchronous: true)
       ])
     ], classes: <Class>[
       Class(name: 'Output', fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(baseName: 'String', isNullable: true),
+            type: const TypeDeclaration(baseName: 'String', isNullable: true),
             name: 'output',
             offset: null)
       ]),
@@ -1082,7 +1155,7 @@
       name: 'Foobar',
       fields: <NamedType>[
         NamedType(
-            type: TypeDeclaration(
+            type: const TypeDeclaration(
                 baseName: 'List',
                 isNullable: true,
                 typeArguments: <TypeDeclaration>[
@@ -1110,10 +1183,10 @@
         Api(name: 'Api', location: ApiLocation.host, methods: <Method>[
           Method(
               name: 'doit',
-              returnType: TypeDeclaration.voidDeclaration(),
+              returnType: const TypeDeclaration.voidDeclaration(),
               arguments: <NamedType>[
                 NamedType(
-                    type: TypeDeclaration(
+                    type: const TypeDeclaration(
                         baseName: 'List',
                         isNullable: false,
                         typeArguments: <TypeDeclaration>[
@@ -1149,10 +1222,10 @@
         Api(name: 'Api', location: ApiLocation.flutter, methods: <Method>[
           Method(
               name: 'doit',
-              returnType: TypeDeclaration.voidDeclaration(),
+              returnType: const TypeDeclaration.voidDeclaration(),
               arguments: <NamedType>[
                 NamedType(
-                    type: TypeDeclaration(
+                    type: const TypeDeclaration(
                         baseName: 'List',
                         isNullable: false,
                         typeArguments: <TypeDeclaration>[
@@ -1188,10 +1261,10 @@
         Api(name: 'Api', location: ApiLocation.host, methods: <Method>[
           Method(
               name: 'doit',
-              returnType: TypeDeclaration.voidDeclaration(),
+              returnType: const TypeDeclaration.voidDeclaration(),
               arguments: <NamedType>[
                 NamedType(
-                    type: TypeDeclaration(
+                    type: const TypeDeclaration(
                         baseName: 'List',
                         isNullable: false,
                         typeArguments: <TypeDeclaration>[
@@ -1226,7 +1299,7 @@
         Api(name: 'Api', location: ApiLocation.host, methods: <Method>[
           Method(
               name: 'doit',
-              returnType: TypeDeclaration(
+              returnType: const TypeDeclaration(
                   baseName: 'List',
                   isNullable: false,
                   typeArguments: <TypeDeclaration>[
@@ -1261,7 +1334,7 @@
         Api(name: 'Api', location: ApiLocation.flutter, methods: <Method>[
           Method(
               name: 'doit',
-              returnType: TypeDeclaration(
+              returnType: const TypeDeclaration(
                   baseName: 'List',
                   isNullable: false,
                   typeArguments: <TypeDeclaration>[
@@ -1299,12 +1372,14 @@
           arguments: <NamedType>[
             NamedType(
                 name: 'x',
-                type: TypeDeclaration(isNullable: false, baseName: 'int')),
+                type:
+                    const TypeDeclaration(isNullable: false, baseName: 'int')),
             NamedType(
                 name: 'y',
-                type: TypeDeclaration(isNullable: false, baseName: 'int')),
+                type:
+                    const TypeDeclaration(isNullable: false, baseName: 'int')),
           ],
-          returnType: TypeDeclaration(baseName: 'int', isNullable: false),
+          returnType: const TypeDeclaration(baseName: 'int', isNullable: false),
           isAsynchronous: false,
         )
       ])
@@ -1340,12 +1415,14 @@
           arguments: <NamedType>[
             NamedType(
                 name: 'x',
-                type: TypeDeclaration(isNullable: false, baseName: 'int')),
+                type:
+                    const TypeDeclaration(isNullable: false, baseName: 'int')),
             NamedType(
                 name: 'y',
-                type: TypeDeclaration(isNullable: false, baseName: 'int')),
+                type:
+                    const TypeDeclaration(isNullable: false, baseName: 'int')),
           ],
-          returnType: TypeDeclaration(baseName: 'int', isNullable: false),
+          returnType: const TypeDeclaration(baseName: 'int', isNullable: false),
           isAsynchronous: true,
         )
       ])
@@ -1380,12 +1457,14 @@
           arguments: <NamedType>[
             NamedType(
                 name: 'x',
-                type: TypeDeclaration(isNullable: false, baseName: 'int')),
+                type:
+                    const TypeDeclaration(isNullable: false, baseName: 'int')),
             NamedType(
                 name: 'y',
-                type: TypeDeclaration(isNullable: false, baseName: 'int')),
+                type:
+                    const TypeDeclaration(isNullable: false, baseName: 'int')),
           ],
-          returnType: TypeDeclaration(baseName: 'int', isNullable: false),
+          returnType: const TypeDeclaration(baseName: 'int', isNullable: false),
           isAsynchronous: false,
         )
       ])
@@ -1421,16 +1500,18 @@
                 objcSelector: 'divideValue:by:',
                 arguments: <NamedType>[
                   NamedType(
-                    type: TypeDeclaration(baseName: 'int', isNullable: false),
+                    type: const TypeDeclaration(
+                        baseName: 'int', isNullable: false),
                     name: 'x',
                   ),
                   NamedType(
-                    type: TypeDeclaration(baseName: 'int', isNullable: false),
+                    type: const TypeDeclaration(
+                        baseName: 'int', isNullable: false),
                     name: 'y',
                   ),
                 ],
-                returnType:
-                    TypeDeclaration(baseName: 'double', isNullable: false))
+                returnType: const TypeDeclaration(
+                    baseName: 'double', isNullable: false))
           ])
         ],
         classes: <Class>[],
diff --git a/packages/pigeon/test/pigeon_lib_test.dart b/packages/pigeon/test/pigeon_lib_test.dart
index 8f2a587..63c9498 100644
--- a/packages/pigeon/test/pigeon_lib_test.dart
+++ b/packages/pigeon/test/pigeon_lib_test.dart
@@ -890,4 +890,15 @@
     expect(results.errors[0].lineNumber, 3);
     expect(results.errors[0].message, contains('Unknown type: Foo'));
   });
+
+  test('Object type argument', () {
+    const String code = '''
+@HostApi()
+abstract class Api {
+  void storeAll(List<Object?> foos);
+}
+''';
+    final ParseResults results = _parseSource(code);
+    expect(results.errors.length, 0);
+  });
 }
