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.body_builder; | 5 library fasta.body_builder; |
6 | 6 |
7 import '../fasta_codes.dart' | 7 import '../fasta_codes.dart' |
8 show FastaMessage, codeExpectedButGot, codeExpectedFunctionBody; | 8 show FastaMessage, codeExpectedButGot, codeExpectedFunctionBody; |
9 | 9 |
10 import '../parser/parser.dart' show FormalParameterType, MemberKind, optional; | 10 import '../parser/parser.dart' show FormalParameterType, MemberKind, optional; |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 | 58 |
59 import '../modifier.dart' show Modifier, constMask, finalMask; | 59 import '../modifier.dart' show Modifier, constMask, finalMask; |
60 | 60 |
61 import 'redirecting_factory_body.dart' show getRedirectionTarget; | 61 import 'redirecting_factory_body.dart' show getRedirectionTarget; |
62 | 62 |
63 import 'kernel_builder.dart'; | 63 import 'kernel_builder.dart'; |
64 | 64 |
65 import '../names.dart'; | 65 import '../names.dart'; |
66 | 66 |
67 class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { | 67 class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
| 68 @override |
68 final KernelLibraryBuilder library; | 69 final KernelLibraryBuilder library; |
69 | 70 |
70 final MemberBuilder member; | 71 final MemberBuilder member; |
71 | 72 |
72 final KernelClassBuilder classBuilder; | 73 final KernelClassBuilder classBuilder; |
73 | 74 |
74 final ClassHierarchy hierarchy; | 75 final ClassHierarchy hierarchy; |
75 | 76 |
76 final CoreTypes coreTypes; | 77 final CoreTypes coreTypes; |
77 | 78 |
(...skipping 1957 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2035 return; | 2036 return; |
2036 } | 2037 } |
2037 | 2038 |
2038 if (typeArguments != null) { | 2039 if (typeArguments != null) { |
2039 assert(arguments.types.isEmpty); | 2040 assert(arguments.types.isEmpty); |
2040 KernelArguments.setExplicitArgumentTypes(arguments, typeArguments); | 2041 KernelArguments.setExplicitArgumentTypes(arguments, typeArguments); |
2041 } | 2042 } |
2042 | 2043 |
2043 String errorName; | 2044 String errorName; |
2044 if (type is ClassBuilder) { | 2045 if (type is ClassBuilder) { |
2045 Builder b = type.findConstructorOrFactory(name, token.charOffset, uri); | 2046 Builder b = |
| 2047 type.findConstructorOrFactory(name, token.charOffset, uri, library); |
2046 Member target; | 2048 Member target; |
2047 Member initialTarget; | 2049 Member initialTarget; |
2048 if (b == null) { | 2050 if (b == null) { |
2049 // Not found. Reported below. | 2051 // Not found. Reported below. |
2050 } else if (b.isConstructor) { | 2052 } else if (b.isConstructor) { |
2051 initialTarget = b.target; | 2053 initialTarget = b.target; |
2052 if (type.isAbstract) { | 2054 if (type.isAbstract) { |
2053 push(evaluateArgumentsBefore( | 2055 push(evaluateArgumentsBefore( |
2054 arguments, | 2056 arguments, |
2055 buildAbstractClassInstantiationError( | 2057 buildAbstractClassInstantiationError( |
(...skipping 1219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3275 if (starToken == null) { | 3277 if (starToken == null) { |
3276 return AsyncMarker.Async; | 3278 return AsyncMarker.Async; |
3277 } else { | 3279 } else { |
3278 assert(identical(starToken.stringValue, "*")); | 3280 assert(identical(starToken.stringValue, "*")); |
3279 return AsyncMarker.AsyncStar; | 3281 return AsyncMarker.AsyncStar; |
3280 } | 3282 } |
3281 } else { | 3283 } else { |
3282 return internalError("Unknown async modifier: $asyncToken"); | 3284 return internalError("Unknown async modifier: $asyncToken"); |
3283 } | 3285 } |
3284 } | 3286 } |
OLD | NEW |