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

Side by Side Diff: pkg/compiler/lib/src/inferrer/kernel_inferrer_engine.dart

Issue 3004713002: Remove use of Compiler in inferrer engines. (Closed)
Patch Set: Created 3 years, 3 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 import 'package:kernel/ast.dart' as ir; 5 import 'package:kernel/ast.dart' as ir;
6 6
7 import '../../compiler_new.dart';
7 import '../closure.dart'; 8 import '../closure.dart';
8 import '../common.dart'; 9 import '../common.dart';
9 import '../common_elements.dart'; 10 import '../common_elements.dart';
10 import '../compiler.dart'; 11 import '../compiler.dart';
11 import '../constants/values.dart'; 12 import '../constants/values.dart';
12 import '../elements/entities.dart'; 13 import '../elements/entities.dart';
13 import '../elements/types.dart'; 14 import '../elements/types.dart';
15 import '../js_backend/annotations.dart';
16 import '../js_backend/mirrors_data.dart';
17 import '../js_backend/no_such_method_registry.dart';
14 import '../js_model/locals.dart'; 18 import '../js_model/locals.dart';
15 import '../kernel/element_map.dart'; 19 import '../kernel/element_map.dart';
16 import '../options.dart'; 20 import '../options.dart';
17 import '../types/types.dart'; 21 import '../types/types.dart';
18 import '../world.dart'; 22 import '../world.dart';
19 import 'builder_kernel.dart'; 23 import 'builder_kernel.dart';
20 import 'inferrer_engine.dart'; 24 import 'inferrer_engine.dart';
21 import 'type_graph_inferrer.dart'; 25 import 'type_graph_inferrer.dart';
22 import 'type_graph_nodes.dart'; 26 import 'type_graph_nodes.dart';
23 import 'type_system.dart'; 27 import 'type_system.dart';
(...skipping 10 matching lines...) Expand all
34 this._globalLocalsMap, 38 this._globalLocalsMap,
35 this._closureDataLookup, 39 this._closureDataLookup,
36 ClosedWorld closedWorld, 40 ClosedWorld closedWorld,
37 ClosedWorldRefiner closedWorldRefiner, 41 ClosedWorldRefiner closedWorldRefiner,
38 {bool disableTypeInference: false}) 42 {bool disableTypeInference: false})
39 : super(closedWorld, closedWorldRefiner, 43 : super(closedWorld, closedWorldRefiner,
40 disableTypeInference: disableTypeInference); 44 disableTypeInference: disableTypeInference);
41 45
42 @override 46 @override
43 InferrerEngine<ir.Node> createInferrerEngineFor(FunctionEntity main) { 47 InferrerEngine<ir.Node> createInferrerEngineFor(FunctionEntity main) {
44 return new KernelInferrerEngine(_compiler, _elementMap, _globalLocalsMap, 48 return new KernelInferrerEngine(
45 _closureDataLookup, closedWorld, closedWorldRefiner, main); 49 _compiler.options,
50 _compiler.progress,
51 _compiler.reporter,
52 _compiler.outputProvider,
53 _compiler.backend.optimizerHints,
54 _elementMap,
55 _globalLocalsMap,
56 _closureDataLookup,
57 closedWorld,
58 closedWorldRefiner,
59 _compiler.backend.mirrorsData,
60 _compiler.backend.noSuchMethodRegistry,
61 main);
46 } 62 }
47 63
48 @override 64 @override
49 GlobalTypeInferenceResults createResults() { 65 GlobalTypeInferenceResults createResults() {
50 return new KernelGlobalTypeInferenceResults(this, closedWorld); 66 return new KernelGlobalTypeInferenceResults(this, closedWorld);
51 } 67 }
52 } 68 }
53 69
54 class KernelGlobalTypeInferenceResults 70 class KernelGlobalTypeInferenceResults
55 extends GlobalTypeInferenceResults<ir.Node> { 71 extends GlobalTypeInferenceResults<ir.Node> {
(...skipping 15 matching lines...) Expand all
71 } 87 }
72 88
73 GlobalTypeInferenceParameterResult<ir.Node> createParameterResult( 89 GlobalTypeInferenceParameterResult<ir.Node> createParameterResult(
74 TypeGraphInferrer<ir.Node> inferrer, Local parameter) { 90 TypeGraphInferrer<ir.Node> inferrer, Local parameter) {
75 return new GlobalTypeInferenceParameterResultImpl<ir.Node>( 91 return new GlobalTypeInferenceParameterResultImpl<ir.Node>(
76 parameter, inferrer, dynamicType); 92 parameter, inferrer, dynamicType);
77 } 93 }
78 } 94 }
79 95
80 class KernelInferrerEngine extends InferrerEngineImpl<ir.Node> { 96 class KernelInferrerEngine extends InferrerEngineImpl<ir.Node> {
81 final CompilerOptions _options;
82 final KernelToElementMapForBuilding _elementMap; 97 final KernelToElementMapForBuilding _elementMap;
83 final GlobalLocalsMap _globalLocalsMap; 98 final GlobalLocalsMap _globalLocalsMap;
84 final ClosureDataLookup<ir.Node> _closureDataLookup; 99 final ClosureDataLookup<ir.Node> _closureDataLookup;
85 100
86 KernelInferrerEngine( 101 KernelInferrerEngine(
87 Compiler compiler, 102 CompilerOptions options,
103 Progress progress,
104 DiagnosticReporter reporter,
105 CompilerOutput compilerOutput,
106 OptimizerHintsForTests optimizerHints,
88 this._elementMap, 107 this._elementMap,
89 this._globalLocalsMap, 108 this._globalLocalsMap,
90 this._closureDataLookup, 109 this._closureDataLookup,
91 ClosedWorld closedWorld, 110 ClosedWorld closedWorld,
92 ClosedWorldRefiner closedWorldRefiner, 111 ClosedWorldRefiner closedWorldRefiner,
112 MirrorsData mirrorsData,
113 NoSuchMethodRegistry noSuchMethodRegistry,
93 FunctionEntity mainElement) 114 FunctionEntity mainElement)
94 : this._options = compiler.options, 115 : super(
95 super( 116 options,
96 compiler, 117 progress,
118 reporter,
119 compilerOutput,
120 optimizerHints,
97 closedWorld, 121 closedWorld,
98 closedWorldRefiner, 122 closedWorldRefiner,
123 mirrorsData,
124 noSuchMethodRegistry,
99 mainElement, 125 mainElement,
100 new KernelTypeSystemStrategy( 126 new KernelTypeSystemStrategy(
101 _elementMap, _globalLocalsMap, _closureDataLookup)); 127 _elementMap, _globalLocalsMap, _closureDataLookup));
102 128
103 ElementEnvironment get _elementEnvironment => _elementMap.elementEnvironment; 129 ElementEnvironment get _elementEnvironment => _elementMap.elementEnvironment;
104 130
105 @override 131 @override
106 ConstantValue getFieldConstant(FieldEntity field) { 132 ConstantValue getFieldConstant(FieldEntity field) {
107 return _elementMap.getFieldConstantValue(field); 133 return _elementMap.getFieldConstantValue(field);
108 } 134 }
109 135
110 @override 136 @override
111 bool isFieldInitializerPotentiallyNull( 137 bool isFieldInitializerPotentiallyNull(
112 FieldEntity field, ir.Node initializer) { 138 FieldEntity field, ir.Node initializer) {
113 // TODO(johnniwinther): Implement the ad-hoc check in ast inferrer? 139 // TODO(johnniwinther): Implement the ad-hoc check in ast inferrer?
114 return true; 140 return true;
115 } 141 }
116 142
117 @override 143 @override
118 TypeInformation computeMemberTypeInformation( 144 TypeInformation computeMemberTypeInformation(
119 MemberEntity member, ir.Node body) { 145 MemberEntity member, ir.Node body) {
120 KernelTypeGraphBuilder visitor = new KernelTypeGraphBuilder( 146 KernelTypeGraphBuilder visitor = new KernelTypeGraphBuilder(
121 _options, closedWorld, _closureDataLookup, this, member, body); 147 options, closedWorld, _closureDataLookup, this, member, body);
122 return visitor.run(); 148 return visitor.run();
123 } 149 }
124 150
125 @override 151 @override
126 FunctionEntity lookupCallMethod(ClassEntity cls) { 152 FunctionEntity lookupCallMethod(ClassEntity cls) {
127 throw new UnimplementedError('KernelInferrerEngine.lookupCallMethod'); 153 throw new UnimplementedError('KernelInferrerEngine.lookupCallMethod');
128 } 154 }
129 155
130 @override 156 @override
131 ir.Node computeMemberBody(MemberEntity member) { 157 ir.Node computeMemberBody(MemberEntity member) {
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 ConstructorEntity constructor = member; 329 ConstructorEntity constructor = member;
304 if (constructor.isFactoryConstructor) { 330 if (constructor.isFactoryConstructor) {
305 DartType type = _elementEnvironment.getFunctionType(constructor); 331 DartType type = _elementEnvironment.getFunctionType(constructor);
306 return new FactoryConstructorTypeInformation(constructor, type); 332 return new FactoryConstructorTypeInformation(constructor, type);
307 } else { 333 } else {
308 return new GenerativeConstructorTypeInformation(constructor); 334 return new GenerativeConstructorTypeInformation(constructor);
309 } 335 }
310 } 336 }
311 } 337 }
312 } 338 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/inferrer/inferrer_engine.dart ('k') | pkg/compiler/lib/src/inferrer/node_tracer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698