| 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 a99db1f9756cd7204459e701bb4a00979f6e846f..0e1be6f2942efbcbc3a813aa84da49f734c57f5e 100644
|
| --- a/pkg/compiler/lib/src/resolution/access_semantics.dart
|
| +++ b/pkg/compiler/lib/src/resolution/access_semantics.dart
|
| @@ -27,18 +27,30 @@ enum AccessKind {
|
| /// an enclosing function or method.
|
| LOCAL_FUNCTION,
|
|
|
| - /// The destination of the access is a variable that is defined locally within
|
| - /// an enclosing function or method.
|
| + /// The destination of the access is a non-final variable that is defined
|
| + /// locally within an enclosing function or method.
|
| LOCAL_VARIABLE,
|
|
|
| - /// The destination of the access is a variable that is defined as a parameter
|
| - /// to an enclosing function or method.
|
| + /// The destination of the access is a final variable that is defined locally
|
| + /// within an enclosing function or method.
|
| + FINAL_LOCAL_VARIABLE,
|
| +
|
| + /// The destination of the access is a variable that is defined as a non-final
|
| + /// parameter to an enclosing function or method.
|
| PARAMETER,
|
|
|
| - /// The destination of the access is a field that is defined statically within
|
| - /// a class.
|
| + /// The destination of the access is a variable that is defined as a final
|
| + /// parameter to an enclosing function or method.
|
| + FINAL_PARAMETER,
|
| +
|
| + /// The destination of the access is a non-final field that is defined
|
| + /// statically within a class.
|
| STATIC_FIELD,
|
|
|
| + /// The destination of the access is a final field that is defined statically
|
| + /// within a class.
|
| + FINAL_STATIC_FIELD,
|
| +
|
| /// The destination of the access is a method that is defined statically
|
| /// within a class.
|
| STATIC_METHOD,
|
| @@ -51,10 +63,14 @@ enum AccessKind {
|
| /// statically within a class.
|
| STATIC_SETTER,
|
|
|
| - /// The destination of the access is a top level variable defined within a
|
| - /// library.
|
| + /// The destination of the access is a non-final top level variable defined
|
| + /// within a library.
|
| TOPLEVEL_FIELD,
|
|
|
| + /// The destination of the access is a final top level variable defined within
|
| + /// a library.
|
| + FINAL_TOPLEVEL_FIELD,
|
| +
|
| /// The destination of the access is a top level method defined within a
|
| /// library.
|
| TOPLEVEL_METHOD,
|
| @@ -91,10 +107,14 @@ enum AccessKind {
|
| /// of the enclosing class.
|
| THIS_PROPERTY,
|
|
|
| - /// The destination of the access is a field of the super class of the
|
| - /// enclosing class.
|
| + /// The destination of the access is a non-final field of the super class of
|
| + /// the enclosing class.
|
| SUPER_FIELD,
|
|
|
| + /// The destination of the access is a final field of the super class of the
|
| + /// enclosing class.
|
| + SUPER_FINAL_FIELD,
|
| +
|
| /// The destination of the access is a method of the super class of the
|
| /// enclosing class.
|
| SUPER_METHOD,
|
| @@ -122,16 +142,26 @@ enum AccessKind {
|
| }
|
|
|
| enum CompoundAccessKind {
|
| - /// Read from a static getter and write to static setter.
|
| + /// Read from a static getter and write to a static setter.
|
| STATIC_GETTER_SETTER,
|
| - /// Read from a static method (closurize) and write to static setter.
|
| + /// Read from a static method (closurize) and write to a static setter.
|
| STATIC_METHOD_SETTER,
|
|
|
| + /// Read from an unresolved static getter and write to a static setter.
|
| + UNRESOLVED_STATIC_GETTER,
|
| + /// Read from a static getter and write to an unresolved static setter.
|
| + UNRESOLVED_STATIC_SETTER,
|
| +
|
| /// Read from a top level getter and write to a top level setter.
|
| TOPLEVEL_GETTER_SETTER,
|
| /// Read from a top level method (closurize) and write to top level setter.
|
| TOPLEVEL_METHOD_SETTER,
|
|
|
| + /// Read from an unresolved top level getter and write to a top level setter.
|
| + UNRESOLVED_TOPLEVEL_GETTER,
|
| + /// Read from a top level getter and write to an unresolved top level setter.
|
| + UNRESOLVED_TOPLEVEL_SETTER,
|
| +
|
| /// Read from one superclass field and write to another.
|
| SUPER_FIELD_FIELD,
|
| /// Read from a superclass field and write to a superclass setter.
|
| @@ -258,6 +288,9 @@ class StaticAccess extends AccessSemantics {
|
| StaticAccess.superField(FieldElement this.element)
|
| : super._(AccessKind.SUPER_FIELD);
|
|
|
| + StaticAccess.superFinalField(FieldElement this.element)
|
| + : super._(AccessKind.SUPER_FINAL_FIELD);
|
| +
|
| StaticAccess.superMethod(MethodElement this.element)
|
| : super._(AccessKind.SUPER_METHOD);
|
|
|
| @@ -273,12 +306,21 @@ class StaticAccess extends AccessSemantics {
|
| StaticAccess.localVariable(LocalVariableElement this.element)
|
| : super._(AccessKind.LOCAL_VARIABLE);
|
|
|
| + StaticAccess.finalLocalVariable(LocalVariableElement this.element)
|
| + : super._(AccessKind.FINAL_LOCAL_VARIABLE);
|
| +
|
| StaticAccess.parameter(ParameterElement this.element)
|
| : super._(AccessKind.PARAMETER);
|
|
|
| + StaticAccess.finalParameter(ParameterElement this.element)
|
| + : super._(AccessKind.FINAL_PARAMETER);
|
| +
|
| StaticAccess.staticField(FieldElement this.element)
|
| : super._(AccessKind.STATIC_FIELD);
|
|
|
| + StaticAccess.finalStaticField(FieldElement this.element)
|
| + : super._(AccessKind.FINAL_STATIC_FIELD);
|
| +
|
| StaticAccess.staticMethod(MethodElement this.element)
|
| : super._(AccessKind.STATIC_METHOD);
|
|
|
| @@ -291,6 +333,9 @@ class StaticAccess extends AccessSemantics {
|
| StaticAccess.topLevelField(FieldElement this.element)
|
| : super._(AccessKind.TOPLEVEL_FIELD);
|
|
|
| + StaticAccess.finalTopLevelField(FieldElement this.element)
|
| + : super._(AccessKind.FINAL_TOPLEVEL_FIELD);
|
| +
|
| StaticAccess.topLevelMethod(MethodElement this.element)
|
| : super._(AccessKind.TOPLEVEL_METHOD);
|
|
|
|
|