| Index: pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart
|
| diff --git a/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart b/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart
|
| index 15dc292cb6ad4335e15cf8436cf80f7e054ccaeb..a9c283184802fcba3a8755457a2472b3dd16263e 100644
|
| --- a/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart
|
| +++ b/pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart
|
| @@ -699,12 +699,16 @@ class Builder implements cps_ir.Visitor/*<NodeCallback|Node>*/ {
|
| }
|
| }
|
|
|
| - visitNullCheck(cps_ir.NullCheck node) => (Statement next) {
|
| - return new NullCheck(
|
| + visitReceiverCheck(cps_ir.ReceiverCheck node) => (Statement next) {
|
| + // The CPS IR uses 'isNullCheck' because the semantics are important.
|
| + // In the Tree IR, syntax is more important, so the receiver check uses
|
| + // "useInvoke" to denote if an invocation should be emitted.
|
| + return new ReceiverCheck(
|
| condition: getVariableUseOrNull(node.condition),
|
| value: getVariableUse(node.value),
|
| selector: node.selector,
|
| useSelector: node.useSelector,
|
| + useInvoke: !node.isNullCheck,
|
| next: next,
|
| sourceInformation: node.sourceInformation);
|
| };
|
|
|