Chromium Code Reviews| Index: pkg/analyzer/lib/src/task/dart.dart |
| diff --git a/pkg/analyzer/lib/src/task/dart.dart b/pkg/analyzer/lib/src/task/dart.dart |
| index 738bc4c485dc07b2197e421e24b4916d6c06f9a5..e6ae8edbaecf12d4f65a68adb6e5d3470af9d3ba 100644 |
| --- a/pkg/analyzer/lib/src/task/dart.dart |
| +++ b/pkg/analyzer/lib/src/task/dart.dart |
| @@ -1229,10 +1229,24 @@ class BuildEnumMemberElementsTask extends SourceBasedAnalysisTask { |
| TypeProvider typeProvider = getRequiredInput(TYPE_PROVIDER_INPUT); |
| CompilationUnit unit = getRequiredInput(UNIT_INPUT); |
| // |
| + // Build the enum members if they have not already been created. |
| + // |
| + EnumDeclaration findFirstEnum() { |
| + for (CompilationUnitMember member in unit.declarations) { |
| + if (member is EnumDeclaration) { |
| + return member; |
| + } |
| + } |
| + return null; |
| + } |
| + EnumDeclaration firstEnum = findFirstEnum(); |
|
scheglov
2016/01/26 21:51:04
This could be done with less code.
EnumDeclara
Brian Wilkerson
2016/01/26 21:59:42
I discovered firstWhere, but didn't notice the orE
|
| + if (firstEnum != null && firstEnum.element.accessors.isEmpty) { |
| + EnumMemberBuilder builder = new EnumMemberBuilder(typeProvider); |
| + unit.accept(builder); |
| + } |
| + // |
| // Record outputs. |
| // |
| - EnumMemberBuilder builder = new EnumMemberBuilder(typeProvider); |
| - unit.accept(builder); |
| outputs[CREATED_RESOLVED_UNIT2] = true; |
| outputs[RESOLVED_UNIT2] = unit; |
| } |