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_library_builder; | 5 library fasta.kernel_library_builder; |
6 | 6 |
| 7 import 'package:front_end/src/fasta/scanner/token.dart' show Token; |
| 8 |
7 import 'package:kernel/ast.dart'; | 9 import 'package:kernel/ast.dart'; |
8 | 10 |
9 import 'package:kernel/clone.dart' show CloneVisitor; | 11 import 'package:kernel/clone.dart' show CloneVisitor; |
10 | 12 |
11 import '../errors.dart' show internalError; | 13 import '../errors.dart' show internalError; |
12 | 14 |
13 import '../loader.dart' show Loader; | 15 import '../loader.dart' show Loader; |
14 | 16 |
15 import '../modifier.dart' show abstractMask, staticMask; | 17 import '../modifier.dart' show abstractMask, staticMask; |
16 | 18 |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 int charOffset) { | 155 int charOffset) { |
154 NamedMixinApplicationBuilder builder = | 156 NamedMixinApplicationBuilder builder = |
155 new KernelNamedMixinApplicationBuilder(metadata, name, typeVariables, | 157 new KernelNamedMixinApplicationBuilder(metadata, name, typeVariables, |
156 modifiers, mixinApplication, interfaces, this, charOffset); | 158 modifiers, mixinApplication, interfaces, this, charOffset); |
157 // Nested declaration began in `OutlineBuilder.beginNamedMixinApplication`. | 159 // Nested declaration began in `OutlineBuilder.beginNamedMixinApplication`. |
158 endNestedDeclaration().resolveTypes(typeVariables, this); | 160 endNestedDeclaration().resolveTypes(typeVariables, this); |
159 addBuilder(name, builder, charOffset); | 161 addBuilder(name, builder, charOffset); |
160 } | 162 } |
161 | 163 |
162 void addField(List<MetadataBuilder> metadata, int modifiers, | 164 void addField(List<MetadataBuilder> metadata, int modifiers, |
163 KernelTypeBuilder type, String name, int charOffset) { | 165 KernelTypeBuilder type, String name, int charOffset, Token initializer) { |
164 addBuilder( | 166 addBuilder( |
165 name, | 167 name, |
166 new KernelFieldBuilder( | 168 new KernelFieldBuilder(loader.astFactory, loader.topLevelTypeInferrer, |
167 metadata, type, name, modifiers, this, charOffset), | 169 metadata, type, name, modifiers, this, charOffset, initializer), |
168 charOffset); | 170 charOffset); |
169 } | 171 } |
170 | 172 |
171 String computeAndValidateConstructorName(String name, int charOffset) { | 173 String computeAndValidateConstructorName(String name, int charOffset) { |
172 String className = currentDeclaration.name; | 174 String className = currentDeclaration.name; |
173 bool startsWithClassName = name.startsWith(className); | 175 bool startsWithClassName = name.startsWith(className); |
174 if (startsWithClassName && name.length == className.length) { | 176 if (startsWithClassName && name.length == className.length) { |
175 // Unnamed constructor or factory. | 177 // Unnamed constructor or factory. |
176 return ""; | 178 return ""; |
177 } | 179 } |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
288 addBuilder(name, procedure, charOffset); | 290 addBuilder(name, procedure, charOffset); |
289 if (nativeMethodName != null) { | 291 if (nativeMethodName != null) { |
290 addNativeMethod(procedure); | 292 addNativeMethod(procedure); |
291 } | 293 } |
292 } | 294 } |
293 | 295 |
294 void addEnum(List<MetadataBuilder> metadata, String name, | 296 void addEnum(List<MetadataBuilder> metadata, String name, |
295 List<Object> constantNamesAndOffsets, int charOffset, int charEndOffset) { | 297 List<Object> constantNamesAndOffsets, int charOffset, int charEndOffset) { |
296 addBuilder( | 298 addBuilder( |
297 name, | 299 name, |
298 new KernelEnumBuilder(metadata, name, constantNamesAndOffsets, this, | 300 new KernelEnumBuilder(loader.astFactory, metadata, name, |
299 charOffset, charEndOffset), | 301 constantNamesAndOffsets, this, charOffset, charEndOffset), |
300 charOffset); | 302 charOffset); |
301 } | 303 } |
302 | 304 |
303 void addFunctionTypeAlias( | 305 void addFunctionTypeAlias( |
304 List<MetadataBuilder> metadata, | 306 List<MetadataBuilder> metadata, |
305 KernelTypeBuilder returnType, | 307 KernelTypeBuilder returnType, |
306 String name, | 308 String name, |
307 List<TypeVariableBuilder> typeVariables, | 309 List<TypeVariableBuilder> typeVariables, |
308 List<FormalParameterBuilder> formals, | 310 List<FormalParameterBuilder> formals, |
309 int charOffset) { | 311 int charOffset) { |
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
539 } | 541 } |
540 | 542 |
541 @override | 543 @override |
542 void includePart(covariant KernelLibraryBuilder part) { | 544 void includePart(covariant KernelLibraryBuilder part) { |
543 super.includePart(part); | 545 super.includePart(part); |
544 nativeMethods.addAll(part.nativeMethods); | 546 nativeMethods.addAll(part.nativeMethods); |
545 boundlessTypeVariables.addAll(part.boundlessTypeVariables); | 547 boundlessTypeVariables.addAll(part.boundlessTypeVariables); |
546 assert(mixinApplicationClasses.isEmpty); | 548 assert(mixinApplicationClasses.isEmpty); |
547 } | 549 } |
548 } | 550 } |
OLD | NEW |