[pigeon] Fix missed line break between generated statements in Kotlin (#2997)

* [pigeon] Fix missed line break between generated statements in Kotlin

* [pigeon] Extend platform test pigeon to catch missed line break

* [pigeon] Use prefared core tests pigeon to catch missed line break

* [pigeon] Remove formatting that causes a position-related issues

* [pigeon] Move not a special-case type field to the end to improve compilation test coverage

* [pigeon] Restore accidentally removed changelog entry

* fix broken test and add gen files

Co-authored-by: tarrinneal <tarrinneal@gmail.com>
diff --git a/packages/pigeon/CHANGELOG.md b/packages/pigeon/CHANGELOG.md
index 9c62479..4219492 100644
--- a/packages/pigeon/CHANGELOG.md
+++ b/packages/pigeon/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 6.0.2
+
+* [kotlin] Fixes a bug with a missed line break between generated statements in the `fromList` function of the companion object.
+
 ## 6.0.1
 
 * [c++] Fixes most non-class arguments and return values in Flutter APIs. The
diff --git a/packages/pigeon/lib/generator_tools.dart b/packages/pigeon/lib/generator_tools.dart
index 40f2f5b..b01a798 100644
--- a/packages/pigeon/lib/generator_tools.dart
+++ b/packages/pigeon/lib/generator_tools.dart
@@ -9,7 +9,7 @@
 import 'ast.dart';
 
 /// The current version of pigeon. This must match the version in pubspec.yaml.
-const String pigeonVersion = '6.0.1';
+const String pigeonVersion = '6.0.2';
 
 /// Read all the content from [stdin] to a String.
 String readStdin() {
diff --git a/packages/pigeon/lib/kotlin_generator.dart b/packages/pigeon/lib/kotlin_generator.dart
index 76b270b..178309a 100644
--- a/packages/pigeon/lib/kotlin_generator.dart
+++ b/packages/pigeon/lib/kotlin_generator.dart
@@ -253,7 +253,7 @@
                   'val ${field.name} = $fieldType.fromList($listValue as List<Any?>)');
             } else if (!hostDatatype.isBuiltin &&
                 customEnumNames.contains(field.type.baseName)) {
-              indent.write(
+              indent.writeln(
                   'val ${field.name} = $fieldType.ofRaw($listValue as Int)!!');
             } else {
               indent.writeln('val ${field.name} = $listValue as $fieldType');
@@ -261,7 +261,6 @@
           }
         });
 
-        indent.writeln('');
         indent.write('return $className(');
         for (final NamedType field in getFieldsInSerializationOrder(klass)) {
           final String comma =
diff --git a/packages/pigeon/mock_handler_tester/test/message.dart b/packages/pigeon/mock_handler_tester/test/message.dart
index 0afd305..ae14da4 100644
--- a/packages/pigeon/mock_handler_tester/test/message.dart
+++ b/packages/pigeon/mock_handler_tester/test/message.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 (v6.0.1), do not edit directly.
+// Autogenerated from Pigeon (v6.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
 
diff --git a/packages/pigeon/mock_handler_tester/test/test.dart b/packages/pigeon/mock_handler_tester/test/test.dart
index 25f5d73..8e395a8 100644
--- a/packages/pigeon/mock_handler_tester/test/test.dart
+++ b/packages/pigeon/mock_handler_tester/test/test.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 (v6.0.1), do not edit directly.
+// Autogenerated from Pigeon (v6.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, unnecessary_import
 // ignore_for_file: avoid_relative_lib_imports
diff --git a/packages/pigeon/pigeons/core_tests.dart b/packages/pigeon/pigeons/core_tests.dart
index 1699b0f..dd3be1d 100644
--- a/packages/pigeon/pigeons/core_tests.dart
+++ b/packages/pigeon/pigeons/core_tests.dart
@@ -16,7 +16,6 @@
     this.aBool = false,
     this.anInt = 0,
     this.aDouble = 0,
-    this.aString = '',
     required this.aByteArray,
     required this.a4ByteArray,
     required this.a8ByteArray,
@@ -24,12 +23,12 @@
     this.aList = const <Object?>[],
     this.aMap = const <String?, Object?>{},
     this.anEnum = AnEnum.one,
+    this.aString = '',
   });
 
   bool aBool;
   int anInt;
   double aDouble;
-  String aString;
   Uint8List aByteArray;
   Int32List a4ByteArray;
   Int64List a8ByteArray;
@@ -39,6 +38,7 @@
   // ignore: always_specify_types, strict_raw_type
   Map aMap;
   AnEnum anEnum;
+  String aString;
 }
 
 // A class containing all supported nullable types.
@@ -47,7 +47,6 @@
     this.aNullableBool,
     this.aNullableInt,
     this.aNullableDouble,
-    this.aNullableString,
     this.aNullableByteArray,
     this.aNullable4ByteArray,
     this.aNullable8ByteArray,
@@ -58,12 +57,12 @@
     this.nullableMapWithAnnotations,
     this.nullableMapWithObject,
     this.aNullableEnum,
+    this.aNullableString,
   );
 
   bool? aNullableBool;
   int? aNullableInt;
   double? aNullableDouble;
-  String? aNullableString;
   Uint8List? aNullableByteArray;
   Int32List? aNullable4ByteArray;
   Int64List? aNullable8ByteArray;
@@ -76,6 +75,7 @@
   Map<String?, String?>? nullableMapWithAnnotations;
   Map<String?, Object?>? nullableMapWithObject;
   AnEnum? aNullableEnum;
+  String? aNullableString;
 }
 
 // A class for testing nested object handling.
diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/main/java/com/example/alternate_language_test_plugin/CoreTests.java b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/main/java/com/example/alternate_language_test_plugin/CoreTests.java
index 13367f2..d532105 100644
--- a/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/main/java/com/example/alternate_language_test_plugin/CoreTests.java
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/android/src/main/java/com/example/alternate_language_test_plugin/CoreTests.java
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 //
-// Autogenerated from Pigeon (v6.0.1), do not edit directly.
+// Autogenerated from Pigeon (v6.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 
 package com.example.alternate_language_test_plugin;
@@ -88,19 +88,6 @@
       this.aDouble = setterArg;
     }
 
-    private @NonNull String aString;
-
-    public @NonNull String getAString() {
-      return aString;
-    }
-
-    public void setAString(@NonNull String setterArg) {
-      if (setterArg == null) {
-        throw new IllegalStateException("Nonnull field \"aString\" is null.");
-      }
-      this.aString = setterArg;
-    }
-
     private @NonNull byte[] aByteArray;
 
     public @NonNull byte[] getAByteArray() {
@@ -192,6 +179,19 @@
       this.anEnum = setterArg;
     }
 
+    private @NonNull String aString;
+
+    public @NonNull String getAString() {
+      return aString;
+    }
+
+    public void setAString(@NonNull String setterArg) {
+      if (setterArg == null) {
+        throw new IllegalStateException("Nonnull field \"aString\" is null.");
+      }
+      this.aString = setterArg;
+    }
+
     /** Constructor is private to enforce null safety; use Builder. */
     private AllTypes() {}
 
@@ -217,13 +217,6 @@
         return this;
       }
 
-      private @Nullable String aString;
-
-      public @NonNull Builder setAString(@NonNull String setterArg) {
-        this.aString = setterArg;
-        return this;
-      }
-
       private @Nullable byte[] aByteArray;
 
       public @NonNull Builder setAByteArray(@NonNull byte[] setterArg) {
@@ -273,12 +266,18 @@
         return this;
       }
 
+      private @Nullable String aString;
+
+      public @NonNull Builder setAString(@NonNull String setterArg) {
+        this.aString = setterArg;
+        return this;
+      }
+
       public @NonNull AllTypes build() {
         AllTypes pigeonReturn = new AllTypes();
         pigeonReturn.setABool(aBool);
         pigeonReturn.setAnInt(anInt);
         pigeonReturn.setADouble(aDouble);
-        pigeonReturn.setAString(aString);
         pigeonReturn.setAByteArray(aByteArray);
         pigeonReturn.setA4ByteArray(a4ByteArray);
         pigeonReturn.setA8ByteArray(a8ByteArray);
@@ -286,6 +285,7 @@
         pigeonReturn.setAList(aList);
         pigeonReturn.setAMap(aMap);
         pigeonReturn.setAnEnum(anEnum);
+        pigeonReturn.setAString(aString);
         return pigeonReturn;
       }
     }
@@ -296,7 +296,6 @@
       toListResult.add(aBool);
       toListResult.add(anInt);
       toListResult.add(aDouble);
-      toListResult.add(aString);
       toListResult.add(aByteArray);
       toListResult.add(a4ByteArray);
       toListResult.add(a8ByteArray);
@@ -304,6 +303,7 @@
       toListResult.add(aList);
       toListResult.add(aMap);
       toListResult.add(anEnum == null ? null : anEnum.index);
+      toListResult.add(aString);
       return toListResult;
     }
 
@@ -316,22 +316,22 @@
           (anInt == null) ? null : ((anInt instanceof Integer) ? (Integer) anInt : (Long) anInt));
       Object aDouble = list.get(2);
       pigeonResult.setADouble((Double) aDouble);
-      Object aString = list.get(3);
-      pigeonResult.setAString((String) aString);
-      Object aByteArray = list.get(4);
+      Object aByteArray = list.get(3);
       pigeonResult.setAByteArray((byte[]) aByteArray);
-      Object a4ByteArray = list.get(5);
+      Object a4ByteArray = list.get(4);
       pigeonResult.setA4ByteArray((int[]) a4ByteArray);
-      Object a8ByteArray = list.get(6);
+      Object a8ByteArray = list.get(5);
       pigeonResult.setA8ByteArray((long[]) a8ByteArray);
-      Object aFloatArray = list.get(7);
+      Object aFloatArray = list.get(6);
       pigeonResult.setAFloatArray((double[]) aFloatArray);
-      Object aList = list.get(8);
+      Object aList = list.get(7);
       pigeonResult.setAList((List<Object>) aList);
-      Object aMap = list.get(9);
+      Object aMap = list.get(8);
       pigeonResult.setAMap((Map<Object, Object>) aMap);
-      Object anEnum = list.get(10);
+      Object anEnum = list.get(9);
       pigeonResult.setAnEnum(anEnum == null ? null : AnEnum.values()[(int) anEnum]);
+      Object aString = list.get(10);
+      pigeonResult.setAString((String) aString);
       return pigeonResult;
     }
   }
@@ -368,16 +368,6 @@
       this.aNullableDouble = setterArg;
     }
 
-    private @Nullable String aNullableString;
-
-    public @Nullable String getANullableString() {
-      return aNullableString;
-    }
-
-    public void setANullableString(@Nullable String setterArg) {
-      this.aNullableString = setterArg;
-    }
-
     private @Nullable byte[] aNullableByteArray;
 
     public @Nullable byte[] getANullableByteArray() {
@@ -478,6 +468,16 @@
       this.aNullableEnum = setterArg;
     }
 
+    private @Nullable String aNullableString;
+
+    public @Nullable String getANullableString() {
+      return aNullableString;
+    }
+
+    public void setANullableString(@Nullable String setterArg) {
+      this.aNullableString = setterArg;
+    }
+
     public static final class Builder {
       private @Nullable Boolean aNullableBool;
 
@@ -500,13 +500,6 @@
         return this;
       }
 
-      private @Nullable String aNullableString;
-
-      public @NonNull Builder setANullableString(@Nullable String setterArg) {
-        this.aNullableString = setterArg;
-        return this;
-      }
-
       private @Nullable byte[] aNullableByteArray;
 
       public @NonNull Builder setANullableByteArray(@Nullable byte[] setterArg) {
@@ -578,12 +571,18 @@
         return this;
       }
 
+      private @Nullable String aNullableString;
+
+      public @NonNull Builder setANullableString(@Nullable String setterArg) {
+        this.aNullableString = setterArg;
+        return this;
+      }
+
       public @NonNull AllNullableTypes build() {
         AllNullableTypes pigeonReturn = new AllNullableTypes();
         pigeonReturn.setANullableBool(aNullableBool);
         pigeonReturn.setANullableInt(aNullableInt);
         pigeonReturn.setANullableDouble(aNullableDouble);
-        pigeonReturn.setANullableString(aNullableString);
         pigeonReturn.setANullableByteArray(aNullableByteArray);
         pigeonReturn.setANullable4ByteArray(aNullable4ByteArray);
         pigeonReturn.setANullable8ByteArray(aNullable8ByteArray);
@@ -594,6 +593,7 @@
         pigeonReturn.setNullableMapWithAnnotations(nullableMapWithAnnotations);
         pigeonReturn.setNullableMapWithObject(nullableMapWithObject);
         pigeonReturn.setANullableEnum(aNullableEnum);
+        pigeonReturn.setANullableString(aNullableString);
         return pigeonReturn;
       }
     }
@@ -604,7 +604,6 @@
       toListResult.add(aNullableBool);
       toListResult.add(aNullableInt);
       toListResult.add(aNullableDouble);
-      toListResult.add(aNullableString);
       toListResult.add(aNullableByteArray);
       toListResult.add(aNullable4ByteArray);
       toListResult.add(aNullable8ByteArray);
@@ -615,6 +614,7 @@
       toListResult.add(nullableMapWithAnnotations);
       toListResult.add(nullableMapWithObject);
       toListResult.add(aNullableEnum == null ? null : aNullableEnum.index);
+      toListResult.add(aNullableString);
       return toListResult;
     }
 
@@ -629,29 +629,29 @@
               : ((aNullableInt instanceof Integer) ? (Integer) aNullableInt : (Long) aNullableInt));
       Object aNullableDouble = list.get(2);
       pigeonResult.setANullableDouble((Double) aNullableDouble);
-      Object aNullableString = list.get(3);
-      pigeonResult.setANullableString((String) aNullableString);
-      Object aNullableByteArray = list.get(4);
+      Object aNullableByteArray = list.get(3);
       pigeonResult.setANullableByteArray((byte[]) aNullableByteArray);
-      Object aNullable4ByteArray = list.get(5);
+      Object aNullable4ByteArray = list.get(4);
       pigeonResult.setANullable4ByteArray((int[]) aNullable4ByteArray);
-      Object aNullable8ByteArray = list.get(6);
+      Object aNullable8ByteArray = list.get(5);
       pigeonResult.setANullable8ByteArray((long[]) aNullable8ByteArray);
-      Object aNullableFloatArray = list.get(7);
+      Object aNullableFloatArray = list.get(6);
       pigeonResult.setANullableFloatArray((double[]) aNullableFloatArray);
-      Object aNullableList = list.get(8);
+      Object aNullableList = list.get(7);
       pigeonResult.setANullableList((List<Object>) aNullableList);
-      Object aNullableMap = list.get(9);
+      Object aNullableMap = list.get(8);
       pigeonResult.setANullableMap((Map<Object, Object>) aNullableMap);
-      Object nullableNestedList = list.get(10);
+      Object nullableNestedList = list.get(9);
       pigeonResult.setNullableNestedList((List<List<Boolean>>) nullableNestedList);
-      Object nullableMapWithAnnotations = list.get(11);
+      Object nullableMapWithAnnotations = list.get(10);
       pigeonResult.setNullableMapWithAnnotations((Map<String, String>) nullableMapWithAnnotations);
-      Object nullableMapWithObject = list.get(12);
+      Object nullableMapWithObject = list.get(11);
       pigeonResult.setNullableMapWithObject((Map<String, Object>) nullableMapWithObject);
-      Object aNullableEnum = list.get(13);
+      Object aNullableEnum = list.get(12);
       pigeonResult.setANullableEnum(
           aNullableEnum == null ? null : AnEnum.values()[(int) aNullableEnum]);
+      Object aNullableString = list.get(13);
+      pigeonResult.setANullableString((String) aNullableString);
       return pigeonResult;
     }
   }
diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/ios/Classes/CoreTests.gen.h b/packages/pigeon/platform_tests/alternate_language_test_plugin/ios/Classes/CoreTests.gen.h
index a5c55a3..613db6d 100644
--- a/packages/pigeon/platform_tests/alternate_language_test_plugin/ios/Classes/CoreTests.gen.h
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/ios/Classes/CoreTests.gen.h
@@ -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 (v6.0.1), do not edit directly.
+// Autogenerated from Pigeon (v6.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 
 #import <Foundation/Foundation.h>
@@ -30,18 +30,17 @@
 + (instancetype)makeWithABool:(NSNumber *)aBool
                         anInt:(NSNumber *)anInt
                       aDouble:(NSNumber *)aDouble
-                      aString:(NSString *)aString
                    aByteArray:(FlutterStandardTypedData *)aByteArray
                   a4ByteArray:(FlutterStandardTypedData *)a4ByteArray
                   a8ByteArray:(FlutterStandardTypedData *)a8ByteArray
                   aFloatArray:(FlutterStandardTypedData *)aFloatArray
                         aList:(NSArray *)aList
                          aMap:(NSDictionary *)aMap
-                       anEnum:(AnEnum)anEnum;
+                       anEnum:(AnEnum)anEnum
+                      aString:(NSString *)aString;
 @property(nonatomic, strong) NSNumber *aBool;
 @property(nonatomic, strong) NSNumber *anInt;
 @property(nonatomic, strong) NSNumber *aDouble;
-@property(nonatomic, copy) NSString *aString;
 @property(nonatomic, strong) FlutterStandardTypedData *aByteArray;
 @property(nonatomic, strong) FlutterStandardTypedData *a4ByteArray;
 @property(nonatomic, strong) FlutterStandardTypedData *a8ByteArray;
@@ -49,13 +48,13 @@
 @property(nonatomic, strong) NSArray *aList;
 @property(nonatomic, strong) NSDictionary *aMap;
 @property(nonatomic, assign) AnEnum anEnum;
+@property(nonatomic, copy) NSString *aString;
 @end
 
 @interface AllNullableTypes : NSObject
 + (instancetype)makeWithANullableBool:(nullable NSNumber *)aNullableBool
                          aNullableInt:(nullable NSNumber *)aNullableInt
                       aNullableDouble:(nullable NSNumber *)aNullableDouble
-                      aNullableString:(nullable NSString *)aNullableString
                    aNullableByteArray:(nullable FlutterStandardTypedData *)aNullableByteArray
                   aNullable4ByteArray:(nullable FlutterStandardTypedData *)aNullable4ByteArray
                   aNullable8ByteArray:(nullable FlutterStandardTypedData *)aNullable8ByteArray
@@ -66,11 +65,11 @@
            nullableMapWithAnnotations:
                (nullable NSDictionary<NSString *, NSString *> *)nullableMapWithAnnotations
                 nullableMapWithObject:(nullable NSDictionary<NSString *, id> *)nullableMapWithObject
-                        aNullableEnum:(AnEnum)aNullableEnum;
+                        aNullableEnum:(AnEnum)aNullableEnum
+                      aNullableString:(nullable NSString *)aNullableString;
 @property(nonatomic, strong, nullable) NSNumber *aNullableBool;
 @property(nonatomic, strong, nullable) NSNumber *aNullableInt;
 @property(nonatomic, strong, nullable) NSNumber *aNullableDouble;
-@property(nonatomic, copy, nullable) NSString *aNullableString;
 @property(nonatomic, strong, nullable) FlutterStandardTypedData *aNullableByteArray;
 @property(nonatomic, strong, nullable) FlutterStandardTypedData *aNullable4ByteArray;
 @property(nonatomic, strong, nullable) FlutterStandardTypedData *aNullable8ByteArray;
@@ -82,6 +81,7 @@
     NSDictionary<NSString *, NSString *> *nullableMapWithAnnotations;
 @property(nonatomic, strong, nullable) NSDictionary<NSString *, id> *nullableMapWithObject;
 @property(nonatomic, assign) AnEnum aNullableEnum;
+@property(nonatomic, copy, nullable) NSString *aNullableString;
 @end
 
 @interface AllNullableTypesWrapper : NSObject
diff --git a/packages/pigeon/platform_tests/alternate_language_test_plugin/ios/Classes/CoreTests.gen.m b/packages/pigeon/platform_tests/alternate_language_test_plugin/ios/Classes/CoreTests.gen.m
index c8fa7d8..fac51db 100644
--- a/packages/pigeon/platform_tests/alternate_language_test_plugin/ios/Classes/CoreTests.gen.m
+++ b/packages/pigeon/platform_tests/alternate_language_test_plugin/ios/Classes/CoreTests.gen.m
@@ -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 (v6.0.1), do not edit directly.
+// Autogenerated from Pigeon (v6.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 
 #import "CoreTests.gen.h"
@@ -51,19 +51,18 @@
 + (instancetype)makeWithABool:(NSNumber *)aBool
                         anInt:(NSNumber *)anInt
                       aDouble:(NSNumber *)aDouble
-                      aString:(NSString *)aString
                    aByteArray:(FlutterStandardTypedData *)aByteArray
                   a4ByteArray:(FlutterStandardTypedData *)a4ByteArray
                   a8ByteArray:(FlutterStandardTypedData *)a8ByteArray
                   aFloatArray:(FlutterStandardTypedData *)aFloatArray
                         aList:(NSArray *)aList
                          aMap:(NSDictionary *)aMap
-                       anEnum:(AnEnum)anEnum {
+                       anEnum:(AnEnum)anEnum
+                      aString:(NSString *)aString {
   AllTypes *pigeonResult = [[AllTypes alloc] init];
   pigeonResult.aBool = aBool;
   pigeonResult.anInt = anInt;
   pigeonResult.aDouble = aDouble;
-  pigeonResult.aString = aString;
   pigeonResult.aByteArray = aByteArray;
   pigeonResult.a4ByteArray = a4ByteArray;
   pigeonResult.a8ByteArray = a8ByteArray;
@@ -71,6 +70,7 @@
   pigeonResult.aList = aList;
   pigeonResult.aMap = aMap;
   pigeonResult.anEnum = anEnum;
+  pigeonResult.aString = aString;
   return pigeonResult;
 }
 + (AllTypes *)fromList:(NSArray *)list {
@@ -81,21 +81,21 @@
   NSAssert(pigeonResult.anInt != nil, @"");
   pigeonResult.aDouble = GetNullableObjectAtIndex(list, 2);
   NSAssert(pigeonResult.aDouble != nil, @"");
-  pigeonResult.aString = GetNullableObjectAtIndex(list, 3);
-  NSAssert(pigeonResult.aString != nil, @"");
-  pigeonResult.aByteArray = GetNullableObjectAtIndex(list, 4);
+  pigeonResult.aByteArray = GetNullableObjectAtIndex(list, 3);
   NSAssert(pigeonResult.aByteArray != nil, @"");
-  pigeonResult.a4ByteArray = GetNullableObjectAtIndex(list, 5);
+  pigeonResult.a4ByteArray = GetNullableObjectAtIndex(list, 4);
   NSAssert(pigeonResult.a4ByteArray != nil, @"");
-  pigeonResult.a8ByteArray = GetNullableObjectAtIndex(list, 6);
+  pigeonResult.a8ByteArray = GetNullableObjectAtIndex(list, 5);
   NSAssert(pigeonResult.a8ByteArray != nil, @"");
-  pigeonResult.aFloatArray = GetNullableObjectAtIndex(list, 7);
+  pigeonResult.aFloatArray = GetNullableObjectAtIndex(list, 6);
   NSAssert(pigeonResult.aFloatArray != nil, @"");
-  pigeonResult.aList = GetNullableObjectAtIndex(list, 8);
+  pigeonResult.aList = GetNullableObjectAtIndex(list, 7);
   NSAssert(pigeonResult.aList != nil, @"");
-  pigeonResult.aMap = GetNullableObjectAtIndex(list, 9);
+  pigeonResult.aMap = GetNullableObjectAtIndex(list, 8);
   NSAssert(pigeonResult.aMap != nil, @"");
-  pigeonResult.anEnum = [GetNullableObjectAtIndex(list, 10) integerValue];
+  pigeonResult.anEnum = [GetNullableObjectAtIndex(list, 9) integerValue];
+  pigeonResult.aString = GetNullableObjectAtIndex(list, 10);
+  NSAssert(pigeonResult.aString != nil, @"");
   return pigeonResult;
 }
 + (nullable AllTypes *)nullableFromList:(NSArray *)list {
@@ -106,7 +106,6 @@
     (self.aBool ?: [NSNull null]),
     (self.anInt ?: [NSNull null]),
     (self.aDouble ?: [NSNull null]),
-    (self.aString ?: [NSNull null]),
     (self.aByteArray ?: [NSNull null]),
     (self.a4ByteArray ?: [NSNull null]),
     (self.a8ByteArray ?: [NSNull null]),
@@ -114,6 +113,7 @@
     (self.aList ?: [NSNull null]),
     (self.aMap ?: [NSNull null]),
     @(self.anEnum),
+    (self.aString ?: [NSNull null]),
   ];
 }
 @end
@@ -122,7 +122,6 @@
 + (instancetype)makeWithANullableBool:(nullable NSNumber *)aNullableBool
                          aNullableInt:(nullable NSNumber *)aNullableInt
                       aNullableDouble:(nullable NSNumber *)aNullableDouble
-                      aNullableString:(nullable NSString *)aNullableString
                    aNullableByteArray:(nullable FlutterStandardTypedData *)aNullableByteArray
                   aNullable4ByteArray:(nullable FlutterStandardTypedData *)aNullable4ByteArray
                   aNullable8ByteArray:(nullable FlutterStandardTypedData *)aNullable8ByteArray
@@ -133,12 +132,12 @@
            nullableMapWithAnnotations:
                (nullable NSDictionary<NSString *, NSString *> *)nullableMapWithAnnotations
                 nullableMapWithObject:(nullable NSDictionary<NSString *, id> *)nullableMapWithObject
-                        aNullableEnum:(AnEnum)aNullableEnum {
+                        aNullableEnum:(AnEnum)aNullableEnum
+                      aNullableString:(nullable NSString *)aNullableString {
   AllNullableTypes *pigeonResult = [[AllNullableTypes alloc] init];
   pigeonResult.aNullableBool = aNullableBool;
   pigeonResult.aNullableInt = aNullableInt;
   pigeonResult.aNullableDouble = aNullableDouble;
-  pigeonResult.aNullableString = aNullableString;
   pigeonResult.aNullableByteArray = aNullableByteArray;
   pigeonResult.aNullable4ByteArray = aNullable4ByteArray;
   pigeonResult.aNullable8ByteArray = aNullable8ByteArray;
@@ -149,6 +148,7 @@
   pigeonResult.nullableMapWithAnnotations = nullableMapWithAnnotations;
   pigeonResult.nullableMapWithObject = nullableMapWithObject;
   pigeonResult.aNullableEnum = aNullableEnum;
+  pigeonResult.aNullableString = aNullableString;
   return pigeonResult;
 }
 + (AllNullableTypes *)fromList:(NSArray *)list {
@@ -156,17 +156,17 @@
   pigeonResult.aNullableBool = GetNullableObjectAtIndex(list, 0);
   pigeonResult.aNullableInt = GetNullableObjectAtIndex(list, 1);
   pigeonResult.aNullableDouble = GetNullableObjectAtIndex(list, 2);
-  pigeonResult.aNullableString = GetNullableObjectAtIndex(list, 3);
-  pigeonResult.aNullableByteArray = GetNullableObjectAtIndex(list, 4);
-  pigeonResult.aNullable4ByteArray = GetNullableObjectAtIndex(list, 5);
-  pigeonResult.aNullable8ByteArray = GetNullableObjectAtIndex(list, 6);
-  pigeonResult.aNullableFloatArray = GetNullableObjectAtIndex(list, 7);
-  pigeonResult.aNullableList = GetNullableObjectAtIndex(list, 8);
-  pigeonResult.aNullableMap = GetNullableObjectAtIndex(list, 9);
-  pigeonResult.nullableNestedList = GetNullableObjectAtIndex(list, 10);
-  pigeonResult.nullableMapWithAnnotations = GetNullableObjectAtIndex(list, 11);
-  pigeonResult.nullableMapWithObject = GetNullableObjectAtIndex(list, 12);
-  pigeonResult.aNullableEnum = [GetNullableObjectAtIndex(list, 13) integerValue];
+  pigeonResult.aNullableByteArray = GetNullableObjectAtIndex(list, 3);
+  pigeonResult.aNullable4ByteArray = GetNullableObjectAtIndex(list, 4);
+  pigeonResult.aNullable8ByteArray = GetNullableObjectAtIndex(list, 5);
+  pigeonResult.aNullableFloatArray = GetNullableObjectAtIndex(list, 6);
+  pigeonResult.aNullableList = GetNullableObjectAtIndex(list, 7);
+  pigeonResult.aNullableMap = GetNullableObjectAtIndex(list, 8);
+  pigeonResult.nullableNestedList = GetNullableObjectAtIndex(list, 9);
+  pigeonResult.nullableMapWithAnnotations = GetNullableObjectAtIndex(list, 10);
+  pigeonResult.nullableMapWithObject = GetNullableObjectAtIndex(list, 11);
+  pigeonResult.aNullableEnum = [GetNullableObjectAtIndex(list, 12) integerValue];
+  pigeonResult.aNullableString = GetNullableObjectAtIndex(list, 13);
   return pigeonResult;
 }
 + (nullable AllNullableTypes *)nullableFromList:(NSArray *)list {
@@ -177,7 +177,6 @@
     (self.aNullableBool ?: [NSNull null]),
     (self.aNullableInt ?: [NSNull null]),
     (self.aNullableDouble ?: [NSNull null]),
-    (self.aNullableString ?: [NSNull null]),
     (self.aNullableByteArray ?: [NSNull null]),
     (self.aNullable4ByteArray ?: [NSNull null]),
     (self.aNullable8ByteArray ?: [NSNull null]),
@@ -188,6 +187,7 @@
     (self.nullableMapWithAnnotations ?: [NSNull null]),
     (self.nullableMapWithObject ?: [NSNull null]),
     @(self.aNullableEnum),
+    (self.aNullableString ?: [NSNull null]),
   ];
 }
 @end
diff --git a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/core_tests.gen.dart b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/core_tests.gen.dart
index 203f02b..8de1cc3 100644
--- a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/core_tests.gen.dart
+++ b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/core_tests.gen.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 (v6.0.1), do not edit directly.
+// Autogenerated from Pigeon (v6.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
 
@@ -23,7 +23,6 @@
     required this.aBool,
     required this.anInt,
     required this.aDouble,
-    required this.aString,
     required this.aByteArray,
     required this.a4ByteArray,
     required this.a8ByteArray,
@@ -31,6 +30,7 @@
     required this.aList,
     required this.aMap,
     required this.anEnum,
+    required this.aString,
   });
 
   bool aBool;
@@ -39,8 +39,6 @@
 
   double aDouble;
 
-  String aString;
-
   Uint8List aByteArray;
 
   Int32List a4ByteArray;
@@ -55,12 +53,13 @@
 
   AnEnum anEnum;
 
+  String aString;
+
   Object encode() {
     return <Object?>[
       aBool,
       anInt,
       aDouble,
-      aString,
       aByteArray,
       a4ByteArray,
       a8ByteArray,
@@ -68,6 +67,7 @@
       aList,
       aMap,
       anEnum.index,
+      aString,
     ];
   }
 
@@ -77,14 +77,14 @@
       aBool: result[0]! as bool,
       anInt: result[1]! as int,
       aDouble: result[2]! as double,
-      aString: result[3]! as String,
-      aByteArray: result[4]! as Uint8List,
-      a4ByteArray: result[5]! as Int32List,
-      a8ByteArray: result[6]! as Int64List,
-      aFloatArray: result[7]! as Float64List,
-      aList: result[8]! as List<Object?>,
-      aMap: result[9]! as Map<Object?, Object?>,
-      anEnum: AnEnum.values[result[10]! as int],
+      aByteArray: result[3]! as Uint8List,
+      a4ByteArray: result[4]! as Int32List,
+      a8ByteArray: result[5]! as Int64List,
+      aFloatArray: result[6]! as Float64List,
+      aList: result[7]! as List<Object?>,
+      aMap: result[8]! as Map<Object?, Object?>,
+      anEnum: AnEnum.values[result[9]! as int],
+      aString: result[10]! as String,
     );
   }
 }
@@ -94,7 +94,6 @@
     this.aNullableBool,
     this.aNullableInt,
     this.aNullableDouble,
-    this.aNullableString,
     this.aNullableByteArray,
     this.aNullable4ByteArray,
     this.aNullable8ByteArray,
@@ -105,6 +104,7 @@
     this.nullableMapWithAnnotations,
     this.nullableMapWithObject,
     this.aNullableEnum,
+    this.aNullableString,
   });
 
   bool? aNullableBool;
@@ -113,8 +113,6 @@
 
   double? aNullableDouble;
 
-  String? aNullableString;
-
   Uint8List? aNullableByteArray;
 
   Int32List? aNullable4ByteArray;
@@ -135,12 +133,13 @@
 
   AnEnum? aNullableEnum;
 
+  String? aNullableString;
+
   Object encode() {
     return <Object?>[
       aNullableBool,
       aNullableInt,
       aNullableDouble,
-      aNullableString,
       aNullableByteArray,
       aNullable4ByteArray,
       aNullable8ByteArray,
@@ -151,6 +150,7 @@
       nullableMapWithAnnotations,
       nullableMapWithObject,
       aNullableEnum?.index,
+      aNullableString,
     ];
   }
 
@@ -160,20 +160,20 @@
       aNullableBool: result[0] as bool?,
       aNullableInt: result[1] as int?,
       aNullableDouble: result[2] as double?,
-      aNullableString: result[3] as String?,
-      aNullableByteArray: result[4] as Uint8List?,
-      aNullable4ByteArray: result[5] as Int32List?,
-      aNullable8ByteArray: result[6] as Int64List?,
-      aNullableFloatArray: result[7] as Float64List?,
-      aNullableList: result[8] as List<Object?>?,
-      aNullableMap: result[9] as Map<Object?, Object?>?,
-      nullableNestedList: (result[10] as List<Object?>?)?.cast<List<bool?>?>(),
+      aNullableByteArray: result[3] as Uint8List?,
+      aNullable4ByteArray: result[4] as Int32List?,
+      aNullable8ByteArray: result[5] as Int64List?,
+      aNullableFloatArray: result[6] as Float64List?,
+      aNullableList: result[7] as List<Object?>?,
+      aNullableMap: result[8] as Map<Object?, Object?>?,
+      nullableNestedList: (result[9] as List<Object?>?)?.cast<List<bool?>?>(),
       nullableMapWithAnnotations:
-          (result[11] as Map<Object?, Object?>?)?.cast<String?, String?>(),
+          (result[10] as Map<Object?, Object?>?)?.cast<String?, String?>(),
       nullableMapWithObject:
-          (result[12] as Map<Object?, Object?>?)?.cast<String?, Object?>(),
+          (result[11] as Map<Object?, Object?>?)?.cast<String?, Object?>(),
       aNullableEnum:
-          result[13] != null ? AnEnum.values[result[13]! as int] : null,
+          result[12] != null ? AnEnum.values[result[12]! as int] : null,
+      aNullableString: result[13] as String?,
     );
   }
 }
diff --git a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/multiple_arity.gen.dart b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/multiple_arity.gen.dart
index 76a6a34..0093673 100644
--- a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/multiple_arity.gen.dart
+++ b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/multiple_arity.gen.dart
@@ -2,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 (v6.0.1), do not edit directly.
+// Autogenerated from Pigeon (v6.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
 
diff --git a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/non_null_fields.gen.dart b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/non_null_fields.gen.dart
index f316971..18b4052 100644
--- a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/non_null_fields.gen.dart
+++ b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/non_null_fields.gen.dart
@@ -2,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 (v6.0.1), do not edit directly.
+// Autogenerated from Pigeon (v6.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
 
diff --git a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/null_fields.gen.dart b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/null_fields.gen.dart
index 60f9dc4..daed065 100644
--- a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/null_fields.gen.dart
+++ b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/null_fields.gen.dart
@@ -2,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 (v6.0.1), do not edit directly.
+// Autogenerated from Pigeon (v6.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
 
diff --git a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/null_safe_pigeon.dart b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/null_safe_pigeon.dart
index 5d7f772..65f56b4 100644
--- a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/null_safe_pigeon.dart
+++ b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/null_safe_pigeon.dart
@@ -2,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 (v6.0.1), do not edit directly.
+// Autogenerated from Pigeon (v6.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
 
diff --git a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/nullable_returns.gen.dart b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/nullable_returns.gen.dart
index d29b2eb..e426119 100644
--- a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/nullable_returns.gen.dart
+++ b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/nullable_returns.gen.dart
@@ -2,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 (v6.0.1), do not edit directly.
+// Autogenerated from Pigeon (v6.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
 
diff --git a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/primitive.dart b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/primitive.dart
index 72c9ea2..6802456 100644
--- a/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/primitive.dart
+++ b/packages/pigeon/platform_tests/flutter_null_safe_unit_tests/lib/primitive.dart
@@ -2,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 (v6.0.1), do not edit directly.
+// Autogenerated from Pigeon (v6.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
 
diff --git a/packages/pigeon/platform_tests/shared_test_plugin_code/lib/src/generated/core_tests.gen.dart b/packages/pigeon/platform_tests/shared_test_plugin_code/lib/src/generated/core_tests.gen.dart
index 203f02b..8de1cc3 100644
--- a/packages/pigeon/platform_tests/shared_test_plugin_code/lib/src/generated/core_tests.gen.dart
+++ b/packages/pigeon/platform_tests/shared_test_plugin_code/lib/src/generated/core_tests.gen.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 (v6.0.1), do not edit directly.
+// Autogenerated from Pigeon (v6.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import
 
@@ -23,7 +23,6 @@
     required this.aBool,
     required this.anInt,
     required this.aDouble,
-    required this.aString,
     required this.aByteArray,
     required this.a4ByteArray,
     required this.a8ByteArray,
@@ -31,6 +30,7 @@
     required this.aList,
     required this.aMap,
     required this.anEnum,
+    required this.aString,
   });
 
   bool aBool;
@@ -39,8 +39,6 @@
 
   double aDouble;
 
-  String aString;
-
   Uint8List aByteArray;
 
   Int32List a4ByteArray;
@@ -55,12 +53,13 @@
 
   AnEnum anEnum;
 
+  String aString;
+
   Object encode() {
     return <Object?>[
       aBool,
       anInt,
       aDouble,
-      aString,
       aByteArray,
       a4ByteArray,
       a8ByteArray,
@@ -68,6 +67,7 @@
       aList,
       aMap,
       anEnum.index,
+      aString,
     ];
   }
 
@@ -77,14 +77,14 @@
       aBool: result[0]! as bool,
       anInt: result[1]! as int,
       aDouble: result[2]! as double,
-      aString: result[3]! as String,
-      aByteArray: result[4]! as Uint8List,
-      a4ByteArray: result[5]! as Int32List,
-      a8ByteArray: result[6]! as Int64List,
-      aFloatArray: result[7]! as Float64List,
-      aList: result[8]! as List<Object?>,
-      aMap: result[9]! as Map<Object?, Object?>,
-      anEnum: AnEnum.values[result[10]! as int],
+      aByteArray: result[3]! as Uint8List,
+      a4ByteArray: result[4]! as Int32List,
+      a8ByteArray: result[5]! as Int64List,
+      aFloatArray: result[6]! as Float64List,
+      aList: result[7]! as List<Object?>,
+      aMap: result[8]! as Map<Object?, Object?>,
+      anEnum: AnEnum.values[result[9]! as int],
+      aString: result[10]! as String,
     );
   }
 }
@@ -94,7 +94,6 @@
     this.aNullableBool,
     this.aNullableInt,
     this.aNullableDouble,
-    this.aNullableString,
     this.aNullableByteArray,
     this.aNullable4ByteArray,
     this.aNullable8ByteArray,
@@ -105,6 +104,7 @@
     this.nullableMapWithAnnotations,
     this.nullableMapWithObject,
     this.aNullableEnum,
+    this.aNullableString,
   });
 
   bool? aNullableBool;
@@ -113,8 +113,6 @@
 
   double? aNullableDouble;
 
-  String? aNullableString;
-
   Uint8List? aNullableByteArray;
 
   Int32List? aNullable4ByteArray;
@@ -135,12 +133,13 @@
 
   AnEnum? aNullableEnum;
 
+  String? aNullableString;
+
   Object encode() {
     return <Object?>[
       aNullableBool,
       aNullableInt,
       aNullableDouble,
-      aNullableString,
       aNullableByteArray,
       aNullable4ByteArray,
       aNullable8ByteArray,
@@ -151,6 +150,7 @@
       nullableMapWithAnnotations,
       nullableMapWithObject,
       aNullableEnum?.index,
+      aNullableString,
     ];
   }
 
@@ -160,20 +160,20 @@
       aNullableBool: result[0] as bool?,
       aNullableInt: result[1] as int?,
       aNullableDouble: result[2] as double?,
-      aNullableString: result[3] as String?,
-      aNullableByteArray: result[4] as Uint8List?,
-      aNullable4ByteArray: result[5] as Int32List?,
-      aNullable8ByteArray: result[6] as Int64List?,
-      aNullableFloatArray: result[7] as Float64List?,
-      aNullableList: result[8] as List<Object?>?,
-      aNullableMap: result[9] as Map<Object?, Object?>?,
-      nullableNestedList: (result[10] as List<Object?>?)?.cast<List<bool?>?>(),
+      aNullableByteArray: result[3] as Uint8List?,
+      aNullable4ByteArray: result[4] as Int32List?,
+      aNullable8ByteArray: result[5] as Int64List?,
+      aNullableFloatArray: result[6] as Float64List?,
+      aNullableList: result[7] as List<Object?>?,
+      aNullableMap: result[8] as Map<Object?, Object?>?,
+      nullableNestedList: (result[9] as List<Object?>?)?.cast<List<bool?>?>(),
       nullableMapWithAnnotations:
-          (result[11] as Map<Object?, Object?>?)?.cast<String?, String?>(),
+          (result[10] as Map<Object?, Object?>?)?.cast<String?, String?>(),
       nullableMapWithObject:
-          (result[12] as Map<Object?, Object?>?)?.cast<String?, Object?>(),
+          (result[11] as Map<Object?, Object?>?)?.cast<String?, Object?>(),
       aNullableEnum:
-          result[13] != null ? AnEnum.values[result[13]! as int] : null,
+          result[12] != null ? AnEnum.values[result[12]! as int] : null,
+      aNullableString: result[13] as String?,
     );
   }
 }
diff --git a/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/CoreTests.gen.kt b/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/CoreTests.gen.kt
index c5f0ee0..4fb08d9 100644
--- a/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/CoreTests.gen.kt
+++ b/packages/pigeon/platform_tests/test_plugin/android/src/main/kotlin/com/example/test_plugin/CoreTests.gen.kt
@@ -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 (v6.0.1), do not edit directly.
+// Autogenerated from Pigeon (v6.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 
 package com.example.test_plugin
@@ -44,14 +44,14 @@
   val aBool: Boolean,
   val anInt: Long,
   val aDouble: Double,
-  val aString: String,
   val aByteArray: ByteArray,
   val a4ByteArray: IntArray,
   val a8ByteArray: LongArray,
   val aFloatArray: DoubleArray,
   val aList: List<Any?>,
   val aMap: Map<Any, Any?>,
-  val anEnum: AnEnum
+  val anEnum: AnEnum,
+  val aString: String
 
 ) {
   companion object {
@@ -60,15 +60,15 @@
       val aBool = list[0] as Boolean
       val anInt = list[1] as Long
       val aDouble = list[2] as Double
-      val aString = list[3] as String
-      val aByteArray = list[4] as ByteArray
-      val a4ByteArray = list[5] as IntArray
-      val a8ByteArray = list[6] as LongArray
-      val aFloatArray = list[7] as DoubleArray
-      val aList = list[8] as List<Any?>
-      val aMap = list[9] as Map<Any, Any?>
-      val anEnum = AnEnum.ofRaw(list[10] as Int)!!
-      return AllTypes(aBool, anInt, aDouble, aString, aByteArray, a4ByteArray, a8ByteArray, aFloatArray, aList, aMap, anEnum)
+      val aByteArray = list[3] as ByteArray
+      val a4ByteArray = list[4] as IntArray
+      val a8ByteArray = list[5] as LongArray
+      val aFloatArray = list[6] as DoubleArray
+      val aList = list[7] as List<Any?>
+      val aMap = list[8] as Map<Any, Any?>
+      val anEnum = AnEnum.ofRaw(list[9] as Int)!!
+      val aString = list[10] as String
+      return AllTypes(aBool, anInt, aDouble, aByteArray, a4ByteArray, a8ByteArray, aFloatArray, aList, aMap, anEnum, aString)
     }
   }
   fun toList(): List<Any?> {
@@ -76,7 +76,6 @@
       aBool,
       anInt,
       aDouble,
-      aString,
       aByteArray,
       a4ByteArray,
       a8ByteArray,
@@ -84,6 +83,7 @@
       aList,
       aMap,
       anEnum?.raw,
+      aString,
     )
   }
 }
@@ -93,7 +93,6 @@
   val aNullableBool: Boolean? = null,
   val aNullableInt: Long? = null,
   val aNullableDouble: Double? = null,
-  val aNullableString: String? = null,
   val aNullableByteArray: ByteArray? = null,
   val aNullable4ByteArray: IntArray? = null,
   val aNullable8ByteArray: LongArray? = null,
@@ -103,7 +102,8 @@
   val nullableNestedList: List<List<Boolean?>?>? = null,
   val nullableMapWithAnnotations: Map<String?, String?>? = null,
   val nullableMapWithObject: Map<String?, Any?>? = null,
-  val aNullableEnum: AnEnum? = null
+  val aNullableEnum: AnEnum? = null,
+  val aNullableString: String? = null
 
 ) {
   companion object {
@@ -112,21 +112,20 @@
       val aNullableBool = list[0] as? Boolean
       val aNullableInt = list[1].let { if (it is Int) it.toLong() else it as? Long }
       val aNullableDouble = list[2] as? Double
-      val aNullableString = list[3] as? String
-      val aNullableByteArray = list[4] as? ByteArray
-      val aNullable4ByteArray = list[5] as? IntArray
-      val aNullable8ByteArray = list[6] as? LongArray
-      val aNullableFloatArray = list[7] as? DoubleArray
-      val aNullableList = list[8] as? List<Any?>
-      val aNullableMap = list[9] as? Map<Any, Any?>
-      val nullableNestedList = list[10] as? List<List<Boolean?>?>
-      val nullableMapWithAnnotations = list[11] as? Map<String?, String?>
-      val nullableMapWithObject = list[12] as? Map<String?, Any?>
-      val aNullableEnum: AnEnum? = (list[13] as? Int)?.let {
+      val aNullableByteArray = list[3] as? ByteArray
+      val aNullable4ByteArray = list[4] as? IntArray
+      val aNullable8ByteArray = list[5] as? LongArray
+      val aNullableFloatArray = list[6] as? DoubleArray
+      val aNullableList = list[7] as? List<Any?>
+      val aNullableMap = list[8] as? Map<Any, Any?>
+      val nullableNestedList = list[9] as? List<List<Boolean?>?>
+      val nullableMapWithAnnotations = list[10] as? Map<String?, String?>
+      val nullableMapWithObject = list[11] as? Map<String?, Any?>
+      val aNullableEnum: AnEnum? = (list[12] as? Int)?.let {
         AnEnum.ofRaw(it)
       }
-
-      return AllNullableTypes(aNullableBool, aNullableInt, aNullableDouble, aNullableString, aNullableByteArray, aNullable4ByteArray, aNullable8ByteArray, aNullableFloatArray, aNullableList, aNullableMap, nullableNestedList, nullableMapWithAnnotations, nullableMapWithObject, aNullableEnum)
+      val aNullableString = list[13] as? String
+      return AllNullableTypes(aNullableBool, aNullableInt, aNullableDouble, aNullableByteArray, aNullable4ByteArray, aNullable8ByteArray, aNullableFloatArray, aNullableList, aNullableMap, nullableNestedList, nullableMapWithAnnotations, nullableMapWithObject, aNullableEnum, aNullableString)
     }
   }
   fun toList(): List<Any?> {
@@ -134,7 +133,6 @@
       aNullableBool,
       aNullableInt,
       aNullableDouble,
-      aNullableString,
       aNullableByteArray,
       aNullable4ByteArray,
       aNullable8ByteArray,
@@ -145,6 +143,7 @@
       nullableMapWithAnnotations,
       nullableMapWithObject,
       aNullableEnum?.raw,
+      aNullableString,
     )
   }
 }
@@ -158,7 +157,6 @@
     @Suppress("UNCHECKED_CAST")
     fun fromList(list: List<Any?>): AllNullableTypesWrapper {
       val values = AllNullableTypes.fromList(list[0] as List<Any?>)
-
       return AllNullableTypesWrapper(values)
     }
   }
diff --git a/packages/pigeon/platform_tests/test_plugin/example/ios/RunnerTests/AllDatatypesTests.swift b/packages/pigeon/platform_tests/test_plugin/example/ios/RunnerTests/AllDatatypesTests.swift
index ac439ca..4d35aff 100644
--- a/packages/pigeon/platform_tests/test_plugin/example/ios/RunnerTests/AllDatatypesTests.swift
+++ b/packages/pigeon/platform_tests/test_plugin/example/ios/RunnerTests/AllDatatypesTests.swift
@@ -40,7 +40,6 @@
       aNullableBool: false,
       aNullableInt: 1,
       aNullableDouble: 2.0,
-      aNullableString: "123",
       aNullableByteArray: FlutterStandardTypedData(bytes: "1234".data(using: .utf8)!),
       aNullable4ByteArray: FlutterStandardTypedData(int32: "1234".data(using: .utf8)!),
       aNullable8ByteArray: FlutterStandardTypedData(int64: "12345678".data(using: .utf8)!),
@@ -49,7 +48,8 @@
       aNullableMap: ["hello": 1234],
       nullableNestedList: [[true, false], [true]],
       nullableMapWithAnnotations: ["hello": "world"],
-      nullableMapWithObject: ["hello": 1234, "goodbye" : "world"]
+      nullableMapWithObject: ["hello": 1234, "goodbye" : "world"],
+      aNullableString: "123"
     )
     
     let binaryMessenger = EchoBinaryMessenger(codec: FlutterIntegrationCoreApiCodec.shared)
diff --git a/packages/pigeon/platform_tests/test_plugin/ios/Classes/CoreTests.gen.swift b/packages/pigeon/platform_tests/test_plugin/ios/Classes/CoreTests.gen.swift
index 522a9d7..f2c03de 100644
--- a/packages/pigeon/platform_tests/test_plugin/ios/Classes/CoreTests.gen.swift
+++ b/packages/pigeon/platform_tests/test_plugin/ios/Classes/CoreTests.gen.swift
@@ -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 (v6.0.1), do not edit directly.
+// Autogenerated from Pigeon (v6.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 
 import Foundation
@@ -39,7 +39,6 @@
   var aBool: Bool
   var anInt: Int32
   var aDouble: Double
-  var aString: String
   var aByteArray: FlutterStandardTypedData
   var a4ByteArray: FlutterStandardTypedData
   var a8ByteArray: FlutterStandardTypedData
@@ -47,32 +46,33 @@
   var aList: [Any?]
   var aMap: [AnyHashable: Any?]
   var anEnum: AnEnum
+  var aString: String
 
   static func fromList(_ list: [Any?]) -> AllTypes? {
     let aBool = list[0] as! Bool
     let anInt = list[1] as! Int32
     let aDouble = list[2] as! Double
-    let aString = list[3] as! String
-    let aByteArray = list[4] as! FlutterStandardTypedData
-    let a4ByteArray = list[5] as! FlutterStandardTypedData
-    let a8ByteArray = list[6] as! FlutterStandardTypedData
-    let aFloatArray = list[7] as! FlutterStandardTypedData
-    let aList = list[8] as! [Any?]
-    let aMap = list[9] as! [AnyHashable: Any?]
-    let anEnum = AnEnum(rawValue: list[10] as! Int)!
+    let aByteArray = list[3] as! FlutterStandardTypedData
+    let a4ByteArray = list[4] as! FlutterStandardTypedData
+    let a8ByteArray = list[5] as! FlutterStandardTypedData
+    let aFloatArray = list[6] as! FlutterStandardTypedData
+    let aList = list[7] as! [Any?]
+    let aMap = list[8] as! [AnyHashable: Any?]
+    let anEnum = AnEnum(rawValue: list[9] as! Int)!
+    let aString = list[10] as! String
 
     return AllTypes(
       aBool: aBool,
       anInt: anInt,
       aDouble: aDouble,
-      aString: aString,
       aByteArray: aByteArray,
       a4ByteArray: a4ByteArray,
       a8ByteArray: a8ByteArray,
       aFloatArray: aFloatArray,
       aList: aList,
       aMap: aMap,
-      anEnum: anEnum
+      anEnum: anEnum,
+      aString: aString
     )
   }
   func toList() -> [Any?] {
@@ -80,7 +80,6 @@
       aBool,
       anInt,
       aDouble,
-      aString,
       aByteArray,
       a4ByteArray,
       a8ByteArray,
@@ -88,6 +87,7 @@
       aList,
       aMap,
       anEnum.rawValue,
+      aString,
     ]
   }
 }
@@ -97,7 +97,6 @@
   var aNullableBool: Bool? = nil
   var aNullableInt: Int32? = nil
   var aNullableDouble: Double? = nil
-  var aNullableString: String? = nil
   var aNullableByteArray: FlutterStandardTypedData? = nil
   var aNullable4ByteArray: FlutterStandardTypedData? = nil
   var aNullable8ByteArray: FlutterStandardTypedData? = nil
@@ -108,31 +107,31 @@
   var nullableMapWithAnnotations: [String?: String?]? = nil
   var nullableMapWithObject: [String?: Any?]? = nil
   var aNullableEnum: AnEnum? = nil
+  var aNullableString: String? = nil
 
   static func fromList(_ list: [Any?]) -> AllNullableTypes? {
     let aNullableBool = list[0] as? Bool 
     let aNullableInt = list[1] as? Int32 
     let aNullableDouble = list[2] as? Double 
-    let aNullableString = list[3] as? String 
-    let aNullableByteArray = list[4] as? FlutterStandardTypedData 
-    let aNullable4ByteArray = list[5] as? FlutterStandardTypedData 
-    let aNullable8ByteArray = list[6] as? FlutterStandardTypedData 
-    let aNullableFloatArray = list[7] as? FlutterStandardTypedData 
-    let aNullableList = list[8] as? [Any?] 
-    let aNullableMap = list[9] as? [AnyHashable: Any?] 
-    let nullableNestedList = list[10] as? [[Bool?]?] 
-    let nullableMapWithAnnotations = list[11] as? [String?: String?] 
-    let nullableMapWithObject = list[12] as? [String?: Any?] 
+    let aNullableByteArray = list[3] as? FlutterStandardTypedData 
+    let aNullable4ByteArray = list[4] as? FlutterStandardTypedData 
+    let aNullable8ByteArray = list[5] as? FlutterStandardTypedData 
+    let aNullableFloatArray = list[6] as? FlutterStandardTypedData 
+    let aNullableList = list[7] as? [Any?] 
+    let aNullableMap = list[8] as? [AnyHashable: Any?] 
+    let nullableNestedList = list[9] as? [[Bool?]?] 
+    let nullableMapWithAnnotations = list[10] as? [String?: String?] 
+    let nullableMapWithObject = list[11] as? [String?: Any?] 
     var aNullableEnum: AnEnum? = nil
-    if let aNullableEnumRawValue = list[13] as? Int {
+    if let aNullableEnumRawValue = list[12] as? Int {
       aNullableEnum = AnEnum(rawValue: aNullableEnumRawValue)
     }
+    let aNullableString = list[13] as? String 
 
     return AllNullableTypes(
       aNullableBool: aNullableBool,
       aNullableInt: aNullableInt,
       aNullableDouble: aNullableDouble,
-      aNullableString: aNullableString,
       aNullableByteArray: aNullableByteArray,
       aNullable4ByteArray: aNullable4ByteArray,
       aNullable8ByteArray: aNullable8ByteArray,
@@ -142,7 +141,8 @@
       nullableNestedList: nullableNestedList,
       nullableMapWithAnnotations: nullableMapWithAnnotations,
       nullableMapWithObject: nullableMapWithObject,
-      aNullableEnum: aNullableEnum
+      aNullableEnum: aNullableEnum,
+      aNullableString: aNullableString
     )
   }
   func toList() -> [Any?] {
@@ -150,7 +150,6 @@
       aNullableBool,
       aNullableInt,
       aNullableDouble,
-      aNullableString,
       aNullableByteArray,
       aNullable4ByteArray,
       aNullable8ByteArray,
@@ -161,6 +160,7 @@
       nullableMapWithAnnotations,
       nullableMapWithObject,
       aNullableEnum?.rawValue,
+      aNullableString,
     ]
   }
 }
diff --git a/packages/pigeon/platform_tests/test_plugin/macos/Classes/CoreTests.gen.swift b/packages/pigeon/platform_tests/test_plugin/macos/Classes/CoreTests.gen.swift
index 522a9d7..f2c03de 100644
--- a/packages/pigeon/platform_tests/test_plugin/macos/Classes/CoreTests.gen.swift
+++ b/packages/pigeon/platform_tests/test_plugin/macos/Classes/CoreTests.gen.swift
@@ -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 (v6.0.1), do not edit directly.
+// Autogenerated from Pigeon (v6.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 
 import Foundation
@@ -39,7 +39,6 @@
   var aBool: Bool
   var anInt: Int32
   var aDouble: Double
-  var aString: String
   var aByteArray: FlutterStandardTypedData
   var a4ByteArray: FlutterStandardTypedData
   var a8ByteArray: FlutterStandardTypedData
@@ -47,32 +46,33 @@
   var aList: [Any?]
   var aMap: [AnyHashable: Any?]
   var anEnum: AnEnum
+  var aString: String
 
   static func fromList(_ list: [Any?]) -> AllTypes? {
     let aBool = list[0] as! Bool
     let anInt = list[1] as! Int32
     let aDouble = list[2] as! Double
-    let aString = list[3] as! String
-    let aByteArray = list[4] as! FlutterStandardTypedData
-    let a4ByteArray = list[5] as! FlutterStandardTypedData
-    let a8ByteArray = list[6] as! FlutterStandardTypedData
-    let aFloatArray = list[7] as! FlutterStandardTypedData
-    let aList = list[8] as! [Any?]
-    let aMap = list[9] as! [AnyHashable: Any?]
-    let anEnum = AnEnum(rawValue: list[10] as! Int)!
+    let aByteArray = list[3] as! FlutterStandardTypedData
+    let a4ByteArray = list[4] as! FlutterStandardTypedData
+    let a8ByteArray = list[5] as! FlutterStandardTypedData
+    let aFloatArray = list[6] as! FlutterStandardTypedData
+    let aList = list[7] as! [Any?]
+    let aMap = list[8] as! [AnyHashable: Any?]
+    let anEnum = AnEnum(rawValue: list[9] as! Int)!
+    let aString = list[10] as! String
 
     return AllTypes(
       aBool: aBool,
       anInt: anInt,
       aDouble: aDouble,
-      aString: aString,
       aByteArray: aByteArray,
       a4ByteArray: a4ByteArray,
       a8ByteArray: a8ByteArray,
       aFloatArray: aFloatArray,
       aList: aList,
       aMap: aMap,
-      anEnum: anEnum
+      anEnum: anEnum,
+      aString: aString
     )
   }
   func toList() -> [Any?] {
@@ -80,7 +80,6 @@
       aBool,
       anInt,
       aDouble,
-      aString,
       aByteArray,
       a4ByteArray,
       a8ByteArray,
@@ -88,6 +87,7 @@
       aList,
       aMap,
       anEnum.rawValue,
+      aString,
     ]
   }
 }
@@ -97,7 +97,6 @@
   var aNullableBool: Bool? = nil
   var aNullableInt: Int32? = nil
   var aNullableDouble: Double? = nil
-  var aNullableString: String? = nil
   var aNullableByteArray: FlutterStandardTypedData? = nil
   var aNullable4ByteArray: FlutterStandardTypedData? = nil
   var aNullable8ByteArray: FlutterStandardTypedData? = nil
@@ -108,31 +107,31 @@
   var nullableMapWithAnnotations: [String?: String?]? = nil
   var nullableMapWithObject: [String?: Any?]? = nil
   var aNullableEnum: AnEnum? = nil
+  var aNullableString: String? = nil
 
   static func fromList(_ list: [Any?]) -> AllNullableTypes? {
     let aNullableBool = list[0] as? Bool 
     let aNullableInt = list[1] as? Int32 
     let aNullableDouble = list[2] as? Double 
-    let aNullableString = list[3] as? String 
-    let aNullableByteArray = list[4] as? FlutterStandardTypedData 
-    let aNullable4ByteArray = list[5] as? FlutterStandardTypedData 
-    let aNullable8ByteArray = list[6] as? FlutterStandardTypedData 
-    let aNullableFloatArray = list[7] as? FlutterStandardTypedData 
-    let aNullableList = list[8] as? [Any?] 
-    let aNullableMap = list[9] as? [AnyHashable: Any?] 
-    let nullableNestedList = list[10] as? [[Bool?]?] 
-    let nullableMapWithAnnotations = list[11] as? [String?: String?] 
-    let nullableMapWithObject = list[12] as? [String?: Any?] 
+    let aNullableByteArray = list[3] as? FlutterStandardTypedData 
+    let aNullable4ByteArray = list[4] as? FlutterStandardTypedData 
+    let aNullable8ByteArray = list[5] as? FlutterStandardTypedData 
+    let aNullableFloatArray = list[6] as? FlutterStandardTypedData 
+    let aNullableList = list[7] as? [Any?] 
+    let aNullableMap = list[8] as? [AnyHashable: Any?] 
+    let nullableNestedList = list[9] as? [[Bool?]?] 
+    let nullableMapWithAnnotations = list[10] as? [String?: String?] 
+    let nullableMapWithObject = list[11] as? [String?: Any?] 
     var aNullableEnum: AnEnum? = nil
-    if let aNullableEnumRawValue = list[13] as? Int {
+    if let aNullableEnumRawValue = list[12] as? Int {
       aNullableEnum = AnEnum(rawValue: aNullableEnumRawValue)
     }
+    let aNullableString = list[13] as? String 
 
     return AllNullableTypes(
       aNullableBool: aNullableBool,
       aNullableInt: aNullableInt,
       aNullableDouble: aNullableDouble,
-      aNullableString: aNullableString,
       aNullableByteArray: aNullableByteArray,
       aNullable4ByteArray: aNullable4ByteArray,
       aNullable8ByteArray: aNullable8ByteArray,
@@ -142,7 +141,8 @@
       nullableNestedList: nullableNestedList,
       nullableMapWithAnnotations: nullableMapWithAnnotations,
       nullableMapWithObject: nullableMapWithObject,
-      aNullableEnum: aNullableEnum
+      aNullableEnum: aNullableEnum,
+      aNullableString: aNullableString
     )
   }
   func toList() -> [Any?] {
@@ -150,7 +150,6 @@
       aNullableBool,
       aNullableInt,
       aNullableDouble,
-      aNullableString,
       aNullableByteArray,
       aNullable4ByteArray,
       aNullable8ByteArray,
@@ -161,6 +160,7 @@
       nullableMapWithAnnotations,
       nullableMapWithObject,
       aNullableEnum?.rawValue,
+      aNullableString,
     ]
   }
 }
diff --git a/packages/pigeon/platform_tests/test_plugin/windows/pigeon/core_tests.gen.cpp b/packages/pigeon/platform_tests/test_plugin/windows/pigeon/core_tests.gen.cpp
index d205dbb..39fd2a8 100644
--- a/packages/pigeon/platform_tests/test_plugin/windows/pigeon/core_tests.gen.cpp
+++ b/packages/pigeon/platform_tests/test_plugin/windows/pigeon/core_tests.gen.cpp
@@ -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 (v6.0.1), do not edit directly.
+// Autogenerated from Pigeon (v6.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 
 #undef _HAS_EXCEPTIONS
@@ -31,11 +31,6 @@
 double AllTypes::a_double() const { return a_double_; }
 void AllTypes::set_a_double(double value_arg) { a_double_ = value_arg; }
 
-const std::string& AllTypes::a_string() const { return a_string_; }
-void AllTypes::set_a_string(std::string_view value_arg) {
-  a_string_ = value_arg;
-}
-
 const std::vector<uint8_t>& AllTypes::a_byte_array() const {
   return a_byte_array_;
 }
@@ -77,12 +72,16 @@
 const AnEnum& AllTypes::an_enum() const { return an_enum_; }
 void AllTypes::set_an_enum(const AnEnum& value_arg) { an_enum_ = value_arg; }
 
+const std::string& AllTypes::a_string() const { return a_string_; }
+void AllTypes::set_a_string(std::string_view value_arg) {
+  a_string_ = value_arg;
+}
+
 flutter::EncodableList AllTypes::ToEncodableList() const {
   return flutter::EncodableList{
       flutter::EncodableValue(a_bool_),
       flutter::EncodableValue(an_int_),
       flutter::EncodableValue(a_double_),
-      flutter::EncodableValue(a_string_),
       flutter::EncodableValue(a_byte_array_),
       flutter::EncodableValue(a4_byte_array_),
       flutter::EncodableValue(a8_byte_array_),
@@ -90,6 +89,7 @@
       flutter::EncodableValue(a_list_),
       flutter::EncodableValue(a_map_),
       flutter::EncodableValue((int)an_enum_),
+      flutter::EncodableValue(a_string_),
   };
 }
 
@@ -111,44 +111,44 @@
           std::get_if<double>(&encodable_a_double)) {
     a_double_ = *pointer_a_double;
   }
-  auto& encodable_a_string = list[3];
-  if (const std::string* pointer_a_string =
-          std::get_if<std::string>(&encodable_a_string)) {
-    a_string_ = *pointer_a_string;
-  }
-  auto& encodable_a_byte_array = list[4];
+  auto& encodable_a_byte_array = list[3];
   if (const std::vector<uint8_t>* pointer_a_byte_array =
           std::get_if<std::vector<uint8_t>>(&encodable_a_byte_array)) {
     a_byte_array_ = *pointer_a_byte_array;
   }
-  auto& encodable_a4_byte_array = list[5];
+  auto& encodable_a4_byte_array = list[4];
   if (const std::vector<int32_t>* pointer_a4_byte_array =
           std::get_if<std::vector<int32_t>>(&encodable_a4_byte_array)) {
     a4_byte_array_ = *pointer_a4_byte_array;
   }
-  auto& encodable_a8_byte_array = list[6];
+  auto& encodable_a8_byte_array = list[5];
   if (const std::vector<int64_t>* pointer_a8_byte_array =
           std::get_if<std::vector<int64_t>>(&encodable_a8_byte_array)) {
     a8_byte_array_ = *pointer_a8_byte_array;
   }
-  auto& encodable_a_float_array = list[7];
+  auto& encodable_a_float_array = list[6];
   if (const std::vector<double>* pointer_a_float_array =
           std::get_if<std::vector<double>>(&encodable_a_float_array)) {
     a_float_array_ = *pointer_a_float_array;
   }
-  auto& encodable_a_list = list[8];
+  auto& encodable_a_list = list[7];
   if (const flutter::EncodableList* pointer_a_list =
           std::get_if<flutter::EncodableList>(&encodable_a_list)) {
     a_list_ = *pointer_a_list;
   }
-  auto& encodable_a_map = list[9];
+  auto& encodable_a_map = list[8];
   if (const flutter::EncodableMap* pointer_a_map =
           std::get_if<flutter::EncodableMap>(&encodable_a_map)) {
     a_map_ = *pointer_a_map;
   }
-  auto& encodable_an_enum = list[10];
+  auto& encodable_an_enum = list[9];
   if (const int32_t* pointer_an_enum = std::get_if<int32_t>(&encodable_an_enum))
     an_enum_ = (AnEnum)*pointer_an_enum;
+  auto& encodable_a_string = list[10];
+  if (const std::string* pointer_a_string =
+          std::get_if<std::string>(&encodable_a_string)) {
+    a_string_ = *pointer_a_string;
+  }
 }
 
 // AllNullableTypes
@@ -185,18 +185,6 @@
   a_nullable_double_ = value_arg;
 }
 
-const std::string* AllNullableTypes::a_nullable_string() const {
-  return a_nullable_string_ ? &(*a_nullable_string_) : nullptr;
-}
-void AllNullableTypes::set_a_nullable_string(
-    const std::string_view* value_arg) {
-  a_nullable_string_ =
-      value_arg ? std::optional<std::string>(*value_arg) : std::nullopt;
-}
-void AllNullableTypes::set_a_nullable_string(std::string_view value_arg) {
-  a_nullable_string_ = value_arg;
-}
-
 const std::vector<uint8_t>* AllNullableTypes::a_nullable_byte_array() const {
   return a_nullable_byte_array_ ? &(*a_nullable_byte_array_) : nullptr;
 }
@@ -335,6 +323,18 @@
   a_nullable_enum_ = value_arg;
 }
 
+const std::string* AllNullableTypes::a_nullable_string() const {
+  return a_nullable_string_ ? &(*a_nullable_string_) : nullptr;
+}
+void AllNullableTypes::set_a_nullable_string(
+    const std::string_view* value_arg) {
+  a_nullable_string_ =
+      value_arg ? std::optional<std::string>(*value_arg) : std::nullopt;
+}
+void AllNullableTypes::set_a_nullable_string(std::string_view value_arg) {
+  a_nullable_string_ = value_arg;
+}
+
 flutter::EncodableList AllNullableTypes::ToEncodableList() const {
   return flutter::EncodableList{
       a_nullable_bool_ ? flutter::EncodableValue(*a_nullable_bool_)
@@ -343,8 +343,6 @@
                       : flutter::EncodableValue(),
       a_nullable_double_ ? flutter::EncodableValue(*a_nullable_double_)
                          : flutter::EncodableValue(),
-      a_nullable_string_ ? flutter::EncodableValue(*a_nullable_string_)
-                         : flutter::EncodableValue(),
       a_nullable_byte_array_ ? flutter::EncodableValue(*a_nullable_byte_array_)
                              : flutter::EncodableValue(),
       a_nullable4_byte_array_
@@ -370,6 +368,8 @@
           : flutter::EncodableValue(),
       a_nullable_enum_ ? flutter::EncodableValue((int)(*a_nullable_enum_))
                        : flutter::EncodableValue(),
+      a_nullable_string_ ? flutter::EncodableValue(*a_nullable_string_)
+                         : flutter::EncodableValue(),
   };
 }
 
@@ -393,65 +393,65 @@
           std::get_if<double>(&encodable_a_nullable_double)) {
     a_nullable_double_ = *pointer_a_nullable_double;
   }
-  auto& encodable_a_nullable_string = list[3];
-  if (const std::string* pointer_a_nullable_string =
-          std::get_if<std::string>(&encodable_a_nullable_string)) {
-    a_nullable_string_ = *pointer_a_nullable_string;
-  }
-  auto& encodable_a_nullable_byte_array = list[4];
+  auto& encodable_a_nullable_byte_array = list[3];
   if (const std::vector<uint8_t>* pointer_a_nullable_byte_array =
           std::get_if<std::vector<uint8_t>>(&encodable_a_nullable_byte_array)) {
     a_nullable_byte_array_ = *pointer_a_nullable_byte_array;
   }
-  auto& encodable_a_nullable4_byte_array = list[5];
+  auto& encodable_a_nullable4_byte_array = list[4];
   if (const std::vector<int32_t>* pointer_a_nullable4_byte_array =
           std::get_if<std::vector<int32_t>>(
               &encodable_a_nullable4_byte_array)) {
     a_nullable4_byte_array_ = *pointer_a_nullable4_byte_array;
   }
-  auto& encodable_a_nullable8_byte_array = list[6];
+  auto& encodable_a_nullable8_byte_array = list[5];
   if (const std::vector<int64_t>* pointer_a_nullable8_byte_array =
           std::get_if<std::vector<int64_t>>(
               &encodable_a_nullable8_byte_array)) {
     a_nullable8_byte_array_ = *pointer_a_nullable8_byte_array;
   }
-  auto& encodable_a_nullable_float_array = list[7];
+  auto& encodable_a_nullable_float_array = list[6];
   if (const std::vector<double>* pointer_a_nullable_float_array =
           std::get_if<std::vector<double>>(&encodable_a_nullable_float_array)) {
     a_nullable_float_array_ = *pointer_a_nullable_float_array;
   }
-  auto& encodable_a_nullable_list = list[8];
+  auto& encodable_a_nullable_list = list[7];
   if (const flutter::EncodableList* pointer_a_nullable_list =
           std::get_if<flutter::EncodableList>(&encodable_a_nullable_list)) {
     a_nullable_list_ = *pointer_a_nullable_list;
   }
-  auto& encodable_a_nullable_map = list[9];
+  auto& encodable_a_nullable_map = list[8];
   if (const flutter::EncodableMap* pointer_a_nullable_map =
           std::get_if<flutter::EncodableMap>(&encodable_a_nullable_map)) {
     a_nullable_map_ = *pointer_a_nullable_map;
   }
-  auto& encodable_nullable_nested_list = list[10];
+  auto& encodable_nullable_nested_list = list[9];
   if (const flutter::EncodableList* pointer_nullable_nested_list =
           std::get_if<flutter::EncodableList>(
               &encodable_nullable_nested_list)) {
     nullable_nested_list_ = *pointer_nullable_nested_list;
   }
-  auto& encodable_nullable_map_with_annotations = list[11];
+  auto& encodable_nullable_map_with_annotations = list[10];
   if (const flutter::EncodableMap* pointer_nullable_map_with_annotations =
           std::get_if<flutter::EncodableMap>(
               &encodable_nullable_map_with_annotations)) {
     nullable_map_with_annotations_ = *pointer_nullable_map_with_annotations;
   }
-  auto& encodable_nullable_map_with_object = list[12];
+  auto& encodable_nullable_map_with_object = list[11];
   if (const flutter::EncodableMap* pointer_nullable_map_with_object =
           std::get_if<flutter::EncodableMap>(
               &encodable_nullable_map_with_object)) {
     nullable_map_with_object_ = *pointer_nullable_map_with_object;
   }
-  auto& encodable_a_nullable_enum = list[13];
+  auto& encodable_a_nullable_enum = list[12];
   if (const int32_t* pointer_a_nullable_enum =
           std::get_if<int32_t>(&encodable_a_nullable_enum))
     a_nullable_enum_ = (AnEnum)*pointer_a_nullable_enum;
+  auto& encodable_a_nullable_string = list[13];
+  if (const std::string* pointer_a_nullable_string =
+          std::get_if<std::string>(&encodable_a_nullable_string)) {
+    a_nullable_string_ = *pointer_a_nullable_string;
+  }
 }
 
 // AllNullableTypesWrapper
diff --git a/packages/pigeon/platform_tests/test_plugin/windows/pigeon/core_tests.gen.h b/packages/pigeon/platform_tests/test_plugin/windows/pigeon/core_tests.gen.h
index 545a050..ee057d8 100644
--- a/packages/pigeon/platform_tests/test_plugin/windows/pigeon/core_tests.gen.h
+++ b/packages/pigeon/platform_tests/test_plugin/windows/pigeon/core_tests.gen.h
@@ -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 (v6.0.1), do not edit directly.
+// Autogenerated from Pigeon (v6.0.2), do not edit directly.
 // See also: https://pub.dev/packages/pigeon
 
 #ifndef PIGEON_CORE_TESTS_GEN_H_
@@ -78,9 +78,6 @@
   double a_double() const;
   void set_a_double(double value_arg);
 
-  const std::string& a_string() const;
-  void set_a_string(std::string_view value_arg);
-
   const std::vector<uint8_t>& a_byte_array() const;
   void set_a_byte_array(const std::vector<uint8_t>& value_arg);
 
@@ -102,6 +99,9 @@
   const AnEnum& an_enum() const;
   void set_an_enum(const AnEnum& value_arg);
 
+  const std::string& a_string() const;
+  void set_a_string(std::string_view value_arg);
+
  private:
   AllTypes(const flutter::EncodableList& list);
   flutter::EncodableList ToEncodableList() const;
@@ -115,7 +115,6 @@
   bool a_bool_;
   int64_t an_int_;
   double a_double_;
-  std::string a_string_;
   std::vector<uint8_t> a_byte_array_;
   std::vector<int32_t> a4_byte_array_;
   std::vector<int64_t> a8_byte_array_;
@@ -123,6 +122,7 @@
   flutter::EncodableList a_list_;
   flutter::EncodableMap a_map_;
   AnEnum an_enum_;
+  std::string a_string_;
 };
 
 // Generated class from Pigeon that represents data sent in messages.
@@ -141,10 +141,6 @@
   void set_a_nullable_double(const double* value_arg);
   void set_a_nullable_double(double value_arg);
 
-  const std::string* a_nullable_string() const;
-  void set_a_nullable_string(const std::string_view* value_arg);
-  void set_a_nullable_string(std::string_view value_arg);
-
   const std::vector<uint8_t>* a_nullable_byte_array() const;
   void set_a_nullable_byte_array(const std::vector<uint8_t>* value_arg);
   void set_a_nullable_byte_array(const std::vector<uint8_t>& value_arg);
@@ -187,6 +183,10 @@
   void set_a_nullable_enum(const AnEnum* value_arg);
   void set_a_nullable_enum(const AnEnum& value_arg);
 
+  const std::string* a_nullable_string() const;
+  void set_a_nullable_string(const std::string_view* value_arg);
+  void set_a_nullable_string(std::string_view value_arg);
+
  private:
   AllNullableTypes(const flutter::EncodableList& list);
   flutter::EncodableList ToEncodableList() const;
@@ -201,7 +201,6 @@
   std::optional<bool> a_nullable_bool_;
   std::optional<int64_t> a_nullable_int_;
   std::optional<double> a_nullable_double_;
-  std::optional<std::string> a_nullable_string_;
   std::optional<std::vector<uint8_t>> a_nullable_byte_array_;
   std::optional<std::vector<int32_t>> a_nullable4_byte_array_;
   std::optional<std::vector<int64_t>> a_nullable8_byte_array_;
@@ -212,6 +211,7 @@
   std::optional<flutter::EncodableMap> nullable_map_with_annotations_;
   std::optional<flutter::EncodableMap> nullable_map_with_object_;
   std::optional<AnEnum> a_nullable_enum_;
+  std::optional<std::string> a_nullable_string_;
 };
 
 // Generated class from Pigeon that represents data sent in messages.
diff --git a/packages/pigeon/pubspec.yaml b/packages/pigeon/pubspec.yaml
index 1f08613..eb16a67 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/main/packages/pigeon
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3Apigeon
-version: 6.0.1 # This must match the version in lib/generator_tools.dart
+version: 6.0.2 # This must match the version in lib/generator_tools.dart
 
 environment:
   sdk: ">=2.12.0 <3.0.0"
diff --git a/packages/pigeon/test/kotlin_generator_test.dart b/packages/pigeon/test/kotlin_generator_test.dart
index aa4ec3e..a725a1b 100644
--- a/packages/pigeon/test/kotlin_generator_test.dart
+++ b/packages/pigeon/test/kotlin_generator_test.dart
@@ -59,6 +59,55 @@
     expect(code, contains('TWO(1)'));
   });
 
+  test('gen class with enum', () {
+    final Root root = Root(
+      apis: <Api>[],
+      classes: <Class>[
+        Class(
+          name: 'Bar',
+          fields: <NamedType>[
+            NamedType(
+              name: 'field1',
+              type: const TypeDeclaration(
+                baseName: 'Foo',
+                isNullable: false,
+              ),
+            ),
+            NamedType(
+              name: 'field2',
+              type: const TypeDeclaration(
+                baseName: 'String',
+                isNullable: false,
+              ),
+            ),
+          ],
+        ),
+      ],
+      enums: <Enum>[
+        Enum(
+          name: 'Foo',
+          members: <EnumMember>[
+            EnumMember(name: 'one'),
+            EnumMember(name: 'two'),
+          ],
+        ),
+      ],
+    );
+    final StringBuffer sink = StringBuffer();
+    const KotlinOptions kotlinOptions = KotlinOptions();
+    const KotlinGenerator generator = KotlinGenerator();
+    generator.generate(kotlinOptions, root, sink);
+    final String code = sink.toString();
+    expect(code, contains('enum class Foo(val raw: Int) {'));
+    expect(code, contains('data class Bar ('));
+    expect(code, contains('val field1: Foo,'));
+    expect(code, contains('val field2: String'));
+    expect(code, contains('fun fromList(list: List<Any?>): Bar'));
+    expect(code, contains('val field1 = Foo.ofRaw(list[0] as Int)!!\n'));
+    expect(code, contains('val field2 = list[1] as String\n'));
+    expect(code, contains('fun toList(): List<Any?>'));
+  });
+
   test('primitive enum host', () {
     final Root root = Root(apis: <Api>[
       Api(name: 'Bar', location: ApiLocation.host, methods: <Method>[