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

Unified Diff: pkg/compiler/lib/src/kernel/kernel.dart

Issue 2486703002: Change IR encoding of redirecting factory invocations. (Closed)
Patch Set: Fix impact_test. Created 4 years, 1 month 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
« no previous file with comments | « no previous file | pkg/compiler/lib/src/kernel/kernel_visitor.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/kernel/kernel.dart
diff --git a/pkg/compiler/lib/src/kernel/kernel.dart b/pkg/compiler/lib/src/kernel/kernel.dart
index 53ca7823e1725d958337e109a6e3be1a6c9b3d33..a4da817105cfa24f20e753a8a52328715ddd54a7 100644
--- a/pkg/compiler/lib/src/kernel/kernel.dart
+++ b/pkg/compiler/lib/src/kernel/kernel.dart
@@ -207,9 +207,13 @@ class Kernel {
if (member.enclosingClass.declaration != cls) {
// TODO(het): figure out why impact_test triggers this
//internalError(cls, "`$member` isn't mine.");
- } else if (member.isFunction ||
- member.isAccessor ||
- member.isConstructor) {
+ } else if (member.isConstructor) {
+ ConstructorElement constructor = member;
+ ir.Member memberNode = functionToIr(member);
+ if (!constructor.isRedirectingFactory) {
+ classNode.addMember(memberNode);
+ }
+ } else if (member.isFunction || member.isAccessor) {
classNode.addMember(functionToIr(member));
} else if (member.isField) {
classNode.addMember(fieldToIr(member));
@@ -220,7 +224,9 @@ class Kernel {
classNode.typeParameters.addAll(typeVariablesToIr(cls.typeVariables));
for (ir.InterfaceType interface
in typesToIr(cls.interfaces.reverse().toList())) {
- classNode.implementedTypes.add(interface);
+ if (interface != classNode.mixedInType) {
+ classNode.implementedTypes.add(interface);
+ }
}
addWork(cls, () {
addDefaultInstanceFieldInitializers(classNode);
« no previous file with comments | « no previous file | pkg/compiler/lib/src/kernel/kernel_visitor.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698