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.kernel_class_builder; | 5 library fasta.kernel_class_builder; |
6 | 6 |
7 import 'package:kernel/ast.dart' show | 7 import 'package:kernel/ast.dart' show |
8 Class, | 8 Class, |
9 DartType, | 9 DartType, |
10 ExpressionStatement, | 10 ExpressionStatement, |
11 InterfaceType, | 11 InterfaceType, |
12 Member, | 12 Member, |
13 StringLiteral, | 13 StringLiteral, |
14 Supertype, | 14 Supertype, |
15 Throw; | 15 Throw; |
16 | 16 |
17 import '../errors.dart' show | 17 import '../errors.dart' show |
18 internalError; | 18 internalError; |
19 | 19 |
| 20 import '../messages.dart' show |
| 21 warning; |
| 22 |
20 import 'kernel_builder.dart' show | 23 import 'kernel_builder.dart' show |
21 Builder, | 24 Builder, |
22 ClassBuilder, | 25 ClassBuilder, |
23 ConstructorReferenceBuilder, | 26 ConstructorReferenceBuilder, |
24 KernelProcedureBuilder, | 27 KernelProcedureBuilder, |
25 KernelTypeBuilder, | 28 KernelTypeBuilder, |
26 LibraryBuilder, | 29 LibraryBuilder, |
27 MetadataBuilder, | 30 MetadataBuilder, |
28 ProcedureBuilder, | 31 ProcedureBuilder, |
29 TypeVariableBuilder, | 32 TypeVariableBuilder, |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 builder.redirectionTarget; | 101 builder.redirectionTarget; |
99 if (redirectionTarget != null) { | 102 if (redirectionTarget != null) { |
100 assert(builder.actualBody == null); | 103 assert(builder.actualBody == null); |
101 Builder targetBuilder = redirectionTarget.target; | 104 Builder targetBuilder = redirectionTarget.target; |
102 if (targetBuilder is ProcedureBuilder) { | 105 if (targetBuilder is ProcedureBuilder) { |
103 Member target = targetBuilder.target; | 106 Member target = targetBuilder.target; |
104 builder.body = new RedirectingFactoryBody(target); | 107 builder.body = new RedirectingFactoryBody(target); |
105 } else { | 108 } else { |
106 // TODO(ahe): Throw NSM error. This requires access to core | 109 // TODO(ahe): Throw NSM error. This requires access to core |
107 // types. | 110 // types. |
108 String message = | 111 String message = "Redirection constructor target not found: " |
109 "Missing constructor: ${redirectionTarget.fullNameForErrors}"; | 112 "${redirectionTarget.fullNameForErrors}"; |
110 print(message); | 113 warning(library.fileUri, -1, message); |
111 builder.body = new ExpressionStatement( | 114 builder.body = new ExpressionStatement( |
112 new Throw(new StringLiteral(message))); | 115 new Throw(new StringLiteral(message))); |
113 } | 116 } |
114 } | 117 } |
115 } | 118 } |
116 }); | 119 }); |
117 } | 120 } |
118 return count; | 121 return count; |
119 } | 122 } |
120 } | 123 } |
OLD | NEW |