Index: pkg/kernel/lib/analyzer/ast_from_analyzer.dart |
diff --git a/pkg/kernel/lib/analyzer/ast_from_analyzer.dart b/pkg/kernel/lib/analyzer/ast_from_analyzer.dart |
index caece790dd1000e80cf9d058c069d893a67a65a1..f6b605a3dbcfefecfb424b132dc72f2c649ee9b2 100644 |
--- a/pkg/kernel/lib/analyzer/ast_from_analyzer.dart |
+++ b/pkg/kernel/lib/analyzer/ast_from_analyzer.dart |
@@ -12,6 +12,7 @@ import '../transformations/flags.dart'; |
import 'analyzer.dart'; |
import 'loader.dart'; |
import 'package:analyzer/analyzer.dart'; |
+import 'package:analyzer/dart/ast/resolution_accessors.dart'; |
import 'package:analyzer/src/generated/parser.dart'; |
import 'package:analyzer/src/dart/element/member.dart'; |
import 'package:analyzer/src/error/codes.dart'; |
@@ -541,7 +542,7 @@ class ExpressionScope extends TypeScope { |
initializer: parameter is DefaultFormalParameter |
? buildOptionalTopLevelExpression(parameter.defaultValue) |
: null, |
- type: buildType(parameter.element.type)); |
+ type: buildType(elementForFormalParameter(parameter).type)); |
switch (parameter.kind) { |
case ParameterKind.REQUIRED: |
positional.add(declaration); |
@@ -2335,7 +2336,7 @@ class ClassBodyBuilder extends GeneralizingAstVisitor<Null> { |
bool _isIgnoredMember(ClassMember node) { |
return node is ConstructorDeclaration && |
node.factoryKeyword != null && |
- node.element.redirectedConstructor != null; |
+ elementForConstructorDeclaration(node).redirectedConstructor != null; |
} |
visitClassDeclaration(ClassDeclaration node) { |
@@ -2610,7 +2611,8 @@ class MemberBodyBuilder extends GeneralizingAstVisitor<Null> { |
hasExplicitConstructorCall = true; |
} |
} |
- ClassElement classElement = node.element.enclosingElement; |
+ ClassElement classElement = |
+ elementForConstructorDeclaration(node).enclosingElement; |
if (classElement.supertype != null && !hasExplicitConstructorCall) { |
ConstructorElement targetElement = |
scope.findDefaultConstructor(classElement.supertype.element); |
@@ -2628,7 +2630,8 @@ class MemberBodyBuilder extends GeneralizingAstVisitor<Null> { |
void buildFactoryConstructor(ConstructorDeclaration node) { |
addAnnotations(node.metadata); |
ast.Procedure procedure = currentMember; |
- ClassElement classElement = node.element.enclosingElement; |
+ ClassElement classElement = |
+ elementForConstructorDeclaration(node).enclosingElement; |
ast.Class classNode = procedure.enclosingClass; |
var types = getFreshTypeParameters(classNode.typeParameters); |
for (int i = 0; i < classElement.typeParameters.length; ++i) { |
@@ -2643,7 +2646,8 @@ class MemberBodyBuilder extends GeneralizingAstVisitor<Null> { |
handleNativeBody(node.body); |
if (node.redirectedConstructor != null) { |
// Redirecting factories with resolved targets don't show up here. |
- assert(node.element.redirectedConstructor == null); |
+ assert( |
+ elementForConstructorDeclaration(node).redirectedConstructor == null); |
var function = procedure.function; |
var name = node.redirectedConstructor.type.name.name; |
if (node.redirectedConstructor.name != null) { |
@@ -2662,7 +2666,8 @@ class MemberBodyBuilder extends GeneralizingAstVisitor<Null> { |
ast.Procedure procedure = currentMember; |
procedure.function = scope.buildFunctionNode(node.parameters, node.body, |
returnType: node.returnType, |
- inferredReturnType: scope.buildType(node.element.returnType), |
+ inferredReturnType: |
+ scope.buildType(elementForMethodDeclaration(node).returnType), |
typeParameters: |
scope.buildOptionalTypeParameterList(node.typeParameters)) |
..parent = procedure; |
@@ -2672,7 +2677,7 @@ class MemberBodyBuilder extends GeneralizingAstVisitor<Null> { |
visitVariableDeclaration(VariableDeclaration node) { |
addAnnotations(node.metadata); |
ast.Field field = currentMember; |
- field.type = scope.buildType(node.element.type); |
+ field.type = scope.buildType(elementForVariableDeclaration(node).type); |
if (node.initializer != null) { |
field.initializer = scope.buildTopLevelExpression(node.initializer) |
..parent = field; |