Skip to content

Commit d5abb2a

Browse files
natebiggsCommit Bot
authored and
Commit Bot
committed
[dart2js] Migrate locals_handler type_graph_node and type_system to nnbd
Change-Id: I77f66764943bcdf204744da6bcc1932381895c5d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/249964 Commit-Queue: Nate Biggs <[email protected]> Reviewed-by: Joshua Litt <[email protected]>
1 parent e7deece commit d5abb2a

File tree

6 files changed

+392
-445
lines changed

6 files changed

+392
-445
lines changed

pkg/compiler/lib/src/inferrer/engine.dart

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ class InferrerEngine implements interfaces.InferrerEngine {
6565
@override
6666
final JsClosedWorld closedWorld;
6767

68+
@override
6869
final TypeSystem types;
6970
final Map<ir.TreeNode, TypeInformation> concreteTypes = {};
7071
final GlobalLocalsMap globalLocalsMap;
@@ -174,6 +175,7 @@ class InferrerEngine implements interfaces.InferrerEngine {
174175

175176
/// Returns the type for [nativeBehavior]. See documentation on
176177
/// [NativeBehavior].
178+
@override
177179
TypeInformation typeOfNativeBehavior(NativeBehavior nativeBehavior) {
178180
if (nativeBehavior == null) return types.dynamicType;
179181
List<Object> typesReturned = nativeBehavior.typesReturned;
@@ -214,6 +216,7 @@ class InferrerEngine implements interfaces.InferrerEngine {
214216
return returnType;
215217
}
216218

219+
@override
217220
void updateSelectorInMember(MemberEntity owner, CallType callType,
218221
ir.Node node, Selector selector, AbstractValue mask) {
219222
KernelGlobalTypeInferenceElementData data = dataOfMember(owner);
@@ -755,6 +758,7 @@ class InferrerEngine implements interfaces.InferrerEngine {
755758
/// Update the inputs to parameters in the graph. [remove] tells whether
756759
/// inputs must be added or removed. If [init] is false, parameters are
757760
/// added to the work queue.
761+
@override
758762
void updateParameterInputs(TypeInformation caller, MemberEntity callee,
759763
ArgumentsTypes arguments, Selector selector,
760764
{bool remove, bool addToQueue = true}) {
@@ -846,6 +850,7 @@ class InferrerEngine implements interfaces.InferrerEngine {
846850
///
847851
/// Invariant: After graph construction, no [PlaceholderTypeInformation] nodes
848852
/// should be present and a default type for each parameter should exist.
853+
@override
849854
TypeInformation getDefaultTypeOfParameter(Local parameter) {
850855
return _defaultTypeOfParameter.putIfAbsent(parameter, () {
851856
return PlaceholderTypeInformation(
@@ -1093,6 +1098,7 @@ class InferrerEngine implements interfaces.InferrerEngine {
10931098
}
10941099

10951100
/// Returns the type of [element] when being called with [selector].
1101+
@override
10961102
TypeInformation typeOfMemberWithSelector(
10971103
MemberEntity element, Selector selector) {
10981104
if (element.name == Identifiers.noSuchMethod_ &&
@@ -1176,6 +1182,7 @@ class InferrerEngine implements interfaces.InferrerEngine {
11761182
///
11771183
/// One category of elements that do not apply is runtime helpers that the
11781184
/// backend calls, but the optimizations don't see those calls.
1185+
@override
11791186
bool canFieldBeUsedForGlobalOptimizations(FieldEntity element) {
11801187
if (closedWorld.backendUsage.isFieldUsedByBackend(element)) {
11811188
return false;
@@ -1191,12 +1198,14 @@ class InferrerEngine implements interfaces.InferrerEngine {
11911198
///
11921199
/// One category of elements that do not apply is runtime helpers that the
11931200
/// backend calls, but the optimizations don't see those calls.
1201+
@override
11941202
bool canFunctionParametersBeUsedForGlobalOptimizations(
11951203
FunctionEntity function) {
11961204
return !closedWorld.backendUsage.isFunctionUsedByBackend(function);
11971205
}
11981206

11991207
/// Returns `true` if inference of parameter types is disabled for [member].
1208+
@override
12001209
bool assumeDynamic(MemberEntity member) {
12011210
return closedWorld.annotationsData.hasAssumeDynamic(member);
12021211
}

pkg/compiler/lib/src/inferrer/engine_interfaces.dart

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,42 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5+
import 'package:kernel/ast.dart' as ir;
6+
57
import '../common/elements.dart';
68
import '../elements/entities.dart';
79
import '../js_backend/inferred_data.dart';
810
import '../js_backend/no_such_method_registry_interfaces.dart';
11+
import '../native/behavior.dart';
912
import '../universe/selector.dart';
1013
import '../world_interfaces.dart';
1114
import 'abstract_value_domain.dart';
15+
import 'locals_handler.dart';
16+
import 'type_graph_nodes.dart';
17+
import 'type_system.dart';
1218

1319
abstract class InferrerEngine {
1420
AbstractValueDomain get abstractValueDomain;
21+
TypeSystem get types;
1522
JClosedWorld get closedWorld;
1623
CommonElements get commonElements;
1724
InferredDataBuilder get inferredDataBuilder;
1825
FunctionEntity get mainElement;
1926
NoSuchMethodData get noSuchMethodData;
2027

28+
TypeInformation typeOfNativeBehavior(NativeBehavior nativeBehavior);
29+
bool canFieldBeUsedForGlobalOptimizations(FieldEntity element);
30+
bool assumeDynamic(MemberEntity member);
31+
TypeInformation getDefaultTypeOfParameter(Local parameter);
32+
bool canFunctionParametersBeUsedForGlobalOptimizations(
33+
FunctionEntity function);
34+
TypeInformation typeOfMemberWithSelector(
35+
MemberEntity element, Selector? selector);
36+
void updateSelectorInMember(MemberEntity owner, CallType callType,
37+
ir.Node? node, Selector? selector, AbstractValue? mask);
38+
void updateParameterInputs(TypeInformation caller, MemberEntity callee,
39+
ArgumentsTypes? arguments, Selector? selector,
40+
{required bool remove, bool addToQueue = true});
2141
bool returnsListElementType(Selector selector, AbstractValue mask);
2242
bool returnsMapValueType(Selector selector, AbstractValue mask);
2343
}

0 commit comments

Comments
 (0)