Index: pkg/front_end/lib/src/fasta/builder/class_builder.dart |
diff --git a/pkg/front_end/lib/src/fasta/builder/class_builder.dart b/pkg/front_end/lib/src/fasta/builder/class_builder.dart |
index 65903a77ab3c39547a30ed56009998b31e85ba5d..113222635c94ebf01a28097817733aa3541ae6ee 100644 |
--- a/pkg/front_end/lib/src/fasta/builder/class_builder.dart |
+++ b/pkg/front_end/lib/src/fasta/builder/class_builder.dart |
@@ -18,7 +18,7 @@ import 'builder.dart' |
TypeDeclarationBuilder, |
TypeVariableBuilder; |
-import 'scope.dart' show AmbiguousBuilder, Scope; |
+import 'scope.dart' show AccessErrorBuilder, AmbiguousBuilder, Scope; |
abstract class ClassBuilder<T extends TypeBuilder, R> |
extends TypeDeclarationBuilder<T, R> { |
@@ -97,7 +97,22 @@ abstract class ClassBuilder<T extends TypeBuilder, R> |
} |
current = current.next; |
} |
+ if (getterBuilder?.isInstanceMember ?? false) { |
ahe
2017/03/21 18:36:21
Consider cases like this:
class C {
static get
|
+ getterBuilder = null; |
+ } |
+ if (setterBuilder?.isInstanceMember ?? false) { |
+ setterBuilder = null; |
+ } |
builder = isSetter ? setterBuilder : getterBuilder; |
+ if (builder == null) { |
+ if (isSetter && getterBuilder != null) { |
+ return new AccessErrorBuilder( |
+ name, getterBuilder, charOffset, fileUri); |
+ } else if (!isSetter && setterBuilder != null) { |
+ return new AccessErrorBuilder( |
+ name, setterBuilder, charOffset, fileUri); |
+ } |
+ } |
} |
if (builder == null) { |
return null; |