| Index: pkg/front_end/lib/src/fasta/kernel/kernel_formal_parameter_builder.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_formal_parameter_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_formal_parameter_builder.dart
|
| index d1ffc333984083d1802b3ab91d374438b48d8738..fc014eb7748add4aaa5d9ba3a62a75c4159ed2bb 100644
|
| --- a/pkg/front_end/lib/src/fasta/kernel/kernel_formal_parameter_builder.dart
|
| +++ b/pkg/front_end/lib/src/fasta/kernel/kernel_formal_parameter_builder.dart
|
| @@ -12,9 +12,11 @@ import 'kernel_builder.dart'
|
| FormalParameterBuilder,
|
| KernelLibraryBuilder,
|
| KernelTypeBuilder,
|
| - LibraryBuilder,
|
| MetadataBuilder;
|
|
|
| +import 'package:front_end/src/fasta/source/source_library_builder.dart'
|
| + show SourceLibraryBuilder;
|
| +
|
| class KernelFormalParameterBuilder
|
| extends FormalParameterBuilder<KernelTypeBuilder> {
|
| KernelVariableDeclaration declaration;
|
| @@ -33,9 +35,16 @@ class KernelFormalParameterBuilder
|
|
|
| KernelVariableDeclaration get target => declaration;
|
|
|
| - KernelVariableDeclaration build(LibraryBuilder library) {
|
| - return declaration ??= new KernelVariableDeclaration(name, 0,
|
| - type: type?.build(library), isFinal: isFinal, isConst: isConst)
|
| - ..fileOffset = charOffset;
|
| + KernelVariableDeclaration build(SourceLibraryBuilder library) {
|
| + if (declaration == null) {
|
| + declaration = new KernelVariableDeclaration(name, 0,
|
| + type: type?.build(library), isFinal: isFinal, isConst: isConst)
|
| + ..fileOffset = charOffset;
|
| + if (type == null && hasThis) {
|
| + library.loader.typeInferenceEngine
|
| + .recordInitializingFormal(declaration);
|
| + }
|
| + }
|
| + return declaration;
|
| }
|
| }
|
|
|