Index: pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart |
diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart |
index dc4007dcd0596b26f8e0f600bab3bbd8cee16d2a..ead14afc8955a6561b8b4c39ec0aa7533490f1ea 100644 |
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart |
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart |
@@ -6,6 +6,9 @@ library dart2js.ir_builder_task; |
import '../closure.dart' as closurelib; |
import '../closure.dart' hide ClosureScope; |
+import '../common/names.dart' show |
+ Names, |
+ Selectors; |
import '../common/tasks.dart' show |
CompilerTask; |
import '../compiler.dart' show |
@@ -1450,8 +1453,9 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive> |
: helper(); |
} |
- ir.Primitive buildLocalNoSuchSetter(Local local, ir.Primitive value) { |
- Selector selector = new Selector.setter(local.name, null); |
+ ir.Primitive buildLocalNoSuchSetter(LocalElement local, ir.Primitive value) { |
+ Selector selector = new Selector.setter( |
+ new Name(local.name, local.library, isSetter: true)); |
return buildStaticNoSuchMethod(selector, [value]); |
} |
@@ -1483,13 +1487,13 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive> |
ir.Primitive buildStaticNoSuchGetter(Element element) { |
return buildStaticNoSuchMethod( |
- new Selector.getter(element.name, element.library), |
+ new Selector.getter(new Name(element.name, element.library)), |
const <ir.Primitive>[]); |
} |
ir.Primitive buildStaticNoSuchSetter(Element element, ir.Primitive value) { |
return buildStaticNoSuchMethod( |
- new Selector.setter(element.name, element.library), |
+ new Selector.setter(new Name(element.name, element.library)), |
<ir.Primitive>[value]); |
} |
@@ -1535,7 +1539,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive> |
ir.Primitive buildSuperNoSuchGetter(Element element, TypeMask mask) { |
return buildInstanceNoSuchMethod( |
- new Selector.getter(element.name, element.library), |
+ new Selector.getter(new Name(element.name, element.library)), |
mask, |
const <ir.Primitive>[]); |
} |
@@ -1544,7 +1548,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive> |
TypeMask mask, |
ir.Primitive value) { |
return buildInstanceNoSuchMethod( |
- new Selector.setter(element.name, element.library), |
+ new Selector.setter(new Name(element.name, element.library)), |
mask, |
<ir.Primitive>[value]); |
} |
@@ -1878,7 +1882,8 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive> |
InterfaceType type = constant.type; |
ClassElement element = type.element; |
return buildStaticNoSuchMethod( |
- new Selector.setter(element.name, element.library), [visit(rhs)]); |
+ new Selector.setter(element.memberName), |
+ [visit(rhs)]); |
} |
@override |
@@ -1889,7 +1894,8 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive> |
TypedefType type = constant.type; |
TypedefElement element = type.element; |
return buildStaticNoSuchMethod( |
- new Selector.setter(element.name, element.library), [visit(rhs)]); |
+ new Selector.setter(element.memberName), |
+ [visit(rhs)]); |
} |
@override |
@@ -1898,7 +1904,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive> |
TypeVariableElement element, |
ast.Node rhs, _) { |
return buildStaticNoSuchMethod( |
- new Selector.setter(element.name, element.library), [visit(rhs)]); |
+ new Selector.setter(element.memberName), [visit(rhs)]); |
} |
@override |
@@ -1907,7 +1913,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive> |
ConstantExpression constant, |
ast.Node rhs, _) { |
return buildStaticNoSuchMethod( |
- new Selector.setter('dynamic', null), [visit(rhs)]); |
+ new Selector.setter(Names.dynamic_), [visit(rhs)]); |
} |
@override |
@@ -1927,7 +1933,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive> |
ast.Node rhs, _) { |
// TODO(asgerf): Include class name somehow for static class members? |
return buildStaticNoSuchMethod( |
- new Selector.setter(field.name, field.library), |
+ new Selector.setter(field.memberName), |
[visit(rhs)]); |
} |
@@ -1937,7 +1943,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive> |
FieldElement field, |
ast.Node rhs, _) { |
return buildInstanceNoSuchMethod( |
- new Selector.setter(field.name, field.library), |
+ new Selector.setter(field.memberName), |
elements.getTypeMask(node), |
[visit(rhs)]); |
} |
@@ -1948,7 +1954,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive> |
LocalElement local, |
ast.Node rhs, _) { |
return buildStaticNoSuchMethod( |
- new Selector.setter(local.name, null), |
+ new Selector.setter(new Name(local.name, local.library)), |
[visit(rhs)]); |
} |
@@ -1959,53 +1965,52 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive> |
ast.Node rhs, |
_) { |
return buildStaticNoSuchMethod( |
- new Selector.setter(function.name, function.library), |
+ new Selector.setter(function.memberName), |
[visit(rhs)]); |
} |
@override |
ir.Primitive handleStaticGetterSet( |
ast.SendSet node, |
- FunctionElement getter, |
+ GetterElement getter, |
ast.Node rhs, |
_) { |
return buildStaticNoSuchMethod( |
- new Selector.setter(getter.name, getter.library), |
+ new Selector.setter(getter.memberName), |
[visit(rhs)]); |
} |
@override |
ir.Primitive handleStaticSetterGet( |
ast.Send node, |
- FunctionElement setter, |
+ SetterElement setter, |
_) { |
return buildStaticNoSuchMethod( |
- new Selector.getter(setter.name, setter.library), |
+ new Selector.getter(setter.memberName), |
[]); |
} |
@override |
ir.Primitive handleStaticSetterInvoke( |
ast.Send node, |
- FunctionElement setter, |
+ SetterElement setter, |
ast.NodeList arguments, |
CallStructure callStructure, _) { |
// Translate as a method call. |
List<ir.Primitive> args = arguments.nodes.mapToList(visit); |
- Name name = new Name(setter.name, setter.library); |
return buildStaticNoSuchMethod( |
- new Selector(SelectorKind.CALL, name, callStructure), |
+ new Selector(SelectorKind.CALL, setter.memberName, callStructure), |
args); |
} |
@override |
ir.Primitive visitSuperGetterSet( |
ast.SendSet node, |
- FunctionElement getter, |
+ GetterElement getter, |
ast.Node rhs, |
_) { |
return buildInstanceNoSuchMethod( |
- new Selector.setter(getter.name, getter.library), |
+ new Selector.setter(getter.memberName), |
elements.getTypeMask(node), |
[visit(rhs)]); |
} |
@@ -2017,7 +2022,7 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive> |
ast.Node rhs, |
_) { |
return buildInstanceNoSuchMethod( |
- new Selector.setter(method.name, method.library), |
+ new Selector.setter(method.memberName), |
elements.getTypeMask(node), |
[visit(rhs)]); |
} |
@@ -2025,9 +2030,9 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive> |
@override |
ir.Primitive visitSuperSetterGet( |
ast.Send node, |
- FunctionElement setter, _) { |
+ SetterElement setter, _) { |
return buildInstanceNoSuchMethod( |
- new Selector.setter(setter.name, setter.library), |
+ new Selector.setter(setter.memberName), |
elements.getTypeMask(node), |
[]); |
} |
@@ -2035,14 +2040,13 @@ abstract class IrBuilderVisitor extends ast.Visitor<ir.Primitive> |
@override |
ir.Primitive visitSuperSetterInvoke( |
ast.Send node, |
- FunctionElement setter, |
+ SetterElement setter, |
ast.NodeList arguments, |
CallStructure callStructure, _) { |
List<ir.Primitive> args = |
translateDynamicArguments(arguments, callStructure); |
- Name name = new Name(setter.name, setter.library); |
return buildInstanceNoSuchMethod( |
- new Selector(SelectorKind.CALL, name, callStructure), |
+ new Selector(SelectorKind.CALL, setter.memberName, callStructure), |
elements.getTypeMask(node), |
args); |
} |
@@ -3090,7 +3094,7 @@ class JsIrBuilderVisitor extends IrBuilderVisitor { |
List<ir.Primitive> arguments) { |
return irBuilder.buildDynamicInvocation( |
irBuilder.buildThis(), |
- compiler.noSuchMethodSelector, |
+ Selectors.noSuchMethod_, |
mask, |
[irBuilder.buildInvocationMirror(selector, arguments)]); |
} |