| Index: mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_service.mojom.dart
 | 
| diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_service.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_service.mojom.dart
 | 
| index dbb6807e464ba18d1916cb4040a52006a5c29589..a96738611ca1e7f63d1928f2aa4f97c456cb74a7 100644
 | 
| --- a/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_service.mojom.dart
 | 
| +++ b/mojo/dart/packages/_mojo_for_test_only/lib/sample/sample_service.mojom.dart
 | 
| @@ -8,6 +8,8 @@ import 'dart:async';
 | 
|  
 | 
|  import 'package:mojo/bindings.dart' as bindings;
 | 
|  import 'package:mojo/core.dart' as core;
 | 
| +import 'package:mojo/mojo/mojom_types.mojom.dart' as mojom_types;
 | 
| +import 'package:mojo/mojo/service_describer.mojom.dart' as service_describer;
 | 
|  import 'package:_mojo_for_test_only/imported/sample_import.mojom.dart' as sample_import_mojom;
 | 
|  import 'package:_mojo_for_test_only/imported/sample_import2.mojom.dart' as sample_import2_mojom;
 | 
|  const kTwelve = 12;
 | 
| @@ -71,12 +73,32 @@ class BarType extends bindings.MojoEnum {
 | 
|          return 'BarType.BOTH';
 | 
|        case INVALID:
 | 
|          return 'BarType.INVALID';
 | 
| +      default:
 | 
| +        return null;
 | 
|      }
 | 
|    }
 | 
|  
 | 
|    int toJson() => value;
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomEnum _sample_service_Type__() {
 | 
| +  return new mojom_types.MojomEnum()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = "BarType")
 | 
| +    ..values = <mojom_types.EnumValue>[new mojom_types.EnumValue()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = "VERTICAL")
 | 
| +        ..enumTypeKey = '_sample_service_Type__'
 | 
| +        ..intValue = 1,new mojom_types.EnumValue()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = "HORIZONTAL")
 | 
| +        ..enumTypeKey = '_sample_service_Type__'
 | 
| +        ..intValue = 2,new mojom_types.EnumValue()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = "BOTH")
 | 
| +        ..enumTypeKey = '_sample_service_Type__'
 | 
| +        ..intValue = 3,new mojom_types.EnumValue()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = "INVALID")
 | 
| +        ..enumTypeKey = '_sample_service_Type__'
 | 
| +        ..intValue = 4,];
 | 
| +}
 | 
| +
 | 
|  class Bar extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
|      const bindings.StructDataHeader(16, 0)
 | 
| @@ -174,6 +196,33 @@ class Bar extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _sample_service_Bar__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'Bar')
 | 
| +    ..fields = <mojom_types.StructField>[
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Alpha')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.UINT8),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Beta')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.UINT8),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Gamma')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.UINT8),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Type')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +    ..typeReference = (new mojom_types.TypeReference()
 | 
| +  
 | 
| +    ..identifier = '_sample_service_Type__'
 | 
| +    ..typeKey = '_sample_service_Type__'
 | 
| +  )),
 | 
| +      ];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class Foo extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -441,6 +490,119 @@ class Foo extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _sample_service_Foo__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'Foo')
 | 
| +    ..fields = <mojom_types.StructField>[
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Name')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +..stringType = (new mojom_types.StringType()..nullable = false)),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'X')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.INT32),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Y')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.INT32),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.BOOL),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'B')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.BOOL),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'C')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.BOOL),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Bar')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +    ..typeReference = (new mojom_types.TypeReference()
 | 
| +    ..nullable = true
 | 
| +  
 | 
| +  
 | 
| +    ..identifier = '_sample_service_Bar__'
 | 
| +    ..typeKey = '_sample_service_Bar__'
 | 
| +  )),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'ExtraBars')
 | 
| +        ..type = (new mojom_types.Type()..arrayType = (new mojom_types.ArrayType()
 | 
| +    ..nullable = true
 | 
| +    
 | 
| +    ..elementType = (new mojom_types.Type()
 | 
| +    ..typeReference = (new mojom_types.TypeReference()
 | 
| +  
 | 
| +    ..identifier = '_sample_service_Bar__'
 | 
| +    ..typeKey = '_sample_service_Bar__'
 | 
| +  )))),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Data')
 | 
| +        ..type = (new mojom_types.Type()..arrayType = (new mojom_types.ArrayType()
 | 
| +    ..nullable = true
 | 
| +    
 | 
| +    ..elementType = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.UINT8))),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Source')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +..handleType = (new mojom_types.HandleType()
 | 
| +..kind = mojom_types.HandleTypeKind.MESSAGE_PIPE
 | 
| +..nullable = true)),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'InputStreams')
 | 
| +        ..type = (new mojom_types.Type()..arrayType = (new mojom_types.ArrayType()
 | 
| +    ..nullable = true
 | 
| +    
 | 
| +    ..elementType = (new mojom_types.Type()
 | 
| +..handleType = (new mojom_types.HandleType()
 | 
| +..kind = mojom_types.HandleTypeKind.DATA_PIPE_CONSUMER
 | 
| +..nullable = false)))),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'OutputStreams')
 | 
| +        ..type = (new mojom_types.Type()..arrayType = (new mojom_types.ArrayType()
 | 
| +    ..nullable = true
 | 
| +    
 | 
| +    ..elementType = (new mojom_types.Type()
 | 
| +..handleType = (new mojom_types.HandleType()
 | 
| +..kind = mojom_types.HandleTypeKind.DATA_PIPE_PRODUCER
 | 
| +..nullable = false)))),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'ArrayOfArrayOfBools')
 | 
| +        ..type = (new mojom_types.Type()..arrayType = (new mojom_types.ArrayType()
 | 
| +    ..nullable = true
 | 
| +    
 | 
| +    ..elementType = (new mojom_types.Type()..arrayType = (new mojom_types.ArrayType()
 | 
| +    ..elementType = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.BOOL))))),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'MultiArrayOfStrings')
 | 
| +        ..type = (new mojom_types.Type()..arrayType = (new mojom_types.ArrayType()
 | 
| +    ..nullable = true
 | 
| +    
 | 
| +    ..elementType = (new mojom_types.Type()..arrayType = (new mojom_types.ArrayType()
 | 
| +    ..elementType = (new mojom_types.Type()..arrayType = (new mojom_types.ArrayType()
 | 
| +    ..elementType = (new mojom_types.Type()
 | 
| +..stringType = (new mojom_types.StringType()..nullable = false)))))))),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'ArrayOfBools')
 | 
| +        ..type = (new mojom_types.Type()..arrayType = (new mojom_types.ArrayType()
 | 
| +    ..nullable = true
 | 
| +    
 | 
| +    ..elementType = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.BOOL))),
 | 
| +      ];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class DefaultsTest extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -793,6 +955,157 @@ class DefaultsTest extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _sample_service_DefaultsTest__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'DefaultsTest')
 | 
| +    ..fields = <mojom_types.StructField>[
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A0')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.INT8),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A1')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.UINT8),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A2')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.INT16),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A3')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.UINT16),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A4')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.INT32),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A5')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.UINT32),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A6')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.INT64),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A7')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.UINT64),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A8')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.INT32),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A9')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.INT32),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A10')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.INT32),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A11')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.BOOL),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A12')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.BOOL),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A13')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.FLOAT),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A14')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.DOUBLE),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A15')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.DOUBLE),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A16')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.DOUBLE),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A17')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.DOUBLE),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A18')
 | 
| +        ..type = (new mojom_types.Type()..arrayType = (new mojom_types.ArrayType()
 | 
| +    ..elementType = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.UINT8))),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A19')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +..stringType = (new mojom_types.StringType()..nullable = false)),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A20')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +    ..typeReference = (new mojom_types.TypeReference()
 | 
| +  
 | 
| +    ..identifier = '_sample_service_Type__'
 | 
| +    ..typeKey = '_sample_service_Type__'
 | 
| +  )),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A21')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +    ..typeReference = (new mojom_types.TypeReference()
 | 
| +  
 | 
| +    ..identifier = '_sample_import_Point__'
 | 
| +    ..typeKey = '_sample_import_Point__'
 | 
| +  )),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A22')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +    ..typeReference = (new mojom_types.TypeReference()
 | 
| +  
 | 
| +    ..identifier = '_sample_import2_Thing__'
 | 
| +    ..typeKey = '_sample_import2_Thing__'
 | 
| +  )),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A23')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.UINT64),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A24')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.INT64),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A25')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.INT64),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A26')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.DOUBLE),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A27')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.DOUBLE),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A28')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.DOUBLE),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A29')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.FLOAT),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A30')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.FLOAT),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'A31')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.FLOAT),
 | 
| +      ];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class StructWithHoleV1 extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -869,6 +1182,20 @@ class StructWithHoleV1 extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _sample_service_StructWithHoleV1__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'StructWithHoleV1')
 | 
| +    ..fields = <mojom_types.StructField>[
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'V1')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.INT32),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'V2')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.INT64),
 | 
| +      ];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class StructWithHoleV2 extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -954,6 +1281,24 @@ class StructWithHoleV2 extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _sample_service_StructWithHoleV2__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'StructWithHoleV2')
 | 
| +    ..fields = <mojom_types.StructField>[
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'V1')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.INT32),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'V2')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.INT64),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'V3')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.INT32),
 | 
| +      ];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class NonNullableMapStruct extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -1075,6 +1420,20 @@ class NonNullableMapStruct extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _sample_service_NonNullableMapStruct__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'NonNullableMapStruct')
 | 
| +    ..fields = <mojom_types.StructField>[
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'MapField')
 | 
| +        ..type = (new mojom_types.Type()..mapType = (new mojom_types.MapType()
 | 
| +    ..keyType = (new mojom_types.Type()
 | 
| +..stringType = (new mojom_types.StringType()..nullable = false))
 | 
| +    ..valueType = (new mojom_types.Type()
 | 
| +..stringType = (new mojom_types.StringType()..nullable = false)))),
 | 
| +      ];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class ServiceFrobinateParams extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -1162,6 +1521,43 @@ class ServiceFrobinateParams extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _sample_service_Service_Frobinate_Params__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'ServiceFrobinateParams')
 | 
| +    ..fields = <mojom_types.StructField>[
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Foo')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +    ..typeReference = (new mojom_types.TypeReference()
 | 
| +    ..nullable = true
 | 
| +  
 | 
| +  
 | 
| +    ..identifier = '_sample_service_Foo__'
 | 
| +    ..typeKey = '_sample_service_Foo__'
 | 
| +  )),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Baz')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +    ..typeReference = (new mojom_types.TypeReference()
 | 
| +  
 | 
| +    ..identifier = '_sample_service_BazOptions__'
 | 
| +    ..typeKey = '_sample_service_BazOptions__'
 | 
| +  )),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Port')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +    ..typeReference = (new mojom_types.TypeReference()
 | 
| +    ..nullable = true
 | 
| +  
 | 
| +  
 | 
| +    ..identifier = '_sample_service_Port__'
 | 
| +    ..typeKey = '_sample_service_Port__'
 | 
| +  )),
 | 
| +      ];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class ServiceFrobinateResponseParams extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -1229,6 +1625,16 @@ class ServiceFrobinateResponseParams extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _sample_service_Service_Frobinate_ResponseParams__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'ServiceFrobinateResponseParams')
 | 
| +    ..fields = <mojom_types.StructField>[
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Result')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.INT32),
 | 
| +      ];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class ServiceGetPortParams extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -1295,6 +1701,22 @@ class ServiceGetPortParams extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _sample_service_Service_GetPort_Params__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'ServiceGetPortParams')
 | 
| +    ..fields = <mojom_types.StructField>[
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Port')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +    ..typeReference = (new mojom_types.TypeReference()
 | 
| +  
 | 
| +    ..isInterfaceRequest = true
 | 
| +    ..identifier = '_sample_service_Port__'
 | 
| +    ..typeKey = '_sample_service_Port__'
 | 
| +  )),
 | 
| +      ];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class PortPostMessageParams extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -1369,6 +1791,27 @@ class PortPostMessageParams extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _sample_service_Port_PostMessage_Params__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'PortPostMessageParams')
 | 
| +    ..fields = <mojom_types.StructField>[
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'MessageText')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +..stringType = (new mojom_types.StringType()..nullable = false)),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Port')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +    ..typeReference = (new mojom_types.TypeReference()
 | 
| +  
 | 
| +    ..identifier = '_sample_service_Port__'
 | 
| +    ..typeKey = '_sample_service_Port__'
 | 
| +  )),
 | 
| +      ];
 | 
| +}
 | 
| +
 | 
| +
 | 
|  const int kService_frobinate_name = 0;
 | 
|  const int kService_getPort_name = 1;
 | 
|  
 | 
| @@ -1418,12 +1861,54 @@ const String ServiceName =
 | 
|          return 'ServiceBazOptions.REGULAR';
 | 
|        case EXTRA:
 | 
|          return 'ServiceBazOptions.EXTRA';
 | 
| +      default:
 | 
| +        return null;
 | 
|      }
 | 
|    }
 | 
|  
 | 
|    int toJson() => value;
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomEnum _sample_service_BazOptions__() {
 | 
| +  return new mojom_types.MojomEnum()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = "ServiceBazOptions")
 | 
| +    ..values = <mojom_types.EnumValue>[new mojom_types.EnumValue()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = "REGULAR")
 | 
| +        ..enumTypeKey = '_sample_service_BazOptions__'
 | 
| +        ..intValue = 0,new mojom_types.EnumValue()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = "EXTRA")
 | 
| +        ..enumTypeKey = '_sample_service_BazOptions__'
 | 
| +        ..intValue = 1,];
 | 
| +}
 | 
| +
 | 
| +mojom_types.MojomInterface _sample_service_Service__() {
 | 
| +  return new mojom_types.MojomInterface()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = "Service")
 | 
| +    ..interfaceName = "Service"
 | 
| +    ..methods = <int, mojom_types.MojomMethod>{
 | 
| +kService_frobinate_name: new mojom_types.MojomMethod()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = "Frobinate")
 | 
| +        ..ordinal = kService_frobinate_name
 | 
| +        ..responseParams = _sample_service_Service_Frobinate_ResponseParams__()..parameters = _sample_service_Service_Frobinate_Params__(),kService_getPort_name: new mojom_types.MojomMethod()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = "GetPort")
 | 
| +        ..ordinal = kService_getPort_name..parameters = _sample_service_Service_GetPort_Params__(),
 | 
| +    };
 | 
| +}
 | 
| +
 | 
| +class _ServiceServiceDescription extends service_describer.ServiceDescription {
 | 
| +  // Avoid infinite loop by overriding serviceDescription field.
 | 
| +  final service_describer.ServiceDescription serviceDescription = null;
 | 
| +dynamic getTopLevelInterface([Function responseFactory = null]) {
 | 
| +    return _sample_service_Service__();
 | 
| +  }
 | 
| +  dynamic getTypeDefinition(String typeKey,[Function responseFactory = null]) {
 | 
| +    return getAllMojomTypeDefinitions()[typeKey];
 | 
| +  }
 | 
| +  dynamic getAllTypeDefinitions([Function responseFactory = null]) {
 | 
| +    return getAllMojomTypeDefinitions();
 | 
| +  }
 | 
| +}
 | 
| +
 | 
|  abstract class Service {
 | 
|    dynamic frobinate(Foo foo,ServiceBazOptions baz,Object port,[Function responseFactory = null]);
 | 
|    void getPort(Object port);
 | 
| @@ -1449,6 +1934,9 @@ class ServiceProxyImpl extends bindings.Proxy {
 | 
|  
 | 
|    String get name => ServiceName;
 | 
|  
 | 
| +  service_describer.ServiceDescription get serviceDescription =>
 | 
| +    new _ServiceServiceDescription();
 | 
| +
 | 
|    void handleResponse(bindings.ServiceMessage message) {
 | 
|      switch (message.header.type) {
 | 
|        case kService_frobinate_name:
 | 
| @@ -1652,6 +2140,9 @@ class ServiceStub extends bindings.Stub {
 | 
|    }
 | 
|  
 | 
|    int get version => 0;
 | 
| +
 | 
| +  service_describer.ServiceDescription get serviceDescription =>
 | 
| +    new _ServiceServiceDescription();
 | 
|  }
 | 
|  
 | 
|  const int kPort_postMessage_name = 0;
 | 
| @@ -1659,6 +2150,31 @@ const int kPort_postMessage_name = 0;
 | 
|  const String PortName =
 | 
|        'sample::Port';
 | 
|  
 | 
| +mojom_types.MojomInterface _sample_service_Port__() {
 | 
| +  return new mojom_types.MojomInterface()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = "Port")
 | 
| +    ..interfaceName = "Port"
 | 
| +    ..methods = <int, mojom_types.MojomMethod>{
 | 
| +kPort_postMessage_name: new mojom_types.MojomMethod()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = "PostMessage")
 | 
| +        ..ordinal = kPort_postMessage_name..parameters = _sample_service_Port_PostMessage_Params__(),
 | 
| +    };
 | 
| +}
 | 
| +
 | 
| +class _PortServiceDescription extends service_describer.ServiceDescription {
 | 
| +  // Avoid infinite loop by overriding serviceDescription field.
 | 
| +  final service_describer.ServiceDescription serviceDescription = null;
 | 
| +dynamic getTopLevelInterface([Function responseFactory = null]) {
 | 
| +    return _sample_service_Port__();
 | 
| +  }
 | 
| +  dynamic getTypeDefinition(String typeKey,[Function responseFactory = null]) {
 | 
| +    return getAllMojomTypeDefinitions()[typeKey];
 | 
| +  }
 | 
| +  dynamic getAllTypeDefinitions([Function responseFactory = null]) {
 | 
| +    return getAllMojomTypeDefinitions();
 | 
| +  }
 | 
| +}
 | 
| +
 | 
|  abstract class Port {
 | 
|    void postMessage(String messageText, Object port);
 | 
|  
 | 
| @@ -1682,6 +2198,9 @@ class PortProxyImpl extends bindings.Proxy {
 | 
|  
 | 
|    String get name => PortName;
 | 
|  
 | 
| +  service_describer.ServiceDescription get serviceDescription =>
 | 
| +    new _PortServiceDescription();
 | 
| +
 | 
|    void handleResponse(bindings.ServiceMessage message) {
 | 
|      switch (message.header.type) {
 | 
|        default:
 | 
| @@ -1828,6 +2347,240 @@ class PortStub extends bindings.Stub {
 | 
|    }
 | 
|  
 | 
|    int get version => 0;
 | 
| +
 | 
| +  service_describer.ServiceDescription get serviceDescription =>
 | 
| +    new _PortServiceDescription();
 | 
| +}
 | 
| +
 | 
| +
 | 
| +
 | 
| +
 | 
| +
 | 
| +
 | 
| +
 | 
| +
 | 
| +var _MojomDesc__ = _initDescriptions();
 | 
| +
 | 
| +Map<String, mojom_types.UserDefinedType> _initDescriptions() {
 | 
| +  var map = new Map<String, mojom_types.UserDefinedType>();
 | 
| +  
 | 
| +  map["_sample_service_Bar__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _sample_service_Bar__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  map["_sample_service_Type__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..enumType = _sample_service_Type__();
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_sample_service_Foo__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _sample_service_Foo__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_sample_service_DefaultsTest__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _sample_service_DefaultsTest__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_sample_service_StructWithHoleV1__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _sample_service_StructWithHoleV1__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_sample_service_StructWithHoleV2__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _sample_service_StructWithHoleV2__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_sample_service_NonNullableMapStruct__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _sample_service_NonNullableMapStruct__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_sample_service_Service_Frobinate_Params__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _sample_service_Service_Frobinate_Params__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  map["_sample_service_BazOptions__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..enumType = _sample_service_BazOptions__();
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  map["_sample_service_Port__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..interfaceType = _sample_service_Port__();
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_sample_service_Service_Frobinate_ResponseParams__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _sample_service_Service_Frobinate_ResponseParams__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_sample_service_Service_GetPort_Params__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _sample_service_Service_GetPort_Params__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_sample_service_Port_PostMessage_Params__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _sample_service_Port_PostMessage_Params__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_sample_service_Service__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..interfaceType = _sample_service_Service__();
 | 
| +    
 | 
| +
 | 
| +  
 | 
| +sample_import_mojom.getAllMojomTypeDefinitions().forEach((String s, mojom_types.UserDefinedType udt) {
 | 
| +  map[s] = udt;
 | 
| +});
 | 
| +sample_import2_mojom.getAllMojomTypeDefinitions().forEach((String s, mojom_types.UserDefinedType udt) {
 | 
| +  map[s] = udt;
 | 
| +});
 | 
| +  return map;
 | 
| +}
 | 
| +
 | 
| +Map<String, mojom_types.UserDefinedType> getAllMojomTypeDefinitions() {
 | 
| +  return _MojomDesc__;
 | 
|  }
 | 
|  
 | 
|  
 | 
| 
 |