Index: pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart |
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart |
index 5fa55bcbbc6fb585fdc88551ce80eb88167c7344..7e821365e698027c2de042914fc800e87390cf4b 100644 |
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart |
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart |
@@ -43,6 +43,7 @@ import 'kernel_builder.dart' |
ClassBuilder, |
ConstructorReferenceBuilder, |
KernelLibraryBuilder, |
+ KernelNamedTypeBuilder, |
KernelProcedureBuilder, |
KernelTypeBuilder, |
LibraryBuilder, |
@@ -133,11 +134,18 @@ abstract class KernelClassBuilder |
assert(builder.actualBody == null); |
Builder targetBuilder = redirectionTarget.target; |
addRedirectingConstructor(builder, library); |
+ Member target; |
if (targetBuilder is ProcedureBuilder) { |
- Member target = targetBuilder.target; |
- builder.body = new RedirectingFactoryBody(target); |
+ target = targetBuilder.target; |
} else if (targetBuilder is DillMemberBuilder) { |
- builder.body = new RedirectingFactoryBody(targetBuilder.member); |
+ target = targetBuilder.member; |
+ } |
+ if (target != null) { |
+ builder.body = new RedirectingFactoryBody( |
+ target, |
+ new KernelNamedTypeBuilder.fromConstructorReference( |
+ redirectionTarget) |
+ .build(library)); |
} else { |
var message = templateRedirectionTargetNotFound |
.withArguments(redirectionTarget.fullNameForErrors); |