| Index: pkg/analyzer/tool/summary/generate.dart
|
| diff --git a/pkg/analyzer/tool/summary/generate.dart b/pkg/analyzer/tool/summary/generate.dart
|
| index 6bb00683572dbbf2ae5fd36505e3f47244448530..38bdfc7bb3ebc1f7d216e3d93c5597986f626572 100644
|
| --- a/pkg/analyzer/tool/summary/generate.dart
|
| +++ b/pkg/analyzer/tool/summary/generate.dart
|
| @@ -273,9 +273,7 @@ class _CodeGenerator {
|
| out();
|
| });
|
| for (var cls in _idl.classes.values) {
|
| - List<String> builderParams = _generateBuilder(cls);
|
| - out();
|
| - _generateEncodeFunction(cls, builderParams);
|
| + _generateBuilder(cls);
|
| out();
|
| _generateInterface(cls);
|
| out();
|
| @@ -295,11 +293,11 @@ class _CodeGenerator {
|
| return JSON.encode(s);
|
| }
|
|
|
| - List<String> _generateBuilder(idlModel.ClassDeclaration cls) {
|
| + void _generateBuilder(idlModel.ClassDeclaration cls) {
|
| String name = cls.name;
|
| String builderName = name + 'Builder';
|
| String mixinName = '_${name}Mixin';
|
| - List<String> builderParams = <String>[];
|
| + List<String> constructorParams = <String>[];
|
| out('class $builderName extends Object with $mixinName '
|
| 'implements $name {');
|
| indent(() {
|
| @@ -312,9 +310,6 @@ class _CodeGenerator {
|
| String typeStr = encodedType(type);
|
| out('$typeStr _$fieldName;');
|
| }
|
| - // Generate constructor.
|
| - out();
|
| - out('$builderName();');
|
| // Generate getters and setters.
|
| for (idlModel.FieldDeclaration field in cls.fields) {
|
| String fieldName = field.name;
|
| @@ -326,7 +321,7 @@ class _CodeGenerator {
|
| out('${dartType(field.type)} get $fieldName => _$fieldName$defSuffix;');
|
| out();
|
| outDoc(field.documentation);
|
| - builderParams.add('$typeStr $fieldName');
|
| + constructorParams.add('$typeStr $fieldName');
|
| out('void set $fieldName($typeStr _value) {');
|
| indent(() {
|
| String stateFieldName = '_' + fieldName;
|
| @@ -335,6 +330,15 @@ class _CodeGenerator {
|
| });
|
| out('}');
|
| }
|
| + // Generate constructor.
|
| + out();
|
| + out('$builderName({${constructorParams.join(', ')}})');
|
| + for (int i = 0; i < cls.fields.length; i++) {
|
| + idlModel.FieldDeclaration field = cls.fields[i];
|
| + String prefix = i == 0 ? ' : ' : ' ';
|
| + String suffix = i == cls.fields.length - 1 ? ';' : ',';
|
| + out('${prefix}_${field.name} = ${field.name}$suffix');
|
| + }
|
| // Generate finish.
|
| if (cls.isTopLevel) {
|
| out();
|
| @@ -434,23 +438,6 @@ class _CodeGenerator {
|
| out('}');
|
| });
|
| out('}');
|
| - return builderParams;
|
| - }
|
| -
|
| - void _generateEncodeFunction(
|
| - idlModel.ClassDeclaration cls, List<String> builderParams) {
|
| - String className = cls.name;
|
| - String builderName = className + 'Builder';
|
| - out('$builderName encode$className({${builderParams.join(', ')}}) {');
|
| - indent(() {
|
| - out('$builderName builder = new $builderName();');
|
| - for (idlModel.FieldDeclaration field in cls.fields) {
|
| - String fieldName = field.name;
|
| - out('builder.$fieldName = $fieldName;');
|
| - }
|
| - out('return builder;');
|
| - });
|
| - out('}');
|
| }
|
|
|
| void _generateImpl(idlModel.ClassDeclaration cls) {
|
|
|