@@ -20,6 +20,7 @@ class BuiltValueGenerator extends Generator {
2020 return null ;
2121 }
2222 final classElement = element as ClassElement ;
23+ final className = classElement.displayName;
2324
2425 // TODO(davidmorgan): more exact type check.
2526 if (! classElement.allSupertypes
@@ -39,7 +40,7 @@ class BuiltValueGenerator extends Generator {
3940 final errors = concat ([
4041 checkPart (classElement),
4142 checkValueClass (classElement),
42- checkBuilderClass (builderClassElement),
43+ checkBuilderClass (className, builderClassElement),
4344 checkFields (fields, builderFields),
4445 ]);
4546
@@ -49,7 +50,7 @@ class BuiltValueGenerator extends Generator {
4950 todo: errors.join (' ' ));
5051 }
5152
52- return generateCode (classElement.displayName , fields, builderFields);
53+ return generateCode (className , fields, builderFields);
5354 }
5455
5556 Iterable <String > checkPart (ClassElement classElement) {
@@ -91,9 +92,10 @@ class BuiltValueGenerator extends Generator {
9192 return result;
9293 }
9394
94- Iterable <String > checkBuilderClass (ClassElement classElement) {
95+ Iterable <String > checkBuilderClass (
96+ String className, ClassElement classElement) {
9597 if (classElement == null ) {
96- return < String > ['Add abstract class ValueBuilder ' ];
98+ return < String > ['Add abstract class ${ className }Builder ' ];
9799 }
98100
99101 final result = < String > [];
@@ -128,7 +130,8 @@ class BuiltValueGenerator extends Generator {
128130 List <FieldElement > getFields (ClassElement classElement) {
129131 final result = < FieldElement > [];
130132 for (final field in classElement.fields) {
131- if (! field.isStatic) result.add (field);
133+ if (! field.isStatic && field.getter.isAbstract ||
134+ field.getter.isSynthetic) result.add (field);
132135 }
133136 return result;
134137 }
@@ -148,13 +151,15 @@ class BuiltValueGenerator extends Generator {
148151 Iterable <FieldElement > fields, Iterable <FieldElement > builderFields) {
149152 final result = < String > [];
150153 var checkFieldTypes = true ;
154+
151155 for (final field in fields) {
152156 final fieldName = field.displayName;
153- if (field.getter == null || ! field.getter.isAbstract ) {
157+ if (field.getter == null || field.getter.isSynthetic ) {
154158 checkFieldTypes = false ;
155- result.add ('Make field $fieldName an abstract getter' );
159+ result.add ('Make field $fieldName a getter' );
156160 }
157161 }
162+
158163 for (final field in builderFields) {
159164 final fieldName = field.displayName;
160165 if (field.getter == null ||
0 commit comments