| Index: pkg/compiler/lib/src/elements/elements.dart
|
| diff --git a/pkg/compiler/lib/src/elements/elements.dart b/pkg/compiler/lib/src/elements/elements.dart
|
| index 6dab617092caeaa3eedb7790dd9680afcd9fd7cd..87d13555fb5eb4d3389b963ea327c4c2ad3a24df 100644
|
| --- a/pkg/compiler/lib/src/elements/elements.dart
|
| +++ b/pkg/compiler/lib/src/elements/elements.dart
|
| @@ -532,7 +532,9 @@ class Elements {
|
| static bool isInstanceSend(Send send, TreeElements elements) {
|
| Element element = elements[send];
|
| if (element == null) return !isClosureSend(send, element);
|
| - return isInstanceMethod(element) || isInstanceField(element);
|
| + return isInstanceMethod(element) ||
|
| + isInstanceField(element) ||
|
| + send.isConditional;
|
| }
|
|
|
| static bool isClosureSend(Send send, Element element) {
|
| @@ -640,7 +642,7 @@ class Elements {
|
| static String constructOperatorNameOrNull(String op, bool isUnary) {
|
| if (isMinusOperator(op)) {
|
| return isUnary ? 'unary-' : op;
|
| - } else if (isUserDefinableOperator(op)) {
|
| + } else if (isUserDefinableOperator(op) || op == '??') {
|
| return op;
|
| } else {
|
| return null;
|
| @@ -666,6 +668,7 @@ class Elements {
|
| if (identical(op, '&=')) return '&';
|
| if (identical(op, '^=')) return '^';
|
| if (identical(op, '|=')) return '|';
|
| + if (identical(op, '??=')) return '??';
|
|
|
| return null;
|
| }
|
|
|