| Index: pkg/analysis_server/test/protocol_server_test.dart
|
| diff --git a/pkg/analysis_server/test/protocol_server_test.dart b/pkg/analysis_server/test/protocol_server_test.dart
|
| index 129c8cc3ccbc50135db8ced51d6d9da3eeb055da..fca8b53cffffe19b60f8a36e28882ae261839283 100644
|
| --- a/pkg/analysis_server/test/protocol_server_test.dart
|
| +++ b/pkg/analysis_server/test/protocol_server_test.dart
|
| @@ -267,6 +267,130 @@ class A {
|
| expect(element.flags, 0);
|
| }
|
|
|
| + void test_fromElement_ENUM() {
|
| + engine.Source source = addSource('/test.dart', '''
|
| +@deprecated
|
| +enum _E1 { one, two }
|
| +enum E2 { three, four }''');
|
| + engine.CompilationUnit unit = resolveLibraryUnit(source);
|
| + {
|
| + engine.ClassElement engineElement = findElementInUnit(unit, '_E1');
|
| + // TODO (danrubel) determine why enum is not deprecated
|
| + expect(engineElement.isDeprecated, isFalse);
|
| + // create notification Element
|
| + Element element = newElement_fromEngine(engineElement);
|
| + expect(element.kind, ElementKind.ENUM);
|
| + expect(element.name, '_E1');
|
| + expect(element.typeParameters, isNull);
|
| + {
|
| + Location location = element.location;
|
| + expect(location.file, '/test.dart');
|
| + expect(location.offset, 17);
|
| + expect(location.length, '_E1'.length);
|
| + expect(location.startLine, 2);
|
| + expect(location.startColumn, 6);
|
| + }
|
| + expect(element.parameters, isNull);
|
| + expect(element.flags,
|
| + (engineElement.isDeprecated ? Element.FLAG_DEPRECATED : 0) |
|
| + Element.FLAG_PRIVATE);
|
| + }
|
| + {
|
| + engine.ClassElement engineElement = findElementInUnit(unit, 'E2');
|
| + // create notification Element
|
| + Element element = newElement_fromEngine(engineElement);
|
| + expect(element.kind, ElementKind.ENUM);
|
| + expect(element.name, 'E2');
|
| + expect(element.typeParameters, isNull);
|
| + expect(element.flags, 0);
|
| + }
|
| + }
|
| +
|
| + void test_fromElement_ENUM_CONSTANT() {
|
| + engine.Source source = addSource('/test.dart', '''
|
| +@deprecated
|
| +enum _E1 { one, two }
|
| +enum E2 { three, four }''');
|
| + engine.CompilationUnit unit = resolveLibraryUnit(source);
|
| + {
|
| + engine.FieldElement engineElement = findElementInUnit(unit, 'one');
|
| + // create notification Element
|
| + Element element = newElement_fromEngine(engineElement);
|
| + expect(element.kind, ElementKind.ENUM_CONSTANT);
|
| + expect(element.name, 'one');
|
| + {
|
| + Location location = element.location;
|
| + expect(location.file, '/test.dart');
|
| + expect(location.offset, 23);
|
| + expect(location.length, 'one'.length);
|
| + expect(location.startLine, 2);
|
| + expect(location.startColumn, 12);
|
| + }
|
| + expect(element.parameters, isNull);
|
| + expect(element.returnType, '_E1');
|
| + // TODO(danrubel) determine why enum constant is not marked as deprecated
|
| + engine.ClassElement classElement = engineElement.enclosingElement;
|
| + expect(element.flags,
|
| + (classElement.isDeprecated ? Element.FLAG_DEPRECATED : 0) |
|
| + Element.FLAG_CONST |
|
| + Element.FLAG_STATIC);
|
| + }
|
| + {
|
| + engine.FieldElement engineElement = findElementInUnit(unit, 'three');
|
| + // create notification Element
|
| + Element element = newElement_fromEngine(engineElement);
|
| + expect(element.kind, ElementKind.ENUM_CONSTANT);
|
| + expect(element.name, 'three');
|
| + {
|
| + Location location = element.location;
|
| + expect(location.file, '/test.dart');
|
| + expect(location.offset, 44);
|
| + expect(location.length, 'three'.length);
|
| + expect(location.startLine, 3);
|
| + expect(location.startColumn, 11);
|
| + }
|
| + expect(element.parameters, isNull);
|
| + expect(element.returnType, 'E2');
|
| + expect(element.flags, Element.FLAG_CONST | Element.FLAG_STATIC);
|
| + }
|
| + {
|
| + engine.FieldElement engineElement = findElementInUnit(unit, 'index');
|
| + // create notification Element
|
| + Element element = newElement_fromEngine(engineElement);
|
| + expect(element.kind, ElementKind.FIELD);
|
| + expect(element.name, 'index');
|
| + {
|
| + Location location = element.location;
|
| + expect(location.file, '/test.dart');
|
| + expect(location.offset, -1);
|
| + expect(location.length, 'index'.length);
|
| + expect(location.startLine, 1);
|
| + expect(location.startColumn, 0);
|
| + }
|
| + expect(element.parameters, isNull);
|
| + expect(element.returnType, 'int');
|
| + expect(element.flags, Element.FLAG_FINAL);
|
| + }
|
| + {
|
| + engine.FieldElement engineElement = findElementInUnit(unit, 'values');
|
| + // create notification Element
|
| + Element element = newElement_fromEngine(engineElement);
|
| + expect(element.kind, ElementKind.FIELD);
|
| + expect(element.name, 'values');
|
| + {
|
| + Location location = element.location;
|
| + expect(location.file, '/test.dart');
|
| + expect(location.offset, -1);
|
| + expect(location.length, 'values'.length);
|
| + expect(location.startLine, 1);
|
| + expect(location.startColumn, 0);
|
| + }
|
| + expect(element.parameters, isNull);
|
| + expect(element.returnType, 'List<E2>');
|
| + expect(element.flags, Element.FLAG_CONST | Element.FLAG_STATIC);
|
| + }
|
| + }
|
| +
|
| void test_fromElement_FIELD() {
|
| engine.Source source = addSource('/test.dart', '''
|
| class A {
|
|
|