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

Unified Diff: pkg/compiler/lib/src/ssa/builder_kernel.dart

Issue 2746293006: Pulling the element model out of global type inference. (Closed)
Patch Set: . Created 3 years, 9 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/compiler/lib/src/ssa/builder_kernel.dart
diff --git a/pkg/compiler/lib/src/ssa/builder_kernel.dart b/pkg/compiler/lib/src/ssa/builder_kernel.dart
index 320628755e7ee3b70871c80241813e77cbfbf489..7cff75c1b32f9ce8c98700bbd253b9aaaada2bbf 100644
--- a/pkg/compiler/lib/src/ssa/builder_kernel.dart
+++ b/pkg/compiler/lib/src/ssa/builder_kernel.dart
@@ -153,28 +153,10 @@ class KernelSsaBuilder extends ir.Visitor with GraphBuilder {
this.localsHandler = new LocalsHandler(this, targetElement, null, compiler);
this.astAdapter = new KernelAstAdapter(kernel, compiler.backend,
resolvedAst, kernel.nodeToAst, kernel.nodeToElement);
- Element originTarget = targetElement;
- if (originTarget.isPatch) {
- originTarget = originTarget.origin;
- }
- if (originTarget is FunctionElement) {
- if (originTarget is ConstructorBodyElement) {
- ConstructorBodyElement body = originTarget;
- _targetIsConstructorBody = true;
- originTarget = body.constructor;
- }
- target = kernel.functions[originTarget];
- // Closures require a lookup one level deeper in the closure class mapper.
- if (target == null) {
- FunctionElement originTargetFunction = originTarget;
- ClosureClassMap classMap = compiler.closureToClassMapper
- .getClosureToClassMapping(originTargetFunction.resolvedAst);
- if (classMap.closureElement != null) {
- target = kernel.localFunctions[classMap.closureElement];
- }
- }
- } else if (originTarget is FieldElement) {
- target = kernel.fields[originTarget];
+ target = astAdapter.getInitialKernelNode(targetElement);
+ if (targetElement is FunctionElement &&
Siggi Cherem (dart-lang) 2017/03/16 00:37:45 I think you can drop this check too (since Constru
Emily Fortuna 2017/03/17 01:03:02 ah, touche!
+ targetElement is ConstructorBodyElement) {
+ _targetIsConstructorBody = true;
}
}
@@ -866,7 +848,7 @@ class KernelSsaBuilder extends ir.Visitor with GraphBuilder {
// Generate a structure equivalent to:
// Iterator<E> $iter = <iterable>.iterator;
// while ($iter.moveNext()) {
- // <declaredIdentifier> = $iter.current;
+ // <variable> = $iter.current;
// <body>
// }

Powered by Google App Engine
This is Rietveld 408576698