OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library fasta.fasta_accessors; | 5 library fasta.fasta_accessors; |
6 | 6 |
7 export 'frontend_accessors.dart' show wrapInvalid; | 7 export 'frontend_accessors.dart' show wrapInvalid; |
8 | 8 |
9 import 'frontend_accessors.dart' show Accessor, buildIsNull, makeLet; | 9 import 'frontend_accessors.dart' show Accessor, buildIsNull, makeLet; |
10 | 10 |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 Expression buildStaticInvocation(Procedure target, Arguments arguments); | 63 Expression buildStaticInvocation(Procedure target, Arguments arguments); |
64 | 64 |
65 Expression buildProblemExpression(ProblemBuilder builder, int offset); | 65 Expression buildProblemExpression(ProblemBuilder builder, int offset); |
66 | 66 |
67 Expression throwNoSuchMethodError( | 67 Expression throwNoSuchMethodError( |
68 String name, Arguments arguments, int offset, | 68 String name, Arguments arguments, int offset, |
69 {bool isSuper: false, isGetter: false, isSetter: false}); | 69 {bool isSuper: false, isGetter: false, isSetter: false}); |
70 | 70 |
71 bool checkArguments(FunctionNode function, Arguments arguments, | 71 bool checkArguments(FunctionNode function, Arguments arguments, |
72 List<TypeParameter> typeParameters); | 72 List<TypeParameter> typeParameters); |
| 73 |
| 74 StaticGet makeStaticGet(Member readTarget, int offset); |
73 } | 75 } |
74 | 76 |
75 abstract class FastaAccessor implements Accessor { | 77 abstract class FastaAccessor implements Accessor { |
76 BuilderHelper get helper; | 78 BuilderHelper get helper; |
77 | 79 |
78 String get plainNameForRead; | 80 String get plainNameForRead; |
79 | 81 |
80 Uri get uri => helper.uri; | 82 Uri get uri => helper.uri; |
81 | 83 |
82 String get plainNameForWrite => plainNameForRead; | 84 String get plainNameForWrite => plainNameForRead; |
(...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
654 return isNullAware | 656 return isNullAware |
655 ? new NullAwarePropertyAccessor( | 657 ? new NullAwarePropertyAccessor( |
656 helper, offset, receiver, name, getter, setter, null) | 658 helper, offset, receiver, name, getter, setter, null) |
657 : new PropertyAccessor.internal( | 659 : new PropertyAccessor.internal( |
658 helper, offset, receiver, name, getter, setter); | 660 helper, offset, receiver, name, getter, setter); |
659 } | 661 } |
660 } | 662 } |
661 } | 663 } |
662 | 664 |
663 class StaticAccessor extends kernel.StaticAccessor with FastaAccessor { | 665 class StaticAccessor extends kernel.StaticAccessor with FastaAccessor { |
664 final BuilderHelper helper; | 666 StaticAccessor( |
665 | 667 BuilderHelper helper, int offset, Member readTarget, Member writeTarget) |
666 StaticAccessor(this.helper, int offset, Member readTarget, Member writeTarget) | 668 : super(helper, readTarget, writeTarget, offset) { |
667 : super(readTarget, writeTarget, offset) { | |
668 assert(readTarget != null || writeTarget != null); | 669 assert(readTarget != null || writeTarget != null); |
669 } | 670 } |
670 | 671 |
671 factory StaticAccessor.fromBuilder(BuilderHelper helper, Builder builder, | 672 factory StaticAccessor.fromBuilder(BuilderHelper helper, Builder builder, |
672 int offset, Builder builderSetter) { | 673 int offset, Builder builderSetter) { |
673 if (builder is AccessErrorBuilder) { | 674 if (builder is AccessErrorBuilder) { |
674 AccessErrorBuilder error = builder; | 675 AccessErrorBuilder error = builder; |
675 builder = error.builder; | 676 builder = error.builder; |
676 // We should only see an access error here if we've looked up a setter | 677 // We should only see an access error here if we've looked up a setter |
677 // when not explicitly looking for a setter. | 678 // when not explicitly looking for a setter. |
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
891 new ConditionalExpression( | 892 new ConditionalExpression( |
892 buildIsNull(new VariableGet(variable)), | 893 buildIsNull(new VariableGet(variable)), |
893 new NullLiteral(), | 894 new NullLiteral(), |
894 new MethodInvocation(new VariableGet(variable), name, arguments) | 895 new MethodInvocation(new VariableGet(variable), name, arguments) |
895 ..fileOffset = offset, | 896 ..fileOffset = offset, |
896 const DynamicType())); | 897 const DynamicType())); |
897 } else { | 898 } else { |
898 return new MethodInvocation(receiver, name, arguments)..fileOffset = offset; | 899 return new MethodInvocation(receiver, name, arguments)..fileOffset = offset; |
899 } | 900 } |
900 } | 901 } |
OLD | NEW |