Index: pkg/compiler/lib/src/ssa/builder.dart |
diff --git a/pkg/compiler/lib/src/ssa/builder.dart b/pkg/compiler/lib/src/ssa/builder.dart |
index 1a754fd18f29628daabe4c52d8651e26dd3bbd0d..f8c3ad057a7c10f1ff29ffeb4a42565d5488d912 100644 |
--- a/pkg/compiler/lib/src/ssa/builder.dart |
+++ b/pkg/compiler/lib/src/ssa/builder.dart |
@@ -327,8 +327,8 @@ class LocalsHandler { |
void startFunction(AstElement element, ast.Node node) { |
assert(invariant(element, element.isImplementation)); |
Compiler compiler = builder.compiler; |
- closureData = compiler.closureToClassMapper.computeClosureToClassMapping( |
- compiler.backend.frontend.getResolvedAst(element.declaration)); |
+ closureData = compiler.closureToClassMapper |
+ .computeClosureToClassMapping(element.resolvedAst); |
if (element is FunctionElement) { |
FunctionElement functionElement = element; |
@@ -1383,7 +1383,7 @@ class SsaBuilder extends ast.Visitor |
if (compiler.elementHasCompileTimeError(element)) return false; |
FunctionElement function = element; |
- ResolvedAst functionResolvedAst = backend.frontend.getResolvedAst(function); |
+ ResolvedAst functionResolvedAst = function.resolvedAst; |
bool insideLoop = loopNesting > 0 || graph.calledInLoop; |
// Bail out early if the inlining decision is in the cache and we can't |
@@ -1847,8 +1847,7 @@ class SsaBuilder extends ast.Visitor |
void setupStateForInlining( |
FunctionElement function, List<HInstruction> compiledArguments, |
{InterfaceType instanceType}) { |
- ResolvedAst resolvedAst = |
- compiler.backend.frontend.getResolvedAst(function.declaration); |
+ ResolvedAst resolvedAst = function.resolvedAst; |
assert(resolvedAst != null); |
localsHandler = new LocalsHandler(this, function, instanceType); |
localsHandler.closureData = |
@@ -2024,7 +2023,7 @@ class SsaBuilder extends ast.Visitor |
// Build the initializers in the context of the new constructor. |
ResolvedAst oldResolvedAst = resolvedAst; |
- resolvedAst = backend.frontend.getResolvedAst(callee); |
+ resolvedAst = callee.resolvedAst; |
ClosureClassMap oldClosureData = localsHandler.closureData; |
ClosureClassMap newClosureData = compiler.closureToClassMapper |
.computeClosureToClassMapping(resolvedAst); |
@@ -2065,7 +2064,7 @@ class SsaBuilder extends ast.Visitor |
return localsHandler.readLocal(parameter); |
} |
- Element target = constructor.definingConstructor.implementation; |
+ ConstructorElement target = constructor.definingConstructor.implementation; |
bool match = !target.isMalformed && |
CallStructure.addForwardingElementArgumentsToList( |
constructor, |
@@ -2084,7 +2083,7 @@ class SsaBuilder extends ast.Visitor |
reporter.internalError( |
constructor, 'forwarding constructor call does not match'); |
} |
- inlineSuperOrRedirect(backend.frontend.getResolvedAst(target), arguments, |
+ inlineSuperOrRedirect(target.resolvedAst, arguments, |
constructorResolvedAsts, fieldValues, constructor); |
} |
@@ -2131,12 +2130,8 @@ class SsaBuilder extends ast.Visitor |
compiledArguments = |
makeStaticArgumentList(callStructure, arguments, target); |
}); |
- inlineSuperOrRedirect( |
- backend.frontend.getResolvedAst(target.declaration), |
- compiledArguments, |
- constructorResolvedAsts, |
- fieldValues, |
- constructor); |
+ inlineSuperOrRedirect(target.resolvedAst, compiledArguments, |
+ constructorResolvedAsts, fieldValues, constructor); |
} else { |
// A field initializer. |
ast.SendSet init = link.head; |
@@ -2169,12 +2164,8 @@ class SsaBuilder extends ast.Visitor |
target.implementation, |
null, |
handleConstantForOptionalParameter); |
- inlineSuperOrRedirect( |
- backend.frontend.getResolvedAst(target.declaration), |
- arguments, |
- constructorResolvedAsts, |
- fieldValues, |
- constructor); |
+ inlineSuperOrRedirect(target.resolvedAst, arguments, |
+ constructorResolvedAsts, fieldValues, constructor); |
} |
} |
} |
@@ -2192,7 +2183,7 @@ class SsaBuilder extends ast.Visitor |
(ClassElement enclosingClass, FieldElement member) { |
if (compiler.elementHasCompileTimeError(member)) return; |
reporter.withCurrentElement(member, () { |
- ResolvedAst fieldResolvedAst = backend.frontend.getResolvedAst(member); |
+ ResolvedAst fieldResolvedAst = member.resolvedAst; |
ast.Node node = fieldResolvedAst.node; |
ast.Expression initializer = fieldResolvedAst.body; |
if (initializer == null) { |