| 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_procedure_builder; | 5 library fasta.kernel_procedure_builder; |
| 6 | 6 |
| 7 import 'package:kernel/ast.dart' | 7 import 'package:kernel/ast.dart' |
| 8 show | 8 show |
| 9 Arguments, | 9 Arguments, |
| 10 AsyncMarker, | 10 AsyncMarker, |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 ConstructorReferenceBuilder, | 48 ConstructorReferenceBuilder, |
| 49 FormalParameterBuilder, | 49 FormalParameterBuilder, |
| 50 KernelFormalParameterBuilder, | 50 KernelFormalParameterBuilder, |
| 51 KernelLibraryBuilder, | 51 KernelLibraryBuilder, |
| 52 KernelTypeBuilder, | 52 KernelTypeBuilder, |
| 53 KernelTypeVariableBuilder, | 53 KernelTypeVariableBuilder, |
| 54 LibraryBuilder, | 54 LibraryBuilder, |
| 55 MetadataBuilder, | 55 MetadataBuilder, |
| 56 ProcedureBuilder, | 56 ProcedureBuilder, |
| 57 TypeVariableBuilder, | 57 TypeVariableBuilder, |
| 58 isRedirectingGenerativeConstructorImplementation, |
| 58 memberError; | 59 memberError; |
| 59 | 60 |
| 60 abstract class KernelFunctionBuilder | 61 abstract class KernelFunctionBuilder |
| 61 extends ProcedureBuilder<KernelTypeBuilder> { | 62 extends ProcedureBuilder<KernelTypeBuilder> { |
| 62 final String nativeMethodName; | 63 final String nativeMethodName; |
| 63 | 64 |
| 64 FunctionNode function; | 65 FunctionNode function; |
| 65 | 66 |
| 66 Statement actualBody; | 67 Statement actualBody; |
| 67 | 68 |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 240 } | 241 } |
| 241 return procedure; | 242 return procedure; |
| 242 } | 243 } |
| 243 | 244 |
| 244 Procedure get target => procedure; | 245 Procedure get target => procedure; |
| 245 } | 246 } |
| 246 | 247 |
| 247 // TODO(ahe): Move this to own file? | 248 // TODO(ahe): Move this to own file? |
| 248 class KernelConstructorBuilder extends KernelFunctionBuilder { | 249 class KernelConstructorBuilder extends KernelFunctionBuilder { |
| 249 final Constructor constructor; | 250 final Constructor constructor; |
| 251 |
| 250 final int charOpenParenOffset; | 252 final int charOpenParenOffset; |
| 251 | 253 |
| 252 bool hasMovedSuperInitializer = false; | 254 bool hasMovedSuperInitializer = false; |
| 253 | 255 |
| 254 SuperInitializer superInitializer; | 256 SuperInitializer superInitializer; |
| 255 | 257 |
| 256 RedirectingInitializer redirectingInitializer; | 258 RedirectingInitializer redirectingInitializer; |
| 257 | 259 |
| 258 KernelConstructorBuilder( | 260 KernelConstructorBuilder( |
| 259 List<MetadataBuilder> metadata, | 261 List<MetadataBuilder> metadata, |
| (...skipping 14 matching lines...) Expand all Loading... |
| 274 compilationUnit, charOffset, nativeMethodName); | 276 compilationUnit, charOffset, nativeMethodName); |
| 275 | 277 |
| 276 bool get isInstanceMember => false; | 278 bool get isInstanceMember => false; |
| 277 | 279 |
| 278 bool get isConstructor => true; | 280 bool get isConstructor => true; |
| 279 | 281 |
| 280 AsyncMarker get asyncModifier => AsyncMarker.Sync; | 282 AsyncMarker get asyncModifier => AsyncMarker.Sync; |
| 281 | 283 |
| 282 ProcedureKind get kind => null; | 284 ProcedureKind get kind => null; |
| 283 | 285 |
| 286 bool get isRedirectingGenerativeConstructor { |
| 287 return isRedirectingGenerativeConstructorImplementation(constructor); |
| 288 } |
| 289 |
| 284 Constructor build(LibraryBuilder library) { | 290 Constructor build(LibraryBuilder library) { |
| 285 if (constructor.name == null) { | 291 if (constructor.name == null) { |
| 286 constructor.function = buildFunction(library); | 292 constructor.function = buildFunction(library); |
| 287 constructor.function.parent = constructor; | 293 constructor.function.parent = constructor; |
| 288 constructor.function.fileOffset = charOpenParenOffset; | 294 constructor.function.fileOffset = charOpenParenOffset; |
| 289 constructor.function.fileEndOffset = constructor.fileEndOffset; | 295 constructor.function.fileEndOffset = constructor.fileEndOffset; |
| 290 constructor.isConst = isConst; | 296 constructor.isConst = isConst; |
| 291 constructor.isExternal = isExternal; | 297 constructor.isExternal = isExternal; |
| 292 constructor.name = new Name(name, library.target); | 298 constructor.name = new Name(name, library.target); |
| 293 } | 299 } |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 356 } | 362 } |
| 357 } | 363 } |
| 358 initializers.add(initializer..parent = constructor); | 364 initializers.add(initializer..parent = constructor); |
| 359 initializers.add(superInitializer); | 365 initializers.add(superInitializer); |
| 360 return; | 366 return; |
| 361 } | 367 } |
| 362 initializers.add(initializer); | 368 initializers.add(initializer); |
| 363 initializer.parent = constructor; | 369 initializer.parent = constructor; |
| 364 } | 370 } |
| 365 } | 371 } |
| OLD | NEW |