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

Side by Side Diff: pkg/compiler/lib/src/js_emitter/type_test_registry.dart

Issue 2941033002: Finish strong mode cleaning of dart2js. (Closed)
Patch Set: Add bug numbers and address comments. Created 3 years, 6 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) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 library dart2js.js_emitter.type_test_registry; 5 library dart2js.js_emitter.type_test_registry;
6 6
7 import '../common.dart'; 7 import '../common.dart';
8 import '../common_elements.dart'; 8 import '../common_elements.dart';
9 import '../elements/elements.dart' show ClassElement, MethodElement; 9 import '../elements/elements.dart' show ClassElement, MethodElement;
10 import '../elements/entities.dart'; 10 import '../elements/entities.dart';
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 160
161 bool canBeReified(MemberEntity element) { 161 bool canBeReified(MemberEntity element) {
162 return (canTearOff(element) || 162 return (canTearOff(element) ||
163 mirrorsData.isMemberAccessibleByReflection(element)); 163 mirrorsData.isMemberAccessibleByReflection(element));
164 } 164 }
165 165
166 // Find all types referenced from the types of elements that can be 166 // Find all types referenced from the types of elements that can be
167 // reflected on 'as functions'. 167 // reflected on 'as functions'.
168 liveMembers.where((MemberEntity element) { 168 liveMembers.where((MemberEntity element) {
169 return canBeReflectedAsFunction(element) && canBeReified(element); 169 return canBeReflectedAsFunction(element) && canBeReified(element);
170 }).forEach((MethodElement function) { 170 }).forEach((_function) {
171 MethodElement function = _function;
171 FunctionType type = function.type; 172 FunctionType type = function.type;
172 for (ClassEntity cls in _rtiChecks.getReferencedClasses(type)) { 173 for (ClassEntity cls in _rtiChecks.getReferencedClasses(type)) {
173 while (cls != null) { 174 while (cls != null) {
174 _rtiNeededClasses.add(cls); 175 _rtiNeededClasses.add(cls);
175 cls = _elementEnvironment.getSuperClass(cls); 176 cls = _elementEnvironment.getSuperClass(cls);
176 } 177 }
177 } 178 }
178 }); 179 });
179 } 180 }
180 181
181 void computeRequiredTypeChecks(RuntimeTypesChecksBuilder rtiChecksBuilder) { 182 void computeRequiredTypeChecks(RuntimeTypesChecksBuilder rtiChecksBuilder) {
182 assert(checkedClasses == null && checkedFunctionTypes == null); 183 assert(checkedClasses == null && checkedFunctionTypes == null);
183 184
184 rtiChecksBuilder.registerImplicitChecks( 185 rtiChecksBuilder.registerImplicitChecks(
185 _codegenWorldBuilder, classesUsingTypeVariableTests); 186 _codegenWorldBuilder, classesUsingTypeVariableTests);
186 _rtiChecks = rtiChecksBuilder.computeRequiredChecks(_codegenWorldBuilder); 187 _rtiChecks = rtiChecksBuilder.computeRequiredChecks(_codegenWorldBuilder);
187 188
188 checkedClasses = new Set<ClassElement>(); 189 checkedClasses = new Set<ClassElement>();
189 checkedFunctionTypes = new Set<ResolutionFunctionType>(); 190 checkedFunctionTypes = new Set<ResolutionFunctionType>();
190 _codegenWorldBuilder.isChecks.forEach((ResolutionDartType t) { 191 _codegenWorldBuilder.isChecks.forEach((_t) {
192 ResolutionDartType t = _t;
191 if (t is ResolutionInterfaceType) { 193 if (t is ResolutionInterfaceType) {
192 checkedClasses.add(t.element); 194 checkedClasses.add(t.element);
193 } else if (t is ResolutionFunctionType) { 195 } else if (t is ResolutionFunctionType) {
194 checkedFunctionTypes.add(t); 196 checkedFunctionTypes.add(t);
195 } 197 }
196 }); 198 });
197 } 199 }
198 } 200 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/startup_emitter/fragment_emitter.dart ('k') | pkg/compiler/lib/src/js_model/elements.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698