Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1067)

Unified Diff: pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart

Issue 2996063002: Implement type arguments in redirecting factories.
Patch Set: Address Johnni's comments. Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698