Chromium Code Reviews| 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; |