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

Side by Side Diff: pkg/compiler/lib/src/resolution/resolution_strategy.dart

Issue 2869403002: Move ElementEnvironment.isSubtype to DartTypes (Closed)
Patch Set: Created 3 years, 7 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
« no previous file with comments | « pkg/compiler/lib/src/native/enqueue.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 library dart2js.resolution_strategy; 5 library dart2js.resolution_strategy;
6 6
7 import '../common.dart'; 7 import '../common.dart';
8 import '../common_elements.dart'; 8 import '../common_elements.dart';
9 import '../common/backend_api.dart'; 9 import '../common/backend_api.dart';
10 import '../common/names.dart'; 10 import '../common/names.dart';
11 import '../common/resolution.dart'; 11 import '../common/resolution.dart';
12 import '../common/tasks.dart'; 12 import '../common/tasks.dart';
13 import '../common/work.dart'; 13 import '../common/work.dart';
14 import '../compiler.dart'; 14 import '../compiler.dart';
15 import '../constants/values.dart'; 15 import '../constants/values.dart';
16 import '../elements/elements.dart'; 16 import '../elements/elements.dart';
17 import '../elements/entities.dart'; 17 import '../elements/entities.dart';
18 import '../elements/modelx.dart'; 18 import '../elements/modelx.dart';
19 import '../elements/resolution_types.dart'; 19 import '../elements/resolution_types.dart';
20 import '../elements/types.dart';
20 import '../environment.dart'; 21 import '../environment.dart';
21 import '../enqueue.dart'; 22 import '../enqueue.dart';
22 import '../frontend_strategy.dart'; 23 import '../frontend_strategy.dart';
23 import '../js_backend/backend.dart'; 24 import '../js_backend/backend.dart';
24 import '../js_backend/backend_usage.dart'; 25 import '../js_backend/backend_usage.dart';
25 import '../js_backend/custom_elements_analysis.dart'; 26 import '../js_backend/custom_elements_analysis.dart';
26 import '../js_backend/interceptor_data.dart'; 27 import '../js_backend/interceptor_data.dart';
27 import '../js_backend/mirrors_analysis.dart'; 28 import '../js_backend/mirrors_analysis.dart';
28 import '../js_backend/mirrors_data.dart'; 29 import '../js_backend/mirrors_data.dart';
29 import '../js_backend/native_data.dart'; 30 import '../js_backend/native_data.dart';
(...skipping 12 matching lines...) Expand all
42 /// [FrontendStrategy] that loads '.dart' files and creates a resolved element 43 /// [FrontendStrategy] that loads '.dart' files and creates a resolved element
43 /// model using the resolver. 44 /// model using the resolver.
44 class ResolutionFrontEndStrategy implements FrontEndStrategy { 45 class ResolutionFrontEndStrategy implements FrontEndStrategy {
45 final Compiler _compiler; 46 final Compiler _compiler;
46 final ElementEnvironment elementEnvironment; 47 final ElementEnvironment elementEnvironment;
47 AnnotationProcessor _annotationProcessor; 48 AnnotationProcessor _annotationProcessor;
48 49
49 ResolutionFrontEndStrategy(this._compiler) 50 ResolutionFrontEndStrategy(this._compiler)
50 : elementEnvironment = new _CompilerElementEnvironment(_compiler); 51 : elementEnvironment = new _CompilerElementEnvironment(_compiler);
51 52
53 DartTypes get dartTypes => _compiler.types;
54
52 LibraryLoaderTask createLibraryLoader( 55 LibraryLoaderTask createLibraryLoader(
53 ResolvedUriTranslator uriTranslator, 56 ResolvedUriTranslator uriTranslator,
54 ScriptLoader scriptLoader, 57 ScriptLoader scriptLoader,
55 ElementScanner scriptScanner, 58 ElementScanner scriptScanner,
56 LibraryDeserializer deserializer, 59 LibraryDeserializer deserializer,
57 PatchResolverFunction patchResolverFunc, 60 PatchResolverFunction patchResolverFunc,
58 PatchParserTask patchParser, 61 PatchParserTask patchParser,
59 Environment environment, 62 Environment environment,
60 DiagnosticReporter reporter, 63 DiagnosticReporter reporter,
61 Measurer measurer) { 64 Measurer measurer) {
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 } 253 }
251 254
252 @override 255 @override
253 ResolutionInterfaceType createInterfaceType( 256 ResolutionInterfaceType createInterfaceType(
254 ClassElement cls, List<ResolutionDartType> typeArguments) { 257 ClassElement cls, List<ResolutionDartType> typeArguments) {
255 cls.ensureResolved(_resolution); 258 cls.ensureResolved(_resolution);
256 return cls.thisType.createInstantiation(typeArguments); 259 return cls.thisType.createInstantiation(typeArguments);
257 } 260 }
258 261
259 @override 262 @override
260 bool isSubtype(ResolutionDartType a, ResolutionDartType b) {
261 return _compiler.types.isSubtype(a, b);
262 }
263
264 @override
265 MemberElement lookupClassMember(ClassElement cls, String name, 263 MemberElement lookupClassMember(ClassElement cls, String name,
266 {bool setter: false, bool required: false}) { 264 {bool setter: false, bool required: false}) {
267 cls.ensureResolved(_resolution); 265 cls.ensureResolved(_resolution);
268 Element member = cls.implementation.lookupLocalMember(name); 266 Element member = cls.implementation.lookupLocalMember(name);
269 if (member != null && member.isAbstractField) { 267 if (member != null && member.isAbstractField) {
270 AbstractFieldElement abstractField = member; 268 AbstractFieldElement abstractField = member;
271 if (setter) { 269 if (setter) {
272 member = abstractField.setter; 270 member = abstractField.setter;
273 } else { 271 } else {
274 member = abstractField.getter; 272 member = abstractField.getter;
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
662 @override 660 @override
663 WorkItem createWorkItem(MemberElement element) { 661 WorkItem createWorkItem(MemberElement element) {
664 assert(invariant(element, element.isDeclaration)); 662 assert(invariant(element, element.isDeclaration));
665 if (element.isMalformed) return null; 663 if (element.isMalformed) return null;
666 664
667 assert(invariant(element, element is AnalyzableElement, 665 assert(invariant(element, element is AnalyzableElement,
668 message: 'Element $element is not analyzable.')); 666 message: 'Element $element is not analyzable.'));
669 return _resolution.createWorkItem(element); 667 return _resolution.createWorkItem(element);
670 } 668 }
671 } 669 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/native/enqueue.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698