Skip to content

Commit 9fb192b

Browse files
committed
Revert "Split TypedSelector into Selector and TypeMask."
This reverts commit fc42c0e. [email protected] Review URL: https://codereview.chromium.org//1182053010.
1 parent 40ed0da commit 9fb192b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+741
-1198
lines changed

pkg/compiler/lib/src/compiler.dart

+8-7
Original file line numberDiff line numberDiff line change
@@ -93,17 +93,17 @@ class CodegenRegistry extends Registry {
9393
world.registerStaticUse(element);
9494
}
9595

96-
void registerDynamicInvocation(UniverseSelector selector) {
96+
void registerDynamicInvocation(Selector selector) {
9797
world.registerDynamicInvocation(selector);
9898
compiler.dumpInfoTask.elementUsesSelector(currentElement, selector);
9999
}
100100

101-
void registerDynamicSetter(UniverseSelector selector) {
101+
void registerDynamicSetter(Selector selector) {
102102
world.registerDynamicSetter(selector);
103103
compiler.dumpInfoTask.elementUsesSelector(currentElement, selector);
104104
}
105105

106-
void registerDynamicGetter(UniverseSelector selector) {
106+
void registerDynamicGetter(Selector selector) {
107107
world.registerDynamicGetter(selector);
108108
compiler.dumpInfoTask.elementUsesSelector(currentElement, selector);
109109
}
@@ -144,7 +144,7 @@ class CodegenRegistry extends Registry {
144144
}
145145

146146
void registerSelectorUse(Selector selector) {
147-
world.registerSelectorUse(new UniverseSelector(selector, null));
147+
world.registerSelectorUse(selector);
148148
}
149149

150150
void registerConstSymbol(String name) {
@@ -239,11 +239,11 @@ abstract class Registry {
239239

240240
bool get isForResolution;
241241

242-
void registerDynamicInvocation(UniverseSelector selector);
242+
void registerDynamicInvocation(Selector selector);
243243

244-
void registerDynamicGetter(UniverseSelector selector);
244+
void registerDynamicGetter(Selector selector);
245245

246-
void registerDynamicSetter(UniverseSelector selector);
246+
void registerDynamicSetter(Selector selector);
247247

248248
void registerStaticInvocation(Element element);
249249

@@ -1494,6 +1494,7 @@ abstract class Compiler implements DiagnosticListener {
14941494
// suitably maintained static reference to the current compiler.
14951495
StringToken.canonicalizedSubstrings.clear();
14961496
Selector.canonicalizedValues.clear();
1497+
world.canonicalizedValues.clear();
14971498

14981499
assert(uri != null || analyzeOnly || hasIncrementalSupport);
14991500
return new Future.sync(() {

pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart

+10-30
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import '../dart2jslib.dart';
1313
import '../elements/elements.dart';
1414
import '../io/source_information.dart';
1515
import '../tree/tree.dart' as ast;
16-
import '../types/types.dart' show TypeMask;
1716
import '../closure.dart' hide ClosureScope;
1817
import '../universe/universe.dart' show SelectorKind;
1918
import 'cps_ir_nodes.dart' as ir;
@@ -654,22 +653,20 @@ abstract class IrBuilder {
654653

655654
ir.Primitive _buildInvokeDynamic(ir.Primitive receiver,
656655
Selector selector,
657-
TypeMask mask,
658656
List<ir.Primitive> arguments,
659657
{SourceInformation sourceInformation}) {
660658
assert(isOpen);
661659
return _continueWithExpression(
662-
(k) => new ir.InvokeMethod(receiver, selector, mask, arguments, k,
660+
(k) => new ir.InvokeMethod(receiver, selector, arguments, k,
663661
sourceInformation: sourceInformation));
664662
}
665663

666664
ir.Primitive _buildInvokeCall(ir.Primitive target,
667665
CallStructure callStructure,
668-
TypeMask mask,
669666
List<ir.Definition> arguments,
670667
{SourceInformation sourceInformation}) {
671668
Selector selector = callStructure.callSelector;
672-
return _buildInvokeDynamic(target, selector, mask, arguments,
669+
return _buildInvokeDynamic(target, selector, arguments,
673670
sourceInformation: sourceInformation);
674671
}
675672

@@ -924,9 +921,8 @@ abstract class IrBuilder {
924921
/// defined by [arguments].
925922
ir.Primitive buildDynamicInvocation(ir.Primitive receiver,
926923
Selector selector,
927-
TypeMask mask,
928924
List<ir.Primitive> arguments) {
929-
return _buildInvokeDynamic(receiver, selector, mask, arguments);
925+
return _buildInvokeDynamic(receiver, selector, arguments);
930926
}
931927

932928
/// Create an if-null expression. This is equivalent to a conditional
@@ -944,33 +940,28 @@ abstract class IrBuilder {
944940

945941
/// Create a dynamic getter invocation on [receiver] where the getter name is
946942
/// defined by [selector].
947-
ir.Primitive buildDynamicGet(ir.Primitive receiver,
948-
Selector selector,
949-
TypeMask mask) {
943+
ir.Primitive buildDynamicGet(ir.Primitive receiver, Selector selector) {
950944
assert(selector.isGetter);
951-
return _buildInvokeDynamic(
952-
receiver, selector, mask, const <ir.Primitive>[]);
945+
return _buildInvokeDynamic(receiver, selector, const <ir.Primitive>[]);
953946
}
954947

955948
/// Create a dynamic setter invocation on [receiver] where the setter name and
956949
/// argument are defined by [selector] and [value], respectively.
957950
ir.Primitive buildDynamicSet(ir.Primitive receiver,
958951
Selector selector,
959-
TypeMask mask,
960952
ir.Primitive value) {
961953
assert(selector.isSetter);
962-
_buildInvokeDynamic(receiver, selector, mask, <ir.Primitive>[value]);
954+
_buildInvokeDynamic(receiver, selector, <ir.Primitive>[value]);
963955
return value;
964956
}
965957

966958
/// Create a dynamic index set invocation on [receiver] with the provided
967959
/// [index] and [value].
968960
ir.Primitive buildDynamicIndexSet(ir.Primitive receiver,
969-
TypeMask mask,
970961
ir.Primitive index,
971962
ir.Primitive value) {
972963
_buildInvokeDynamic(
973-
receiver, new Selector.indexSet(), mask, <ir.Primitive>[index, value]);
964+
receiver, new Selector.indexSet(), <ir.Primitive>[index, value]);
974965
return value;
975966
}
976967

@@ -1104,13 +1095,12 @@ abstract class IrBuilder {
11041095

11051096
/// Create an invocation of the `call` method of [functionExpression], where
11061097
/// the structure of arguments are given by [callStructure].
1107-
// TODO(johnniwinther): This should take a [TypeMask].
11081098
ir.Primitive buildCallInvocation(
11091099
ir.Primitive functionExpression,
11101100
CallStructure callStructure,
11111101
List<ir.Definition> arguments,
11121102
{SourceInformation sourceInformation}) {
1113-
return _buildInvokeCall(functionExpression, callStructure, null, arguments,
1103+
return _buildInvokeCall(functionExpression, callStructure, arguments,
11141104
sourceInformation: sourceInformation);
11151105
}
11161106

@@ -1361,10 +1351,6 @@ abstract class IrBuilder {
13611351
SubbuildFunction buildVariableDeclaration,
13621352
Element variableElement,
13631353
Selector variableSelector,
1364-
TypeMask variableMask,
1365-
TypeMask currentMask,
1366-
TypeMask iteratorMask,
1367-
TypeMask moveNextMask,
13681354
SubbuildFunction buildBody,
13691355
JumpTarget target,
13701356
ClosureScope closureScope}) {
@@ -1392,7 +1378,6 @@ abstract class IrBuilder {
13921378
add(new ir.LetCont(iteratorInvoked,
13931379
new ir.InvokeMethod(expressionReceiver,
13941380
new Selector.getter("iterator", null),
1395-
iteratorMask,
13961381
emptyArguments,
13971382
iteratorInvoked)));
13981383

@@ -1409,7 +1394,6 @@ abstract class IrBuilder {
14091394
add(new ir.LetCont(moveNextInvoked,
14101395
new ir.InvokeMethod(iterator,
14111396
new Selector.call("moveNext", null, 0),
1412-
moveNextMask,
14131397
emptyArguments,
14141398
moveNextInvoked)));
14151399

@@ -1429,10 +1413,7 @@ abstract class IrBuilder {
14291413
ir.Parameter currentValue = new ir.Parameter(null);
14301414
ir.Continuation currentInvoked = new ir.Continuation([currentValue]);
14311415
bodyBuilder.add(new ir.LetCont(currentInvoked,
1432-
new ir.InvokeMethod(
1433-
iterator,
1434-
new Selector.getter("current", null),
1435-
currentMask,
1416+
new ir.InvokeMethod(iterator, new Selector.getter("current", null),
14361417
emptyArguments, currentInvoked)));
14371418
// TODO(sra): Does this cover all cases? The general setter case include
14381419
// super.
@@ -1452,8 +1433,7 @@ abstract class IrBuilder {
14521433
} else {
14531434
ir.Primitive receiver = bodyBuilder.buildThis();
14541435
assert(receiver != null);
1455-
bodyBuilder.buildDynamicSet(
1456-
receiver, variableSelector, variableMask, currentValue);
1436+
bodyBuilder.buildDynamicSet(receiver, variableSelector, currentValue);
14571437
}
14581438

14591439
// Translate the body in the hole in the delimited term above, and add

0 commit comments

Comments
 (0)