Index: pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart |
diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart |
index 18c323eef24d3e045060bc3848e792cca0a8051a..32974971161c87d9dd51d66ebb195a8843a92a00 100644 |
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart |
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart |
@@ -1085,13 +1085,17 @@ abstract class IrBuilder { |
/// Create a read access of the static [field]. |
ir.Primitive buildStaticFieldGet(FieldElement field, |
{SourceInformation sourceInformation}) { |
- return addPrimitive(new ir.GetStatic(field, sourceInformation)); |
+ Selector selector = new Selector.getter(field.name, field.library); |
+ // TODO(karlklose,sigurdm): build different nodes for getters. |
+ return _buildInvokeStatic( |
+ field, selector, const <ir.Primitive>[], sourceInformation); |
} |
/// Create a getter invocation of the static [getter]. |
ir.Primitive buildStaticGetterGet(MethodElement getter, |
{SourceInformation sourceInformation}) { |
Selector selector = new Selector.getter(getter.name, getter.library); |
+ // TODO(karlklose,sigurdm): build different nodes for getters. |
return _buildInvokeStatic( |
getter, selector, const <ir.Primitive>[], sourceInformation); |
} |
@@ -1100,14 +1104,21 @@ abstract class IrBuilder { |
/// [function]. |
ir.Primitive buildStaticFunctionGet(MethodElement function, |
{SourceInformation sourceInformation}) { |
- return addPrimitive(new ir.GetStatic(function, sourceInformation)); |
+ Selector selector = |
+ new Selector.getter(function.name, function.library); |
+ // TODO(karlklose,sigurdm): build different nodes for getters. |
+ return _buildInvokeStatic( |
+ function, selector, const <ir.Primitive>[], sourceInformation); |
} |
/// Create a write access to the static [field] with the [value]. |
ir.Primitive buildStaticFieldSet(FieldElement field, |
ir.Primitive value, |
{SourceInformation sourceInformation}) { |
- add(new ir.SetStatic(field, value, sourceInformation)); |
+ Selector selector = new Selector.setter(field.name, field.library); |
+ // TODO(karlklose,sigurdm): build different nodes for setters. |
+ _buildInvokeStatic( |
+ field, selector, <ir.Primitive>[value], sourceInformation); |
return value; |
} |
@@ -1116,6 +1127,7 @@ abstract class IrBuilder { |
ir.Primitive value, |
{SourceInformation sourceInformation}) { |
Selector selector = new Selector.setter(setter.name, setter.library); |
+ // TODO(karlklose,sigurdm): build different nodes for setters. |
_buildInvokeStatic( |
setter, selector, <ir.Primitive>[value], sourceInformation); |
return value; |