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

Unified Diff: pkg/kernel/lib/analyzer/ast_from_analyzer.dart

Issue 2551023005: Prepare for decoupling analyzer ASTs from element model. (Closed)
Patch Set: Created 4 years 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/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;

Powered by Google App Engine
This is Rietveld 408576698