Index: pkg/compiler/lib/src/resolution/access_semantics.dart |
diff --git a/pkg/compiler/lib/src/resolution/access_semantics.dart b/pkg/compiler/lib/src/resolution/access_semantics.dart |
index 17ec4adabc49af4aee3af3b32485884feadcf0a1..2c741b3454b68287af8f4cc527e0370e25051980 100644 |
--- a/pkg/compiler/lib/src/resolution/access_semantics.dart |
+++ b/pkg/compiler/lib/src/resolution/access_semantics.dart |
@@ -17,6 +17,10 @@ import '../dart_types.dart'; |
/// Enum representing the different kinds of destinations which a property |
/// access or method or function invocation might refer to. |
enum AccessKind { |
+ /// The destination of the conditional access is an instance method, property, |
+ /// or field of a class, and thus must be determined dynamically. |
+ CONDITIONAL_DYNAMIC_PROPERTY, |
+ |
/// The destination of the access is an instance method, property, or field |
/// of a class, and thus must be determined dynamically. |
DYNAMIC_PROPERTY, |
@@ -256,6 +260,9 @@ class DynamicAccess extends AccessSemantics { |
DynamicAccess.dynamicProperty(this.target) |
: super._(AccessKind.DYNAMIC_PROPERTY); |
+ |
+ DynamicAccess.ifNotNullProperty(this.target) |
+ : super._(AccessKind.CONDITIONAL_DYNAMIC_PROPERTY); |
} |
class ConstantAccess extends AccessSemantics { |