| Index: pkg/analyzer/test/generated/all_the_rest_test.dart
|
| diff --git a/pkg/analyzer/test/generated/all_the_rest_test.dart b/pkg/analyzer/test/generated/all_the_rest_test.dart
|
| index ee26679c3af5041643ac598ab30ae6140fb2bd8b..8d31c37c09bfa637f743f91248f0cfa77035a3d6 100644
|
| --- a/pkg/analyzer/test/generated/all_the_rest_test.dart
|
| +++ b/pkg/analyzer/test/generated/all_the_rest_test.dart
|
| @@ -8,6 +8,7 @@ import 'package:analyzer/dart/ast/ast.dart';
|
| import 'package:analyzer/dart/element/element.dart';
|
| import 'package:analyzer/dart/element/type.dart';
|
| import 'package:analyzer/file_system/physical_file_system.dart';
|
| +import 'package:analyzer/src/dart/ast/ast.dart';
|
| import 'package:analyzer/src/dart/ast/utilities.dart' hide ConstantEvaluator;
|
| import 'package:analyzer/src/dart/element/builder.dart';
|
| import 'package:analyzer/src/dart/element/element.dart';
|
| @@ -266,6 +267,50 @@ class DirectoryBasedSourceContainerTest {
|
|
|
| @reflectiveTest
|
| class ElementBuilderTest extends ParserTestCase {
|
| + CompilationUnitElement compilationUnitElement;
|
| + CompilationUnit compilationUnit;
|
| +
|
| + /**
|
| + * Parse the given [code], pass it through [ElementBuilder], and return the
|
| + * resulting [ElementHolder].
|
| + */
|
| + ElementHolder buildElementsForText(String code) {
|
| + compilationUnit = ParserTestCase.parseCompilationUnit(code);
|
| + ElementHolder holder = new ElementHolder();
|
| + ElementBuilder builder = new ElementBuilder(holder, compilationUnitElement);
|
| + compilationUnit.accept(builder);
|
| + return holder;
|
| + }
|
| +
|
| + /**
|
| + * Verify that the given [metadata] has exactly one annotation, and that its
|
| + * [ElementAnnotationImpl] is unresolved.
|
| + */
|
| + void checkAnnotation(NodeList<Annotation> metadata) {
|
| + expect(metadata, hasLength(1));
|
| + expect(metadata[0], new isInstanceOf<AnnotationImpl>());
|
| + AnnotationImpl annotation = metadata[0];
|
| + expect(annotation.elementAnnotation,
|
| + new isInstanceOf<ElementAnnotationImpl>());
|
| + ElementAnnotationImpl elementAnnotation = annotation.elementAnnotation;
|
| + expect(elementAnnotation.element, isNull); // Not yet resolved
|
| + expect(elementAnnotation.compilationUnit, isNotNull);
|
| + expect(elementAnnotation.compilationUnit, compilationUnitElement);
|
| + }
|
| +
|
| + /**
|
| + * Verify that the given [element] has exactly one annotation, and that its
|
| + * [ElementAnnotationImpl] is unresolved.
|
| + */
|
| + void checkMetadata(Element element) {
|
| + expect(element.metadata, hasLength(1));
|
| + expect(element.metadata[0], new isInstanceOf<ElementAnnotationImpl>());
|
| + ElementAnnotationImpl elementAnnotation = element.metadata[0];
|
| + expect(elementAnnotation.element, isNull); // Not yet resolved
|
| + expect(elementAnnotation.compilationUnit, isNotNull);
|
| + expect(elementAnnotation.compilationUnit, compilationUnitElement);
|
| + }
|
| +
|
| void fail_visitMethodDeclaration_setter_duplicate() {
|
| // https://github.com/dart-lang/sdk/issues/25601
|
| String code = r'''
|
| @@ -274,20 +319,190 @@ class C {
|
| set zzz(y) {}
|
| }
|
| ''';
|
| - CompilationUnit unit = ParserTestCase.parseCompilationUnit(code);
|
| - ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| - unit.accept(builder);
|
| - ClassElement classElement = holder.types[0];
|
| + ClassElement classElement = buildElementsForText(code).types[0];
|
| for (PropertyAccessorElement accessor in classElement.accessors) {
|
| expect(accessor.variable.setter, same(accessor));
|
| }
|
| }
|
|
|
| + @override
|
| + void setUp() {
|
| + super.setUp();
|
| + compilationUnitElement = new CompilationUnitElementImpl('test.dart');
|
| + }
|
| +
|
| + void test_metadata_fieldDeclaration() {
|
| + List<FieldElement> fields =
|
| + buildElementsForText('class C { @a int x, y; }').types[0].fields;
|
| + checkMetadata(fields[0]);
|
| + checkMetadata(fields[1]);
|
| + expect(fields[0].metadata, same(fields[1].metadata));
|
| + }
|
| +
|
| + void test_metadata_localVariableDeclaration() {
|
| + List<LocalVariableElement> localVariables =
|
| + buildElementsForText('f() { @a int x, y; }')
|
| + .functions[0]
|
| + .localVariables;
|
| + checkMetadata(localVariables[0]);
|
| + checkMetadata(localVariables[1]);
|
| + expect(localVariables[0].metadata, same(localVariables[1].metadata));
|
| + }
|
| +
|
| + void test_metadata_topLevelVariableDeclaration() {
|
| + List<TopLevelVariableElement> topLevelVariables =
|
| + buildElementsForText('@a int x, y;').topLevelVariables;
|
| + checkMetadata(topLevelVariables[0]);
|
| + checkMetadata(topLevelVariables[1]);
|
| + expect(topLevelVariables[0].metadata, same(topLevelVariables[1].metadata));
|
| + }
|
| +
|
| + void test_metadata_visitClassDeclaration() {
|
| + ClassElement classElement = buildElementsForText('@a class C {}').types[0];
|
| + checkMetadata(classElement);
|
| + }
|
| +
|
| + void test_metadata_visitClassTypeAlias() {
|
| + ClassElement classElement =
|
| + buildElementsForText('@a class C = D with E;').types[0];
|
| + checkMetadata(classElement);
|
| + }
|
| +
|
| + void test_metadata_visitConstructorDeclaration() {
|
| + ConstructorElement constructorElement =
|
| + buildElementsForText('class C { @a C(); }').types[0].constructors[0];
|
| + checkMetadata(constructorElement);
|
| + }
|
| +
|
| + void test_metadata_visitDeclaredIdentifier() {
|
| + LocalVariableElement localVariableElement =
|
| + buildElementsForText('f() { for (@a var x in y) {} }')
|
| + .functions[0]
|
| + .localVariables[0];
|
| + checkMetadata(localVariableElement);
|
| + }
|
| +
|
| + void test_metadata_visitEnumDeclaration() {
|
| + ClassElement classElement =
|
| + buildElementsForText('@a enum E { v }').enums[0];
|
| + checkMetadata(classElement);
|
| + }
|
| +
|
| + void test_metadata_visitExportDirective() {
|
| + buildElementsForText('@a export "foo.dart";');
|
| + expect(compilationUnit.directives[0], new isInstanceOf<ExportDirective>());
|
| + ExportDirective exportDirective = compilationUnit.directives[0];
|
| + checkAnnotation(exportDirective.metadata);
|
| + }
|
| +
|
| + void test_metadata_visitFieldFormalParameter() {
|
| + ParameterElement parameterElement =
|
| + buildElementsForText('class C { var x; C(@a this.x); }')
|
| + .types[0]
|
| + .constructors[0]
|
| + .parameters[0];
|
| + checkMetadata(parameterElement);
|
| + }
|
| +
|
| + void test_metadata_visitFunctionDeclaration_function() {
|
| + FunctionElement functionElement =
|
| + buildElementsForText('@a f() {}').functions[0];
|
| + checkMetadata(functionElement);
|
| + }
|
| +
|
| + void test_metadata_visitFunctionDeclaration_getter() {
|
| + PropertyAccessorElement propertyAccessorElement =
|
| + buildElementsForText('@a get f => null;').accessors[0];
|
| + checkMetadata(propertyAccessorElement);
|
| + }
|
| +
|
| + void test_metadata_visitFunctionDeclaration_setter() {
|
| + PropertyAccessorElement propertyAccessorElement =
|
| + buildElementsForText('@a set f(value) {}').accessors[0];
|
| + checkMetadata(propertyAccessorElement);
|
| + }
|
| +
|
| + void test_metadata_visitFunctionTypeAlias() {
|
| + FunctionTypeAliasElement functionTypeAliasElement =
|
| + buildElementsForText('@a typedef F();').typeAliases[0];
|
| + checkMetadata(functionTypeAliasElement);
|
| + }
|
| +
|
| + void test_metadata_visitFunctionTypedFormalParameter() {
|
| + ParameterElement parameterElement =
|
| + buildElementsForText('f(@a g()) {}').functions[0].parameters[0];
|
| + checkMetadata(parameterElement);
|
| + }
|
| +
|
| + void test_metadata_visitImportDirective() {
|
| + buildElementsForText('@a import "foo.dart";');
|
| + expect(compilationUnit.directives[0], new isInstanceOf<ImportDirective>());
|
| + ImportDirective importDirective = compilationUnit.directives[0];
|
| + checkAnnotation(importDirective.metadata);
|
| + }
|
| +
|
| + void test_metadata_visitLibraryDirective() {
|
| + buildElementsForText('@a library L;');
|
| + expect(compilationUnit.directives[0], new isInstanceOf<LibraryDirective>());
|
| + LibraryDirective libraryDirective = compilationUnit.directives[0];
|
| + checkAnnotation(libraryDirective.metadata);
|
| + }
|
| +
|
| + void test_metadata_visitMethodDeclaration_getter() {
|
| + PropertyAccessorElement propertyAccessorElement =
|
| + buildElementsForText('class C { @a get m => null; }')
|
| + .types[0]
|
| + .accessors[0];
|
| + checkMetadata(propertyAccessorElement);
|
| + }
|
| +
|
| + void test_metadata_visitMethodDeclaration_method() {
|
| + MethodElement methodElement =
|
| + buildElementsForText('class C { @a m() {} }').types[0].methods[0];
|
| + checkMetadata(methodElement);
|
| + }
|
| +
|
| + void test_metadata_visitMethodDeclaration_setter() {
|
| + PropertyAccessorElement propertyAccessorElement =
|
| + buildElementsForText('class C { @a set f(value) {} }')
|
| + .types[0]
|
| + .accessors[0];
|
| + checkMetadata(propertyAccessorElement);
|
| + }
|
| +
|
| + void test_metadata_visitPartDirective() {
|
| + buildElementsForText('@a part "foo.dart";');
|
| + expect(compilationUnit.directives[0], new isInstanceOf<PartDirective>());
|
| + PartDirective partDirective = compilationUnit.directives[0];
|
| + checkAnnotation(partDirective.metadata);
|
| + }
|
| +
|
| + void test_metadata_visitPartOfDirective() {
|
| + // We don't build ElementAnnotation objects for `part of` directives, since
|
| + // analyzer ignores them in favor of annotations on the library directive.
|
| + buildElementsForText('@a part of L;');
|
| + expect(compilationUnit.directives[0], new isInstanceOf<PartOfDirective>());
|
| + PartOfDirective partOfDirective = compilationUnit.directives[0];
|
| + expect(partOfDirective.metadata, hasLength(1));
|
| + expect(partOfDirective.metadata[0].elementAnnotation, isNull);
|
| + }
|
| +
|
| + void test_metadata_visitSimpleFormalParameter() {
|
| + ParameterElement parameterElement =
|
| + buildElementsForText('f(@a x) {}').functions[0].parameters[0];
|
| + checkMetadata(parameterElement);
|
| + }
|
| +
|
| + void test_metadata_visitTypeParameter() {
|
| + TypeParameterElement typeParameterElement =
|
| + buildElementsForText('class C<@a T> {}').types[0].typeParameters[0];
|
| + checkMetadata(typeParameterElement);
|
| + }
|
| +
|
| void test_visitCatchClause() {
|
| // } catch (e, s) {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String exceptionParameterName = "e";
|
| String stackParameterName = "s";
|
| CatchClause clause =
|
| @@ -316,7 +531,7 @@ class C {
|
| void test_visitCatchClause_withType() {
|
| // } on E catch (e) {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String exceptionParameterName = "e";
|
| CatchClause clause = AstFactory.catchClause4(
|
| AstFactory.typeName4('E'), exceptionParameterName);
|
| @@ -332,7 +547,7 @@ class C {
|
|
|
| void test_visitClassDeclaration_abstract() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String className = "C";
|
| ClassDeclaration classDeclaration = AstFactory.classDeclaration(
|
| Keyword.ABSTRACT, className, null, null, null, null);
|
| @@ -351,7 +566,7 @@ class C {
|
|
|
| void test_visitClassDeclaration_minimal() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String className = "C";
|
| ClassDeclaration classDeclaration =
|
| AstFactory.classDeclaration(null, className, null, null, null, null);
|
| @@ -373,7 +588,7 @@ class C {
|
|
|
| void test_visitClassDeclaration_parameterized() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String className = "C";
|
| String firstVariableName = "E";
|
| String secondVariableName = "F";
|
| @@ -401,7 +616,7 @@ class C {
|
|
|
| void test_visitClassDeclaration_withMembers() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String className = "C";
|
| String typeParameterName = "E";
|
| String fieldName = "f";
|
| @@ -455,7 +670,7 @@ class C {
|
| // class M {}
|
| // class C = B with M
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| ClassElementImpl classB = ElementFactory.classElement2('B', []);
|
| ConstructorElementImpl constructorB =
|
| ElementFactory.constructorElement2(classB, '', []);
|
| @@ -485,7 +700,7 @@ class C {
|
| // class M {}
|
| // abstract class C = B with M
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| ClassElementImpl classB = ElementFactory.classElement2('B', []);
|
| ConstructorElementImpl constructorB =
|
| ElementFactory.constructorElement2(classB, '', []);
|
| @@ -509,7 +724,7 @@ class C {
|
| // class M {}
|
| // class C<T> = B with M
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| ClassElementImpl classB = ElementFactory.classElement2('B', []);
|
| ConstructorElementImpl constructorB =
|
| ElementFactory.constructorElement2(classB, '', []);
|
| @@ -535,7 +750,7 @@ class C {
|
|
|
| void test_visitConstructorDeclaration_external() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String className = "A";
|
| ConstructorDeclaration constructorDeclaration =
|
| AstFactory.constructorDeclaration2(
|
| @@ -564,7 +779,7 @@ class C {
|
|
|
| void test_visitConstructorDeclaration_factory() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String className = "A";
|
| ConstructorDeclaration constructorDeclaration =
|
| AstFactory.constructorDeclaration2(
|
| @@ -591,7 +806,7 @@ class C {
|
|
|
| void test_visitConstructorDeclaration_minimal() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String className = "A";
|
| ConstructorDeclaration constructorDeclaration =
|
| AstFactory.constructorDeclaration2(
|
| @@ -623,7 +838,7 @@ class C {
|
|
|
| void test_visitConstructorDeclaration_named() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String className = "A";
|
| String constructorName = "c";
|
| ConstructorDeclaration constructorDeclaration =
|
| @@ -653,7 +868,7 @@ class C {
|
|
|
| void test_visitConstructorDeclaration_unnamed() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String className = "A";
|
| ConstructorDeclaration constructorDeclaration =
|
| AstFactory.constructorDeclaration2(
|
| @@ -682,7 +897,7 @@ class C {
|
| void test_visitDeclaredIdentifier_noType() {
|
| // var i
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| var variableName = 'i';
|
| DeclaredIdentifier identifier =
|
| AstFactory.declaredIdentifier3(variableName);
|
| @@ -708,7 +923,7 @@ class C {
|
| void test_visitDeclaredIdentifier_type() {
|
| // E i
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| var variableName = 'i';
|
| DeclaredIdentifier identifier =
|
| AstFactory.declaredIdentifier4(AstFactory.typeName4('E'), variableName);
|
| @@ -734,7 +949,7 @@ class C {
|
| void test_visitDefaultFormalParameter_noType() {
|
| // p = 0
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String parameterName = 'p';
|
| DefaultFormalParameter formalParameter =
|
| AstFactory.positionalFormalParameter(
|
| @@ -760,7 +975,7 @@ class C {
|
| void test_visitDefaultFormalParameter_type() {
|
| // E p = 0
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String parameterName = 'p';
|
| DefaultFormalParameter formalParameter = AstFactory.namedFormalParameter(
|
| AstFactory.simpleFormalParameter4(
|
| @@ -785,7 +1000,7 @@ class C {
|
|
|
| void test_visitEnumDeclaration() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String enumName = "E";
|
| EnumDeclaration enumDeclaration =
|
| AstFactory.enumDeclaration2(enumName, ["ONE"]);
|
| @@ -802,7 +1017,7 @@ class C {
|
|
|
| void test_visitFieldDeclaration() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String firstFieldName = "x";
|
| String secondFieldName = "y";
|
| FieldDeclaration fieldDeclaration =
|
| @@ -838,7 +1053,7 @@ class C {
|
|
|
| void test_visitFieldFormalParameter() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String parameterName = "p";
|
| FieldFormalParameter formalParameter =
|
| AstFactory.fieldFormalParameter(null, null, parameterName);
|
| @@ -858,7 +1073,7 @@ class C {
|
|
|
| void test_visitFieldFormalParameter_functionTyped() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String parameterName = "p";
|
| FieldFormalParameter formalParameter = AstFactory.fieldFormalParameter(
|
| null,
|
| @@ -882,7 +1097,7 @@ class C {
|
|
|
| void test_visitFormalParameterList() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String firstParameterName = "a";
|
| String secondParameterName = "b";
|
| FormalParameterList parameterList = AstFactory.formalParameterList([
|
| @@ -899,7 +1114,7 @@ class C {
|
| void test_visitFunctionDeclaration_external() {
|
| // external f();
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String functionName = "f";
|
| FunctionDeclaration declaration = AstFactory.functionDeclaration(
|
| null,
|
| @@ -927,7 +1142,7 @@ class C {
|
| void test_visitFunctionDeclaration_getter() {
|
| // get f() {}
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String functionName = "f";
|
| FunctionDeclaration declaration = AstFactory.functionDeclaration(
|
| null,
|
| @@ -962,7 +1177,7 @@ class C {
|
| void test_visitFunctionDeclaration_plain() {
|
| // T f() {}
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String functionName = "f";
|
| FunctionDeclaration declaration = AstFactory.functionDeclaration(
|
| AstFactory.typeName4('T'),
|
| @@ -991,7 +1206,7 @@ class C {
|
| void test_visitFunctionDeclaration_setter() {
|
| // set f() {}
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String functionName = "f";
|
| FunctionDeclaration declaration = AstFactory.functionDeclaration(
|
| null,
|
| @@ -1026,7 +1241,7 @@ class C {
|
| void test_visitFunctionDeclaration_typeParameters() {
|
| // f<E>() {}
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String functionName = 'f';
|
| String typeParameterName = 'E';
|
| FunctionExpression expression = AstFactory.functionExpression3(
|
| @@ -1056,7 +1271,7 @@ class C {
|
|
|
| void test_visitFunctionExpression() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| FunctionExpression expression = AstFactory.functionExpression2(
|
| AstFactory.formalParameterList(), AstFactory.blockFunctionBody2());
|
| expression.accept(builder);
|
| @@ -1072,7 +1287,7 @@ class C {
|
|
|
| void test_visitFunctionTypeAlias() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String aliasName = "F";
|
| String parameterName = "E";
|
| FunctionTypeAlias aliasNode = AstFactory.typeAlias(
|
| @@ -1097,7 +1312,7 @@ class C {
|
|
|
| void test_visitFunctionTypedFormalParameter() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String parameterName = "p";
|
| FunctionTypedFormalParameter formalParameter =
|
| AstFactory.functionTypedFormalParameter(null, parameterName);
|
| @@ -1120,7 +1335,7 @@ class C {
|
|
|
| void test_visitFunctionTypedFormalParameter_withTypeParameters() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String parameterName = "p";
|
| FunctionTypedFormalParameter formalParameter =
|
| AstFactory.functionTypedFormalParameter(null, parameterName);
|
| @@ -1145,7 +1360,7 @@ class C {
|
|
|
| void test_visitLabeledStatement() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String labelName = "l";
|
| LabeledStatement statement = AstFactory.labeledStatement(
|
| [AstFactory.label2(labelName)], AstFactory.breakStatement());
|
| @@ -1161,7 +1376,7 @@ class C {
|
| void test_visitMethodDeclaration_abstract() {
|
| // m();
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String methodName = "m";
|
| MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2(
|
| null,
|
| @@ -1193,7 +1408,7 @@ class C {
|
| void test_visitMethodDeclaration_external() {
|
| // external m();
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String methodName = "m";
|
| MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2(
|
| null,
|
| @@ -1227,7 +1442,7 @@ class C {
|
| void test_visitMethodDeclaration_getter() {
|
| // get m() {}
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String methodName = "m";
|
| MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2(
|
| null,
|
| @@ -1267,7 +1482,7 @@ class C {
|
| void test_visitMethodDeclaration_getter_abstract() {
|
| // get m();
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String methodName = "m";
|
| MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2(
|
| null,
|
| @@ -1304,7 +1519,7 @@ class C {
|
| void test_visitMethodDeclaration_getter_external() {
|
| // external get m();
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String methodName = "m";
|
| MethodDeclaration methodDeclaration = AstFactory.methodDeclaration(
|
| null,
|
| @@ -1342,7 +1557,7 @@ class C {
|
| void test_visitMethodDeclaration_minimal() {
|
| // T m() {}
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String methodName = "m";
|
| MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2(
|
| null,
|
| @@ -1377,7 +1592,7 @@ class C {
|
| void test_visitMethodDeclaration_operator() {
|
| // operator +(addend) {}
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String methodName = "+";
|
| MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2(
|
| null,
|
| @@ -1410,7 +1625,7 @@ class C {
|
| void test_visitMethodDeclaration_setter() {
|
| // set m() {}
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String methodName = "m";
|
| MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2(
|
| null,
|
| @@ -1452,7 +1667,7 @@ class C {
|
| void test_visitMethodDeclaration_setter_abstract() {
|
| // set m();
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String methodName = "m";
|
| MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2(
|
| null,
|
| @@ -1490,7 +1705,7 @@ class C {
|
| void test_visitMethodDeclaration_setter_external() {
|
| // external m();
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String methodName = "m";
|
| MethodDeclaration methodDeclaration = AstFactory.methodDeclaration(
|
| null,
|
| @@ -1529,7 +1744,7 @@ class C {
|
| void test_visitMethodDeclaration_static() {
|
| // static m() {}
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String methodName = "m";
|
| MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2(
|
| Keyword.STATIC,
|
| @@ -1560,7 +1775,7 @@ class C {
|
| void test_visitMethodDeclaration_typeParameters() {
|
| // m<E>() {}
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String methodName = "m";
|
| MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2(
|
| null,
|
| @@ -1593,7 +1808,7 @@ class C {
|
| void test_visitMethodDeclaration_withMembers() {
|
| // m(p) { var v; try { l: return; } catch (e) {} }
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String methodName = "m";
|
| String parameterName = "p";
|
| String localVariableName = "v";
|
| @@ -1656,7 +1871,7 @@ class C {
|
|
|
| void test_visitNamedFormalParameter() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String parameterName = "p";
|
| DefaultFormalParameter formalParameter = AstFactory.namedFormalParameter(
|
| AstFactory.simpleFormalParameter3(parameterName),
|
| @@ -1686,7 +1901,7 @@ class C {
|
| void test_visitSimpleFormalParameter_noType() {
|
| // p
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String parameterName = "p";
|
| SimpleFormalParameter formalParameter =
|
| AstFactory.simpleFormalParameter3(parameterName);
|
| @@ -1713,7 +1928,7 @@ class C {
|
| void test_visitSimpleFormalParameter_type() {
|
| // T p
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String parameterName = "p";
|
| SimpleFormalParameter formalParameter = AstFactory.simpleFormalParameter4(
|
| AstFactory.typeName4('T'), parameterName);
|
| @@ -1739,7 +1954,7 @@ class C {
|
|
|
| void test_visitTypeAlias_minimal() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String aliasName = "F";
|
| TypeAlias typeAlias = AstFactory.typeAlias(null, aliasName, null, null);
|
| typeAlias.accept(builder);
|
| @@ -1754,7 +1969,7 @@ class C {
|
|
|
| void test_visitTypeAlias_withFormalParameters() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String aliasName = "F";
|
| String firstParameterName = "x";
|
| String secondParameterName = "y";
|
| @@ -1785,7 +2000,7 @@ class C {
|
|
|
| void test_visitTypeAlias_withTypeParameters() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String aliasName = "F";
|
| String firstTypeParameterName = "A";
|
| String secondTypeParameterName = "B";
|
| @@ -1814,7 +2029,7 @@ class C {
|
|
|
| void test_visitTypeParameter() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String parameterName = "E";
|
| TypeParameter typeParameter = AstFactory.typeParameter(parameterName);
|
| typeParameter.accept(builder);
|
| @@ -1829,7 +2044,7 @@ class C {
|
|
|
| void test_visitVariableDeclaration_inConstructor() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| //
|
| // C() {var v;}
|
| //
|
| @@ -1860,7 +2075,7 @@ class C {
|
|
|
| void test_visitVariableDeclaration_inMethod() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| //
|
| // m() {T v;}
|
| //
|
| @@ -1890,7 +2105,7 @@ class C {
|
|
|
| void test_visitVariableDeclaration_localNestedInFunction() {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| //
|
| // var f = () {var v;};
|
| //
|
| @@ -1931,7 +2146,7 @@ class C {
|
| void test_visitVariableDeclaration_noInitializer() {
|
| // var v;
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String variableName = "v";
|
| VariableDeclaration variableDeclaration =
|
| AstFactory.variableDeclaration2(variableName, null);
|
| @@ -1955,7 +2170,7 @@ class C {
|
| void test_visitVariableDeclaration_top_const_hasInitializer() {
|
| // const v = 42;
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String variableName = "v";
|
| VariableDeclaration variableDeclaration =
|
| AstFactory.variableDeclaration2(variableName, AstFactory.integer(42));
|
| @@ -1979,7 +2194,7 @@ class C {
|
| void test_visitVariableDeclaration_top_docRange() {
|
| // final a, b;
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| VariableDeclaration variableDeclaration1 =
|
| AstFactory.variableDeclaration('a');
|
| VariableDeclaration variableDeclaration2 =
|
| @@ -2007,7 +2222,7 @@ class C {
|
| void test_visitVariableDeclaration_top_final() {
|
| // final v;
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder builder = new ElementBuilder(holder);
|
| + ElementBuilder builder = _makeBuilder(holder);
|
| String variableName = "v";
|
| VariableDeclaration variableDeclaration =
|
| AstFactory.variableDeclaration2(variableName, null);
|
| @@ -2036,6 +2251,9 @@ class C {
|
| expect(docRange.length, expectedLength);
|
| }
|
|
|
| + ElementBuilder _makeBuilder(ElementHolder holder) =>
|
| + new ElementBuilder(holder, new CompilationUnitElementImpl('test.dart'));
|
| +
|
| void _useParameterInMethod(
|
| FormalParameter formalParameter, int blockOffset, int blockEnd) {
|
| Block block = AstFactory.block();
|
| @@ -2578,7 +2796,7 @@ class EnumMemberBuilderTest extends EngineTestCase {
|
|
|
| ClassElement _buildElement(EnumDeclaration enumDeclaration) {
|
| ElementHolder holder = new ElementHolder();
|
| - ElementBuilder elementBuilder = new ElementBuilder(holder);
|
| + ElementBuilder elementBuilder = _makeBuilder(holder);
|
| enumDeclaration.accept(elementBuilder);
|
| EnumMemberBuilder memberBuilder =
|
| new EnumMemberBuilder(new TestTypeProvider());
|
| @@ -2587,6 +2805,9 @@ class EnumMemberBuilderTest extends EngineTestCase {
|
| expect(enums, hasLength(1));
|
| return enums[0];
|
| }
|
| +
|
| + ElementBuilder _makeBuilder(ElementHolder holder) =>
|
| + new ElementBuilder(holder, new CompilationUnitElementImpl('test.dart'));
|
| }
|
|
|
| @reflectiveTest
|
|
|