| Index: pkg/compiler/lib/src/resolution/send_structure.dart
|
| diff --git a/pkg/compiler/lib/src/resolution/send_structure.dart b/pkg/compiler/lib/src/resolution/send_structure.dart
|
| index cc4a9ab079d5fcc48c7e5d581a9d91fd22c072d1..796e83bfe9b840105a1b60d984117e9be2b4d428 100644
|
| --- a/pkg/compiler/lib/src/resolution/send_structure.dart
|
| +++ b/pkg/compiler/lib/src/resolution/send_structure.dart
|
| @@ -175,14 +175,15 @@ class InvokeStructure<R, A> implements SendStructure<R, A> {
|
|
|
| R dispatch(SemanticSendVisitor<R, A> visitor, Send node, A arg) {
|
| switch (semantics.kind) {
|
| - case AccessKind.CONDITIONAL_DYNAMIC_PROPERTY:
|
| - return visitor.visitIfNotNullDynamicPropertyInvoke(
|
| - node,
|
| - node.receiver,
|
| - node.argumentsNode,
|
| - selector,
|
| - arg);
|
| case AccessKind.DYNAMIC_PROPERTY:
|
| + if (node.isConditional) {
|
| + return visitor.visitIfNotNullDynamicPropertyInvoke(
|
| + node,
|
| + node.receiver,
|
| + node.argumentsNode,
|
| + selector,
|
| + arg);
|
| + }
|
| return visitor.visitDynamicPropertyInvoke(
|
| node,
|
| node.receiver,
|
| @@ -452,13 +453,14 @@ class GetStructure<R, A> implements SendStructure<R, A> {
|
|
|
| R dispatch(SemanticSendVisitor<R, A> visitor, Send node, A arg) {
|
| switch (semantics.kind) {
|
| - case AccessKind.CONDITIONAL_DYNAMIC_PROPERTY:
|
| - return visitor.visitIfNotNullDynamicPropertyGet(
|
| - node,
|
| - node.receiver,
|
| - selector,
|
| - arg);
|
| case AccessKind.DYNAMIC_PROPERTY:
|
| + if (node.isConditional) {
|
| + return visitor.visitIfNotNullDynamicPropertyGet(
|
| + node,
|
| + node.receiver,
|
| + selector,
|
| + arg);
|
| + }
|
| return visitor.visitDynamicPropertyGet(
|
| node,
|
| node.receiver,
|
| @@ -612,14 +614,15 @@ class SetStructure<R, A> implements SendStructure<R, A> {
|
|
|
| R dispatch(SemanticSendVisitor<R, A> visitor, Send node, A arg) {
|
| switch (semantics.kind) {
|
| - case AccessKind.CONDITIONAL_DYNAMIC_PROPERTY:
|
| - return visitor.visitIfNotNullDynamicPropertySet(
|
| - node,
|
| - node.receiver,
|
| - selector,
|
| - node.arguments.single,
|
| - arg);
|
| case AccessKind.DYNAMIC_PROPERTY:
|
| + if (node.isConditional) {
|
| + return visitor.visitIfNotNullDynamicPropertySet(
|
| + node,
|
| + node.receiver,
|
| + selector,
|
| + node.arguments.single,
|
| + arg);
|
| + }
|
| return visitor.visitDynamicPropertySet(
|
| node,
|
| node.receiver,
|
| @@ -1275,16 +1278,17 @@ class CompoundStructure<R, A> implements SendStructure<R, A> {
|
|
|
| R dispatch(SemanticSendVisitor<R, A> visitor, Send node, A arg) {
|
| switch (semantics.kind) {
|
| - case AccessKind.CONDITIONAL_DYNAMIC_PROPERTY:
|
| - return visitor.visitIfNotNullDynamicPropertyCompound(
|
| - node,
|
| - node.receiver,
|
| - operator,
|
| - node.arguments.single,
|
| - getterSelector,
|
| - setterSelector,
|
| - arg);
|
| case AccessKind.DYNAMIC_PROPERTY:
|
| + if (node.isConditional) {
|
| + return visitor.visitIfNotNullDynamicPropertyCompound(
|
| + node,
|
| + node.receiver,
|
| + operator,
|
| + node.arguments.single,
|
| + getterSelector,
|
| + setterSelector,
|
| + arg);
|
| + }
|
| return visitor.visitDynamicPropertyCompound(
|
| node,
|
| node.receiver,
|
| @@ -1701,15 +1705,16 @@ class PrefixStructure<R, A> implements SendStructure<R, A> {
|
|
|
| R dispatch(SemanticSendVisitor<R, A> visitor, Send node, A arg) {
|
| switch (semantics.kind) {
|
| - case AccessKind.CONDITIONAL_DYNAMIC_PROPERTY:
|
| - return visitor.visitIfNotNullDynamicPropertyPrefix(
|
| - node,
|
| - node.receiver,
|
| - operator,
|
| - getterSelector,
|
| - setterSelector,
|
| - arg);
|
| case AccessKind.DYNAMIC_PROPERTY:
|
| + if (node.isConditional) {
|
| + return visitor.visitIfNotNullDynamicPropertyPrefix(
|
| + node,
|
| + node.receiver,
|
| + operator,
|
| + getterSelector,
|
| + setterSelector,
|
| + arg);
|
| + }
|
| return visitor.visitDynamicPropertyPrefix(
|
| node,
|
| node.receiver,
|
| @@ -2017,15 +2022,16 @@ class PostfixStructure<R, A> implements SendStructure<R, A> {
|
|
|
| R dispatch(SemanticSendVisitor<R, A> visitor, Send node, A arg) {
|
| switch (semantics.kind) {
|
| - case AccessKind.CONDITIONAL_DYNAMIC_PROPERTY:
|
| - return visitor.visitIfNotNullDynamicPropertyPostfix(
|
| - node,
|
| - node.receiver,
|
| - operator,
|
| - getterSelector,
|
| - setterSelector,
|
| - arg);
|
| case AccessKind.DYNAMIC_PROPERTY:
|
| + if (node.isConditional) {
|
| + return visitor.visitIfNotNullDynamicPropertyPostfix(
|
| + node,
|
| + node.receiver,
|
| + operator,
|
| + getterSelector,
|
| + setterSelector,
|
| + arg);
|
| + }
|
| return visitor.visitDynamicPropertyPostfix(
|
| node,
|
| node.receiver,
|
|
|