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

Unified Diff: pkg/analyzer/test/generated/all_the_rest_test.dart

Issue 1217373005: Generic method support in element model (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 5 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
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 0a1b03a5778ccb30aea5b067d3142245d78d44d6..1b1329594fab93919252fbd21bf674545b821108 100644
--- a/pkg/analyzer/test/generated/all_the_rest_test.dart
+++ b/pkg/analyzer/test/generated/all_the_rest_test.dart
@@ -5391,6 +5391,7 @@ class ElementBuilderTest extends EngineTestCase {
expect(declaration.functionExpression.element, same(function));
expect(function.isExternal, isTrue);
expect(function.isSynthetic, isFalse);
+ expect(function.typeParameters, hasLength(0));
}
void test_visitFunctionDeclaration_getter() {
@@ -5412,6 +5413,7 @@ class ElementBuilderTest extends EngineTestCase {
expect(accessor.isExternal, isFalse);
expect(accessor.isSetter, isFalse);
expect(accessor.isSynthetic, isFalse);
+ expect(accessor.typeParameters, hasLength(0));
PropertyInducingElement variable = accessor.variable;
EngineTestCase.assertInstanceOf((obj) => obj is TopLevelVariableElement,
TopLevelVariableElement, variable);
@@ -5435,6 +5437,7 @@ class ElementBuilderTest extends EngineTestCase {
expect(declaration.functionExpression.element, same(function));
expect(function.isExternal, isFalse);
expect(function.isSynthetic, isFalse);
+ expect(function.typeParameters, hasLength(0));
}
void test_visitFunctionDeclaration_setter() {
@@ -5456,12 +5459,40 @@ class ElementBuilderTest extends EngineTestCase {
expect(accessor.isExternal, isFalse);
expect(accessor.isSetter, isTrue);
expect(accessor.isSynthetic, isFalse);
+ expect(accessor.typeParameters, hasLength(0));
PropertyInducingElement variable = accessor.variable;
EngineTestCase.assertInstanceOf((obj) => obj is TopLevelVariableElement,
TopLevelVariableElement, variable);
expect(variable.isSynthetic, isTrue);
}
+ void test_visitFunctionDeclaration_typeParameters() {
+ ElementHolder holder = new ElementHolder();
+ ElementBuilder builder = new ElementBuilder(holder);
+ String functionName = 'f';
+ String typeParameterName = 'E';
+ FunctionExpression expression = AstFactory.functionExpression3(
+ AstFactory.typeParameterList([typeParameterName]),
+ AstFactory.formalParameterList(), AstFactory.blockFunctionBody2());
+ FunctionDeclaration declaration =
+ AstFactory.functionDeclaration(null, null, functionName, expression);
+ declaration.accept(builder);
+ List<FunctionElement> functions = holder.functions;
+ expect(functions, hasLength(1));
+ FunctionElement function = functions[0];
+ expect(function, isNotNull);
+ expect(function.name, functionName);
+ expect(function.isExternal, isFalse);
+ expect(function.isSynthetic, isFalse);
+ expect(declaration.element, same(function));
+ expect(expression.element, same(function));
+ List<TypeParameterElement> typeParameters = function.typeParameters;
+ expect(typeParameters, hasLength(1));
+ TypeParameterElement typeParameter = typeParameters[0];
+ expect(typeParameter, isNotNull);
+ expect(typeParameter.name, typeParameterName);
+ }
+
void test_visitFunctionExpression() {
ElementHolder holder = new ElementHolder();
ElementBuilder builder = new ElementBuilder(holder);
@@ -5474,6 +5505,7 @@ class ElementBuilderTest extends EngineTestCase {
expect(function, isNotNull);
expect(expression.element, same(function));
expect(function.isSynthetic, isFalse);
+ expect(function.typeParameters, hasLength(0));
}
void test_visitFunctionTypeAlias() {
@@ -5515,11 +5547,34 @@ class ElementBuilderTest extends EngineTestCase {
expect(parameter.isFinal, isFalse);
expect(parameter.isSynthetic, isFalse);
expect(parameter.parameterKind, ParameterKind.REQUIRED);
- {
- SourceRange visibleRange = parameter.visibleRange;
- expect(100, visibleRange.offset);
- expect(110, visibleRange.end);
- }
+ SourceRange visibleRange = parameter.visibleRange;
+ expect(100, visibleRange.offset);
+ expect(110, visibleRange.end);
+ }
+
+ void test_visitFunctionTypedFormalParameter_withTypeParameters() {
+ ElementHolder holder = new ElementHolder();
+ ElementBuilder builder = new ElementBuilder(holder);
+ String parameterName = "p";
+ FunctionTypedFormalParameter formalParameter =
+ AstFactory.functionTypedFormalParameter(null, parameterName);
+ formalParameter.typeParameters = AstFactory.typeParameterList(['F']);
+ _useParameterInMethod(formalParameter, 100, 110);
+ formalParameter.accept(builder);
+ List<ParameterElement> parameters = holder.parameters;
+ expect(parameters, hasLength(1));
+ ParameterElement parameter = parameters[0];
+ expect(parameter, isNotNull);
+ expect(parameter.name, parameterName);
+ expect(parameter.initializer, isNull);
+ expect(parameter.isConst, isFalse);
+ expect(parameter.isFinal, isFalse);
+ expect(parameter.isSynthetic, isFalse);
+ expect(parameter.parameterKind, ParameterKind.REQUIRED);
+ expect(parameter.typeParameters, hasLength(1));
+ SourceRange visibleRange = parameter.visibleRange;
+ expect(100, visibleRange.offset);
+ expect(110, visibleRange.end);
}
void test_visitLabeledStatement() {
@@ -5554,6 +5609,7 @@ class ElementBuilderTest extends EngineTestCase {
expect(method.labels, hasLength(0));
expect(method.localVariables, hasLength(0));
expect(method.parameters, hasLength(0));
+ expect(method.typeParameters, hasLength(0));
expect(method.isAbstract, isTrue);
expect(method.isExternal, isFalse);
expect(method.isStatic, isFalse);
@@ -5579,6 +5635,7 @@ class ElementBuilderTest extends EngineTestCase {
expect(method.labels, hasLength(0));
expect(method.localVariables, hasLength(0));
expect(method.parameters, hasLength(0));
+ expect(method.typeParameters, hasLength(0));
expect(method.isAbstract, isFalse);
expect(method.isExternal, isTrue);
expect(method.isStatic, isFalse);
@@ -5691,6 +5748,7 @@ class ElementBuilderTest extends EngineTestCase {
expect(method.labels, hasLength(0));
expect(method.localVariables, hasLength(0));
expect(method.parameters, hasLength(0));
+ expect(method.typeParameters, hasLength(0));
expect(method.isAbstract, isFalse);
expect(method.isExternal, isFalse);
expect(method.isStatic, isFalse);
@@ -5716,6 +5774,7 @@ class ElementBuilderTest extends EngineTestCase {
expect(method.labels, hasLength(0));
expect(method.localVariables, hasLength(0));
expect(method.parameters, hasLength(1));
+ expect(method.typeParameters, hasLength(0));
expect(method.isAbstract, isFalse);
expect(method.isExternal, isFalse);
expect(method.isStatic, isFalse);
@@ -5831,12 +5890,38 @@ class ElementBuilderTest extends EngineTestCase {
expect(method.labels, hasLength(0));
expect(method.localVariables, hasLength(0));
expect(method.parameters, hasLength(0));
+ expect(method.typeParameters, hasLength(0));
expect(method.isAbstract, isFalse);
expect(method.isExternal, isFalse);
expect(method.isStatic, isTrue);
expect(method.isSynthetic, isFalse);
}
+ void test_visitMethodDeclaration_typeParameters() {
+ ElementHolder holder = new ElementHolder();
+ ElementBuilder builder = new ElementBuilder(holder);
+ String methodName = "m";
+ MethodDeclaration methodDeclaration = AstFactory.methodDeclaration2(null,
+ null, null, null, AstFactory.identifier3(methodName),
+ AstFactory.formalParameterList(), AstFactory.blockFunctionBody2());
+ methodDeclaration.typeParameters = AstFactory.typeParameterList(['E']);
+ methodDeclaration.accept(builder);
+ List<MethodElement> methods = holder.methods;
+ expect(methods, hasLength(1));
+ MethodElement method = methods[0];
+ expect(method, isNotNull);
+ expect(method.name, methodName);
+ expect(method.functions, hasLength(0));
+ expect(method.labels, hasLength(0));
+ expect(method.localVariables, hasLength(0));
+ expect(method.parameters, hasLength(0));
+ expect(method.typeParameters, hasLength(1));
+ expect(method.isAbstract, isFalse);
+ expect(method.isExternal, isFalse);
+ expect(method.isStatic, isFalse);
+ expect(method.isSynthetic, isFalse);
+ }
+
void test_visitMethodDeclaration_withMembers() {
ElementHolder holder = new ElementHolder();
ElementBuilder builder = new ElementBuilder(holder);
@@ -5863,6 +5948,7 @@ class ElementBuilderTest extends EngineTestCase {
MethodElement method = methods[0];
expect(method, isNotNull);
expect(method.name, methodName);
+ expect(method.typeParameters, hasLength(0));
expect(method.isAbstract, isFalse);
expect(method.isExternal, isFalse);
expect(method.isStatic, isFalse);

Powered by Google App Engine
This is Rietveld 408576698