Chromium Code Reviews| Index: pkg/compiler/lib/src/inferrer/builder.dart |
| diff --git a/pkg/compiler/lib/src/inferrer/builder.dart b/pkg/compiler/lib/src/inferrer/builder.dart |
| index ffe037b850d738b5ae80a580717ce40fd32a1bae..fb273bfb27e8474cbfdde249fd3d61e561981dfb 100644 |
| --- a/pkg/compiler/lib/src/inferrer/builder.dart |
| +++ b/pkg/compiler/lib/src/inferrer/builder.dart |
| @@ -56,7 +56,7 @@ class ElementGraphBuilder extends ast.Visitor<TypeInformation> |
| SetBulkMixin<TypeInformation, dynamic> |
| implements SemanticSendVisitor<TypeInformation, dynamic> { |
| final Compiler compiler; |
| - final AstElement analyzedElement; |
| + final ExecutableElement analyzedElement; |
| final ResolvedAst resolvedAst; |
| final TypeSystem types; |
| final Map<JumpTarget, List<LocalsHandler>> breaksFor = |
| @@ -72,13 +72,13 @@ class ElementGraphBuilder extends ast.Visitor<TypeInformation> |
| bool isConstructorRedirect = false; |
| bool seenSuperConstructorCall = false; |
| SideEffects sideEffects = new SideEffects.empty(); |
| - final Element outermostElement; |
| + final MemberElement outermostElement; |
| final InferrerEngine inferrer; |
| final Setlet<Entity> capturedVariables = new Setlet<Entity>(); |
| final GlobalTypeInferenceElementData inTreeData; |
|
Siggi Cherem (dart-lang)
2017/06/29 21:40:09
rename to memberData like you did for the map in t
Johnni Winther
2017/06/30 08:14:50
Renamed to [memberData]. The builder is created fo
|
| ElementGraphBuilder.internal( |
| - AstElement analyzedElement, |
| + ExecutableElement analyzedElement, |
| this.resolvedAst, |
| this.outermostElement, |
| InferrerEngine inferrer, |
| @@ -87,9 +87,7 @@ class ElementGraphBuilder extends ast.Visitor<TypeInformation> |
| : this.analyzedElement = analyzedElement, |
| this.inferrer = inferrer, |
| this.types = inferrer.types, |
| - this.inTreeData = analyzedElement.isLocal |
| - ? inferrer.dataOfLocalFunction(analyzedElement) |
| - : inferrer.dataOfMember(analyzedElement) { |
| + this.inTreeData = inferrer.dataOfMember(analyzedElement.memberContext) { |
| assert(outermostElement != null); |
| if (locals != null) return; |
| ast.Node node; |
| @@ -104,15 +102,10 @@ class ElementGraphBuilder extends ast.Visitor<TypeInformation> |
| new LocalsHandler(inferrer, types, compiler.options, node, fieldScope); |
| } |
| - ElementGraphBuilder(AstElement element, ResolvedAst resolvedAst, |
| + ElementGraphBuilder(ExecutableElement element, ResolvedAst resolvedAst, |
| Compiler compiler, InferrerEngine inferrer, [LocalsHandler handler]) |
| - : this.internal( |
| - element, |
| - resolvedAst, |
| - element.outermostEnclosingMemberOrTopLevel.implementation, |
| - inferrer, |
| - compiler, |
| - handler); |
| + : this.internal(element, resolvedAst, element.memberContext, inferrer, |
| + compiler, handler); |
| TreeElements get elements => resolvedAst.elements; |
| @@ -2737,12 +2730,7 @@ class ElementGraphBuilder extends ast.Visitor<TypeInformation> |
| mask = receiverType == types.dynamicType |
| ? null |
| : types.newTypedSelector(receiverType, mask); |
| - if (analyzedElement.isLocal) { |
| - inferrer.updateSelectorInLocalFunction( |
| - analyzedElement, node, selector, mask); |
| - } else { |
| - inferrer.updateSelectorInMember(analyzedElement, node, selector, mask); |
| - } |
| + inferrer.updateSelectorInMember(outermostElement, node, selector, mask); |
| } |
| // If the receiver of the call is a local, we may know more about |