Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(637)

Unified Diff: pkg/analyzer/test/src/task/dart_test.dart

Issue 1009693002: Task: Build Enum Member Elements. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« pkg/analyzer/lib/src/task/dart.dart ('K') | « pkg/analyzer/lib/src/task/dart.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/test/src/task/dart_test.dart
diff --git a/pkg/analyzer/test/src/task/dart_test.dart b/pkg/analyzer/test/src/task/dart_test.dart
index 3eeed4d2a30b31369ba7dae20ad4bb0f2c4fead1..7bc11f51763aa25410ba61a396f5f6636e32a83e 100644
--- a/pkg/analyzer/test/src/task/dart_test.dart
+++ b/pkg/analyzer/test/src/task/dart_test.dart
@@ -35,6 +35,7 @@ main() {
groupSep = ' | ';
runReflectiveTests(BuildCompilationUnitElementTaskTest);
runReflectiveTests(BuildDirectiveElementsTaskTest);
+ runReflectiveTests(BuildEnumMemberElementsTaskTest);
runReflectiveTests(BuildLibraryElementTaskTest);
runReflectiveTests(BuildPublicNamespaceTaskTest);
runReflectiveTests(BuildTypeProviderTaskTest);
@@ -372,6 +373,69 @@ library libC;
}
@reflectiveTest
+class BuildEnumMemberElementsTaskTest extends _AbstractDartTaskTest {
+ test_perform() {
+ Source source = _newSource('/test.dart', '''
+enum MyEnum {
+ A, B
+}
+''');
+ _computeResult(source, RESOLVED_UNIT4);
+ expect(task, new isInstanceOf<BuildEnumMemberElementsTask>());
+ CompilationUnit unit = outputs[RESOLVED_UNIT4];
+ // validate Element
+ ClassElement enumElement = unit.element.getEnum('MyEnum');
+ print(enumElement.fields);
+ List<FieldElement> fields = enumElement.fields;
+ expect(fields, hasLength(4));
+ {
+ FieldElementImpl index = fields[0];
+ expect(index, isNotNull);
+ expect(index.name, 'index');
+ expect(index.isStatic, isFalse);
+ expect(index.evaluationResult, isNull);
+ _assertGetter(index);
+ }
+ {
+ ConstFieldElementImpl values = fields[1];
+ expect(values, isNotNull);
+ expect(values.name, 'values');
+ expect(values.isStatic, isTrue);
+ expect(values.evaluationResult, isNotNull);
+ _assertGetter(values);
+ }
+ {
+ ConstFieldElementImpl constant = fields[2];
+ expect(constant, isNotNull);
+ expect(constant.name, 'A');
+ expect(constant.isStatic, isTrue);
+ expect(constant.evaluationResult, isNotNull);
+ _assertGetter(constant);
+ }
+ {
+ ConstFieldElementImpl constant = fields[3];
+ expect(constant, isNotNull);
+ expect(constant.name, 'B');
+ expect(constant.isStatic, isTrue);
+ expect(constant.evaluationResult, isNotNull);
+ _assertGetter(constant);
+ }
+ // validate nodes
+ EnumDeclaration enumNode = unit.declarations[0];
+ expect(enumNode.name.staticElement, same(enumElement));
+ expect(enumNode.constants[0].element, same(enumElement.getField('A')));
+ expect(enumNode.constants[1].element, same(enumElement.getField('B')));
+ }
+
+ static void _assertGetter(FieldElement field) {
+ PropertyAccessorElement getter = field.getter;
+ expect(getter, isNotNull);
+ expect(getter.variable, same(field));
+ expect(getter.type, isNotNull);
+ }
+}
+
+@reflectiveTest
class BuildLibraryElementTaskTest extends _AbstractDartTaskTest {
Source librarySource;
CompilationUnit libraryUnit;
@@ -870,8 +934,9 @@ class _AbstractDartTaskTest extends EngineTestCase {
taskManager.addTaskDescriptor(BuildCompilationUnitElementTask.DESCRIPTOR);
taskManager.addTaskDescriptor(BuildLibraryElementTask.DESCRIPTOR);
taskManager.addTaskDescriptor(BuildPublicNamespaceTask.DESCRIPTOR);
- taskManager.addTaskDescriptor(BuildTypeProviderTask.DESCRIPTOR);
taskManager.addTaskDescriptor(BuildDirectiveElementsTask.DESCRIPTOR);
+ taskManager.addTaskDescriptor(BuildTypeProviderTask.DESCRIPTOR);
+ taskManager.addTaskDescriptor(BuildEnumMemberElementsTask.DESCRIPTOR);
// prepare AnalysisDriver
analysisDriver = new AnalysisDriver(taskManager, context);
}
« pkg/analyzer/lib/src/task/dart.dart ('K') | « pkg/analyzer/lib/src/task/dart.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698