@@ -65,6 +65,7 @@ class InferrerEngine implements interfaces.InferrerEngine {
65
65
@override
66
66
final JsClosedWorld closedWorld;
67
67
68
+ @override
68
69
final TypeSystem types;
69
70
final Map <ir.TreeNode , TypeInformation > concreteTypes = {};
70
71
final GlobalLocalsMap globalLocalsMap;
@@ -174,6 +175,7 @@ class InferrerEngine implements interfaces.InferrerEngine {
174
175
175
176
/// Returns the type for [nativeBehavior] . See documentation on
176
177
/// [NativeBehavior] .
178
+ @override
177
179
TypeInformation typeOfNativeBehavior (NativeBehavior nativeBehavior) {
178
180
if (nativeBehavior == null ) return types.dynamicType;
179
181
List <Object > typesReturned = nativeBehavior.typesReturned;
@@ -214,6 +216,7 @@ class InferrerEngine implements interfaces.InferrerEngine {
214
216
return returnType;
215
217
}
216
218
219
+ @override
217
220
void updateSelectorInMember (MemberEntity owner, CallType callType,
218
221
ir.Node node, Selector selector, AbstractValue mask) {
219
222
KernelGlobalTypeInferenceElementData data = dataOfMember (owner);
@@ -755,6 +758,7 @@ class InferrerEngine implements interfaces.InferrerEngine {
755
758
/// Update the inputs to parameters in the graph. [remove] tells whether
756
759
/// inputs must be added or removed. If [init] is false, parameters are
757
760
/// added to the work queue.
761
+ @override
758
762
void updateParameterInputs (TypeInformation caller, MemberEntity callee,
759
763
ArgumentsTypes arguments, Selector selector,
760
764
{bool remove, bool addToQueue = true }) {
@@ -846,6 +850,7 @@ class InferrerEngine implements interfaces.InferrerEngine {
846
850
///
847
851
/// Invariant: After graph construction, no [PlaceholderTypeInformation] nodes
848
852
/// should be present and a default type for each parameter should exist.
853
+ @override
849
854
TypeInformation getDefaultTypeOfParameter (Local parameter) {
850
855
return _defaultTypeOfParameter.putIfAbsent (parameter, () {
851
856
return PlaceholderTypeInformation (
@@ -1093,6 +1098,7 @@ class InferrerEngine implements interfaces.InferrerEngine {
1093
1098
}
1094
1099
1095
1100
/// Returns the type of [element] when being called with [selector] .
1101
+ @override
1096
1102
TypeInformation typeOfMemberWithSelector (
1097
1103
MemberEntity element, Selector selector) {
1098
1104
if (element.name == Identifiers .noSuchMethod_ &&
@@ -1176,6 +1182,7 @@ class InferrerEngine implements interfaces.InferrerEngine {
1176
1182
///
1177
1183
/// One category of elements that do not apply is runtime helpers that the
1178
1184
/// backend calls, but the optimizations don't see those calls.
1185
+ @override
1179
1186
bool canFieldBeUsedForGlobalOptimizations (FieldEntity element) {
1180
1187
if (closedWorld.backendUsage.isFieldUsedByBackend (element)) {
1181
1188
return false ;
@@ -1191,12 +1198,14 @@ class InferrerEngine implements interfaces.InferrerEngine {
1191
1198
///
1192
1199
/// One category of elements that do not apply is runtime helpers that the
1193
1200
/// backend calls, but the optimizations don't see those calls.
1201
+ @override
1194
1202
bool canFunctionParametersBeUsedForGlobalOptimizations (
1195
1203
FunctionEntity function) {
1196
1204
return ! closedWorld.backendUsage.isFunctionUsedByBackend (function);
1197
1205
}
1198
1206
1199
1207
/// Returns `true` if inference of parameter types is disabled for [member] .
1208
+ @override
1200
1209
bool assumeDynamic (MemberEntity member) {
1201
1210
return closedWorld.annotationsData.hasAssumeDynamic (member);
1202
1211
}
0 commit comments