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

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

Issue 2999723002: Add stub versions of KernelInferrerEngine and friends (Closed)
Patch Set: Updated cf. comments Created 3 years, 4 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
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 import 'package:kernel/ast.dart' as ir;
6
7 import '../compiler.dart';
8 import '../constants/values.dart';
9 import '../elements/entities.dart';
10 import '../types/types.dart';
11 import '../world.dart';
12 import 'inferrer_engine.dart';
13 import 'type_graph_inferrer.dart';
14 import 'type_graph_nodes.dart';
15 import 'type_system.dart';
16
17 class KernelTypeGraphInferrer extends TypeGraphInferrer<ir.Node> {
18 final Compiler _compiler;
19
20 KernelTypeGraphInferrer(this._compiler, ClosedWorld closedWorld,
21 ClosedWorldRefiner closedWorldRefiner, {bool disableTypeInference: false})
22 : super(closedWorld, closedWorldRefiner,
23 disableTypeInference: disableTypeInference);
24
25 @override
26 InferrerEngine<ir.Node> createInferrerEngineFor(FunctionEntity main) {
27 return new KernelInferrerEngine(
28 _compiler, closedWorld, closedWorldRefiner, main);
29 }
30
31 @override
32 GlobalTypeInferenceResults createResults() {
33 return new KernelGlobalTypeInferenceResults(this, closedWorld);
34 }
35 }
36
37 class KernelGlobalTypeInferenceResults
38 extends GlobalTypeInferenceResults<ir.Node> {
39 KernelGlobalTypeInferenceResults(
40 TypesInferrer<ir.Node> inferrer, ClosedWorld closedWorld)
41 : super(inferrer, closedWorld);
42
43 GlobalTypeInferenceMemberResult<ir.Node> createMemberResult(
44 TypeGraphInferrer<ir.Node> inferrer, MemberEntity member,
45 {bool isJsInterop: false}) {
46 return new GlobalTypeInferenceMemberResultImpl<ir.Node>(
47 member,
48 // We store data in the context of the enclosing method, even
49 // for closure elements.
50 inferrer.inferrer.lookupDataOfMember(member),
51 inferrer,
52 isJsInterop,
53 dynamicType);
54 }
55
56 GlobalTypeInferenceParameterResult<ir.Node> createParameterResult(
57 TypeGraphInferrer<ir.Node> inferrer, Local parameter) {
58 return new GlobalTypeInferenceParameterResultImpl<ir.Node>(
59 parameter, inferrer, dynamicType);
60 }
61 }
62
63 class KernelInferrerEngine extends InferrerEngineImpl<ir.Node> {
64 KernelInferrerEngine(Compiler compiler, ClosedWorld closedWorld,
65 ClosedWorldRefiner closedWorldRefiner, FunctionEntity mainElement)
66 : super(compiler, closedWorld, closedWorldRefiner, mainElement,
67 const KernelTypeSystemStrategy());
68
69 @override
70 ConstantValue getFieldConstant(FieldEntity field) {
71 throw new UnimplementedError('KernelInferrerEngine.getFieldConstant');
72 }
73
74 @override
75 bool isFieldInitializerPotentiallyNull(
76 FieldEntity field, ir.Node initializer) {
77 throw new UnimplementedError(
78 'KernelInferrerEngine.isFieldInitializerPotentiallyNull');
79 }
80
81 @override
82 TypeInformation computeMemberTypeInformation(
83 MemberEntity member, ir.Node body) {
84 throw new UnimplementedError(
85 'KernelInferrerEngine.computeMemberTypeInformation');
86 }
87
88 @override
89 FunctionEntity lookupCallMethod(ClassEntity cls) {
90 throw new UnimplementedError('KernelInferrerEngine.lookupCallMethod');
91 }
92
93 @override
94 void forEachParameter(FunctionEntity method, void f(Local parameter)) {
95 throw new UnimplementedError('KernelInferrerEngine.forEachParameter');
96 }
97
98 @override
99 ir.Node computeMemberBody(MemberEntity member) {
100 throw new UnimplementedError('KernelInferrerEngine.computeMemberBody');
101 }
102
103 @override
104 int computeMemberSize(MemberEntity member) {
105 throw new UnimplementedError('KernelInferrerEngine.computeMemberSize');
106 }
107
108 @override
109 GlobalTypeInferenceElementData<ir.Node> createElementData() {
110 throw new UnimplementedError('KernelInferrerEngine.createElementData');
111 }
112 }
113
114 class KernelTypeSystemStrategy implements TypeSystemStrategy<ir.Node> {
115 const KernelTypeSystemStrategy();
116
117 @override
118 bool checkClassEntity(ClassEntity cls) => true;
119
120 @override
121 bool checkMapNode(ir.Node node) => true;
122
123 @override
124 bool checkListNode(ir.Node node) => true;
125
126 @override
127 bool checkLoopPhiNode(ir.Node node) => true;
128
129 @override
130 bool checkPhiNode(ir.Node node) => true;
131
132 @override
133 void forEachParameter(FunctionEntity function, void f(Local parameter)) {
134 throw new UnimplementedError('KernelTypeSystemStrategy.forEachParameter');
135 }
136
137 @override
138 ParameterTypeInformation createParameterTypeInformation(
139 Local parameter, TypeSystem<ir.Node> types) {
140 throw new UnimplementedError(
141 'KernelTypeSystemStrategy.createParameterTypeInformation');
142 }
143
144 @override
145 MemberTypeInformation createMemberTypeInformation(MemberEntity member) {
146 throw new UnimplementedError(
147 'KernelTypeSystemStrategy.createParameterTypeInformation');
148 }
149 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/backend_strategy.dart ('k') | pkg/compiler/lib/src/inferrer/type_graph_inferrer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698