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

Side by Side Diff: pkg/compiler/lib/src/universe/element_world_builder.dart

Issue 2807593002: Use entities in impact transformers. (Closed)
Patch Set: Created 3 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of world_builder; 5 part of world_builder;
6 6
7 /// [ResolutionEnqueuerWorldBuilder] based on the [Element] model. 7 /// [ResolutionEnqueuerWorldBuilder] based on the [Element] model.
8 class ElementResolutionWorldBuilder extends ResolutionWorldBuilderBase { 8 class ElementResolutionWorldBuilder extends ResolutionWorldBuilderBase {
9 /// Used for testing the new more precise computation of instantiated types 9 /// Used for testing the new more precise computation of instantiated types
10 /// and classes. 10 /// and classes.
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 type.computeUnaliased(_resolution); 83 type.computeUnaliased(_resolution);
84 type = type.unaliased; 84 type = type.unaliased;
85 // Even in checked mode, type annotations for return type and argument 85 // Even in checked mode, type annotations for return type and argument
86 // types do not imply type checks, so there should never be a check 86 // types do not imply type checks, so there should never be a check
87 // against the type variable of a typedef. 87 // against the type variable of a typedef.
88 assert(!type.isTypeVariable || !type.element.enclosingElement.isTypedef); 88 assert(!type.isTypeVariable || !type.element.enclosingElement.isTypedef);
89 super.registerIsCheck(type); 89 super.registerIsCheck(type);
90 } 90 }
91 91
92 void registerStaticUse(StaticUse staticUse, MemberUsedCallback memberUsed) { 92 void registerStaticUse(StaticUse staticUse, MemberUsedCallback memberUsed) {
93 if (staticUse.kind == StaticUseKind.CLOSURE) { 93 Element element = staticUse.element;
94 LocalFunctionElement localFunction = staticUse.element;
95 if (localFunction.type.containsTypeVariables) {
96 localFunctionsWithFreeTypeVariables.add(localFunction);
97 }
98 localFunctions.add(staticUse.element);
99 return;
100 }
101 MemberElement element = staticUse.element;
102 assert(invariant(element, element.isDeclaration, 94 assert(invariant(element, element.isDeclaration,
103 message: "Element ${element} is not the declaration.")); 95 message: "Element ${element} is not the declaration."));
104 super.registerStaticUse(staticUse, memberUsed); 96 super.registerStaticUse(staticUse, memberUsed);
105 } 97 }
106 98
107 _ClassUsage _createClassUsage(ClassElement cls) { 99 _ClassUsage _createClassUsage(ClassElement cls) {
108 cls.ensureResolved(_resolution); 100 cls.ensureResolved(_resolution);
109 _resolution.ensureClassMembers(cls); 101 _resolution.ensureClassMembers(cls);
110 return super._createClassUsage(cls); 102 return super._createClassUsage(cls);
111 } 103 }
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 } 243 }
252 } 244 }
253 245
254 @override 246 @override
255 void registerMixinUse( 247 void registerMixinUse(
256 MixinApplicationElement mixinApplication, ClassElement mixin) { 248 MixinApplicationElement mixinApplication, ClassElement mixin) {
257 assert(mixin.isDeclaration); 249 assert(mixin.isDeclaration);
258 super.registerMixinUse(mixinApplication, mixin); 250 super.registerMixinUse(mixinApplication, mixin);
259 } 251 }
260 } 252 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/ssa/type_builder.dart ('k') | pkg/compiler/lib/src/universe/resolution_world_builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698