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

Unified Diff: lib/compiler/implementation/enqueue.dart

Issue 10825337: Add name and library to selectors. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Merge from master. Created 8 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 side-by-side diff with in-line comments
Download patch
Index: lib/compiler/implementation/enqueue.dart
diff --git a/lib/compiler/implementation/enqueue.dart b/lib/compiler/implementation/enqueue.dart
index 3d83fbd736262a7a8cd7643a19769694be8560a8..e21ebce5fff3fa9346132d6977ae7320d96ef2ec 100644
--- a/lib/compiler/implementation/enqueue.dart
+++ b/lib/compiler/implementation/enqueue.dart
@@ -155,8 +155,13 @@ class Enqueuer {
Set<Selector> invokedSelectors = universe.invokedNames[name];
if (invokedSelectors != null) {
for (Selector selector in invokedSelectors) {
+ Selector call = new Selector.call(
+ compiler.namer.CLOSURE_INVOCATION_NAME,
+ selector.library, // TODO(kasperl): Use "default" library?
+ selector.argumentCount,
+ selector.namedArguments);
registerDynamicInvocation(compiler.namer.CLOSURE_INVOCATION_NAME,
- selector);
+ call);
}
}
}
@@ -227,6 +232,10 @@ class Enqueuer {
void registerNewSelector(SourceString name,
Selector selector,
Map<SourceString, Set<Selector>> selectorsMap) {
+ if (name != selector.name) {
+ String message = "$name != ${selector.name} (${selector.kind})";
+ compiler.internalError("Wrong selector name: $message.");
ahe 2012/08/15 07:37:59 Style-wise, I think I'd prefer: compiler.internal
+ }
Set<Selector> selectors =
selectorsMap.putIfAbsent(name, () => new Set<Selector>());
if (!selectors.contains(selector)) {
@@ -301,18 +310,24 @@ class Enqueuer {
registerInvokedSetter(methodName, selector);
}
- void registerFieldGetter(SourceString getterName, Type type) {
+ void registerFieldGetter(SourceString getterName,
+ LibraryElement library,
+ Type type) {
task.measure(() {
+ Selector getter = new Selector.getter(getterName, library);
registerNewSelector(getterName,
- new TypedSelector(type, Selector.GETTER),
+ new TypedSelector(type, getter),
universe.fieldGetters);
});
}
- void registerFieldSetter(SourceString setterName, Type type) {
+ void registerFieldSetter(SourceString setterName,
+ LibraryElement library,
+ Type type) {
task.measure(() {
+ Selector setter = new Selector.setter(setterName, library);
registerNewSelector(setterName,
- new TypedSelector(type, Selector.SETTER),
+ new TypedSelector(type, setter),
universe.fieldSetters);
});
}

Powered by Google App Engine
This is Rietveld 408576698