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

Unified Diff: lib/kernel_visitor.dart

Issue 2116793002: Work around for private names in mixin applications. (Closed) Base URL: git@github.com:dart-lang/rasta.git@master
Patch Set: Rebased on CL 2201763003. Created 4 years, 5 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/kernel_visitor.dart
diff --git a/lib/kernel_visitor.dart b/lib/kernel_visitor.dart
index 7df0e67180c744b894fbe719a65573e795a31d7b..a4d5ee58a4c69ca0f893a8d4d577d182804b0021 100644
--- a/lib/kernel_visitor.dart
+++ b/lib/kernel_visitor.dart
@@ -307,6 +307,15 @@ class KernelVisitor extends Object
return kernel.typeToIr(type);
}
+ // TODO(ahe): Hack. Fix dart2js instead.
+ ir.Name nameToIrName(Name name) {
+ if (name.isPrivate) {
+ assert(
kasperl 2016/08/02 06:17:44 Maybe assert(!name.isPrivate || ...) ?
ahe 2016/08/02 11:09:10 Done.
+ name.library.implementation == currentElement.library.implementation);
+ }
+ return kernel.irName(name.text, currentElement);
+ }
+
List<ir.DartType> computeTypesFromTypes(NodeList nodes, {int expected}) {
if (expected == null) {
throw "[expected] is null";
@@ -337,7 +346,7 @@ class KernelVisitor extends Object
Selector selector,
ir.Arguments arguments) {
return new ir.MethodInvocation(
- receiver, kernel.nameToIrName(selector.memberName), arguments);
+ receiver, nameToIrName(selector.memberName), arguments);
}
ir.MethodInvocation buildCall(
@@ -1291,7 +1300,7 @@ class KernelVisitor extends Object
Name name,
_) {
return new ir.PropertyGet(
- visitForValue(receiver), kernel.nameToIrName(name));
+ visitForValue(receiver), nameToIrName(name));
}
@override
@@ -1315,7 +1324,7 @@ class KernelVisitor extends Object
ir.Expression receiverNode = receiver == null
? new ir.ThisExpression() : visitForValue(receiver);
return buildCompound(
- PropertyAccessor.make(receiverNode, kernel.nameToIrName(name)), rhs);
+ PropertyAccessor.make(receiverNode, nameToIrName(name)), rhs);
}
@override
@@ -1327,7 +1336,7 @@ class KernelVisitor extends Object
_) {
ir.Expression value = visitForValue(rhs);
return new ir.PropertySet(
- visitForValue(receiver), kernel.nameToIrName(name), value);
+ visitForValue(receiver), nameToIrName(name), value);
}
@override
@@ -1337,7 +1346,7 @@ class KernelVisitor extends Object
Name name,
Node rhs,
_) {
- ir.Name irName = kernel.nameToIrName(name);
+ ir.Name irName = nameToIrName(name);
Accessor accessor = (receiver == null)
? new ThisPropertyAccessor(irName)
: PropertyAccessor.make(visitForValue(receiver), irName);
@@ -1577,7 +1586,7 @@ class KernelVisitor extends Object
Accessor buildNullAwarePropertyAccessor(Node receiver, Name name) {
return new NullAwarePropertyAccessor(
- visitForValue(receiver), kernel.nameToIrName(name));
+ visitForValue(receiver), nameToIrName(name));
}
@override
@@ -2724,7 +2733,7 @@ class KernelVisitor extends Object
}
Accessor buildThisPropertyAccessor(Name name) {
- return new ThisPropertyAccessor(kernel.nameToIrName(name));
+ return new ThisPropertyAccessor(nameToIrName(name));
}
@override

Powered by Google App Engine
This is Rietveld 408576698