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

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: 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
32 class KernelGlobalTypeInferenceResults
33 extends GlobalTypeInferenceResults<ir.Node> {
34 KernelGlobalTypeInferenceResults(
35 TypesInferrer<ir.Node> inferrer, ClosedWorld closedWorld)
36 : super(inferrer, closedWorld);
37
38 GlobalTypeInferenceMemberResult<ir.Node> createMemberResult(
39 TypeGraphInferrer<ir.Node> inferrer, MemberEntity member,
40 {bool isJsInterop: false}) {
41 return new GlobalTypeInferenceMemberResultImpl<ir.Node>(
42 member,
43 // We store data in the context of the enclosing method, even
44 // for closure elements.
45 inferrer.inferrer.lookupDataOfMember(member),
46 inferrer,
47 isJsInterop,
48 dynamicType);
49 }
50
51 GlobalTypeInferenceParameterResult<ir.Node> createParameterResult(
52 TypeGraphInferrer<ir.Node> inferrer, Local parameter) {
53 return new GlobalTypeInferenceParameterResultImpl<ir.Node>(
54 parameter, inferrer, dynamicType);
55 }
56 }
57
58 class KernelInferrerEngine extends InferrerEngineImpl<ir.Node> {
59 KernelInferrerEngine(Compiler compiler, ClosedWorld closedWorld,
60 ClosedWorldRefiner closedWorldRefiner, FunctionEntity mainElement)
61 : super(compiler, closedWorld, closedWorldRefiner, mainElement,
62 const KernelTypeSystemStrategy());
63
64 @override
65 ConstantValue getFieldConstant(FieldEntity field) {
66 throw new UnimplementedError('KernelInferrerEngine.getFieldConstant');
67 }
68
69 @override
70 bool isFieldInitializerPotentiallyNull(
71 FieldEntity field, ir.Node initializer) {
72 throw new UnimplementedError(
73 'KernelInferrerEngine.isFieldInitializerPotentiallyNull');
74 }
75
76 @override
77 TypeInformation computeMemberTypeInformation(
78 MemberEntity member, ir.Node body) {
79 throw new UnimplementedError(
80 'KernelInferrerEngine.computeMemberTypeInformation');
81 }
82
83 @override
84 FunctionEntity lookupCallMethod(ClassEntity cls) {
85 throw new UnimplementedError('KernelInferrerEngine.lookupCallMethod');
86 }
87
88 @override
89 void forEachParameter(FunctionEntity method, void f(Local parameter)) {
90 throw new UnimplementedError('KernelInferrerEngine.forEachParameter');
91 }
92
93 @override
94 ir.Node computeMemberBody(MemberEntity member) {
95 throw new UnimplementedError('KernelInferrerEngine.computeMemberBody');
96 }
97
98 @override
99 int computeMemberSize(MemberEntity member) {
100 throw new UnimplementedError('KernelInferrerEngine.computeMemberSize');
101 }
102
103 @override
104 GlobalTypeInferenceElementData<ir.Node> createElementData() {
105 throw new UnimplementedError('KernelInferrerEngine.createElementData');
106 }
107 }
108
109 class KernelTypeSystemStrategy implements TypeSystemStrategy<ir.Node> {
110 const KernelTypeSystemStrategy();
111
112 @override
113 bool checkClassEntity(ClassEntity cls) => true;
114
115 @override
116 bool checkMapNode(ir.Node node) => true;
117
118 @override
119 bool checkListNode(ir.Node node) => true;
120
121 @override
122 bool checkLoopPhiNode(ir.Node node) => true;
123
124 @override
125 bool checkPhiNode(ir.Node node) => true;
126
127 @override
128 void forEachParameter(FunctionEntity function, void f(Local parameter)) {
129 throw new UnimplementedError('KernelTypeSystemStrategy.forEachParameter');
130 }
131
132 @override
133 ParameterTypeInformation createParameterTypeInformation(
134 Local parameter, TypeSystem<ir.Node> types) {
135 throw new UnimplementedError(
136 'KernelTypeSystemStrategy.createParameterTypeInformation');
137 }
138
139 @override
140 MemberTypeInformation createMemberTypeInformation(MemberEntity member) {
141 throw new UnimplementedError(
142 'KernelTypeSystemStrategy.createParameterTypeInformation');
143 }
144 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698