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

Unified Diff: pkg/compiler/lib/src/js_emitter/parameter_stub_generator.dart

Issue 1182053010: Revert "Split TypedSelector into Selector and TypeMask." (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/js_emitter/parameter_stub_generator.dart
diff --git a/pkg/compiler/lib/src/js_emitter/parameter_stub_generator.dart b/pkg/compiler/lib/src/js_emitter/parameter_stub_generator.dart
index 9f265cfe72c9319a909376b511839f7b7bb67588..6414d8091a5d13e2b60043719e4abb9d512a3a15 100644
--- a/pkg/compiler/lib/src/js_emitter/parameter_stub_generator.dart
+++ b/pkg/compiler/lib/src/js_emitter/parameter_stub_generator.dart
@@ -200,28 +200,28 @@ class ParameterStubGenerator {
// The set of selectors that apply to `member`. For example, for
// a member `foo(x, [y])` the following selectors may apply:
// `foo(x)`, and `foo(x, y)`.
- Map<Selector, TypeMaskSet> selectors;
+ Set<Selector> selectors;
// The set of selectors that apply to `member` if it's name was `call`.
// This happens when a member is torn off. In that case calls to the
// function use the name `call`, and we must be able to handle every
// `call` invocation that matches the signature. For example, for
// a member `foo(x, [y])` the following selectors would be possible
// call-selectors: `call(x)`, and `call(x, y)`.
- Map<Selector, TypeMaskSet> callSelectors;
+ Set<Selector> callSelectors;
// Only instance members (not static methods) need stubs.
if (member.isInstanceMember) {
- selectors = compiler.codegenWorld.invocationsByName(member.name);
+ selectors = compiler.codegenWorld.invokedNames[member.name];
}
if (canTearOff) {
String call = namer.closureInvocationSelectorName;
- callSelectors = compiler.codegenWorld.invocationsByName(call);
+ callSelectors = compiler.codegenWorld.invokedNames[call];
}
assert(emptySelectorSet.isEmpty);
- if (selectors == null) selectors = const <Selector, TypeMaskSet>{};
- if (callSelectors == null) callSelectors = const <Selector, TypeMaskSet>{};
+ if (selectors == null) selectors = emptySelectorSet;
+ if (callSelectors == null) callSelectors = emptySelectorSet;
List<ParameterStubMethod> stubs = <ParameterStubMethod>[];
@@ -241,7 +241,7 @@ class ParameterStubGenerator {
// Start with the callSelectors since they imply the generation of the
// non-call version.
- for (Selector selector in callSelectors.keys) {
+ for (Selector selector in callSelectors) {
Selector renamedSelector = new Selector(
SelectorKind.CALL,
member.memberName,
@@ -250,7 +250,7 @@ class ParameterStubGenerator {
if (!renamedSelector.appliesUnnamed(member, compiler.world)) continue;
- if (untypedSelectors.add(renamedSelector)) {
+ if (untypedSelectors.add(renamedSelector.asUntyped)) {
ParameterStubMethod stub =
generateParameterStub(member, renamedSelector, selector);
if (stub != null) {
@@ -262,14 +262,11 @@ class ParameterStubGenerator {
// Now run through the actual member selectors (eg. `foo$2(x, y)` and not
// `call$2(x, y)`. Some of them have already been generated because of the
// call-selectors (and they are in the renamedCallSelectors set.
- for (Selector selector in selectors.keys) {
+ for (Selector selector in selectors) {
if (renamedCallSelectors.contains(selector)) continue;
if (!selector.appliesUnnamed(member, compiler.world)) continue;
- if (!selectors[selector].applies(member, selector, compiler.world)) {
- continue;
- }
- if (untypedSelectors.add(selector)) {
+ if (untypedSelectors.add(selector.asUntyped)) {
ParameterStubMethod stub =
generateParameterStub(member, selector, null);
if (stub != null) {
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/old_emitter/nsm_emitter.dart ('k') | pkg/compiler/lib/src/js_emitter/program_builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698