Index: pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart |
diff --git a/pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart b/pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart |
index 3ca8680629f91007f66fa28bc665525ce94fc0ce..d9f2229281668cdd89580295468ce8d6e8228e12 100644 |
--- a/pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart |
+++ b/pkg/front_end/lib/src/fasta/dill/dill_library_builder.dart |
@@ -4,20 +4,8 @@ |
library fasta.dill_library_builder; |
-import 'package:front_end/src/fasta/dill/dill_typedef_builder.dart'; |
import 'package:kernel/ast.dart' |
- show |
- Class, |
- ExpressionStatement, |
- Field, |
- FunctionNode, |
- Let, |
- Library, |
- ListLiteral, |
- Member, |
- Procedure, |
- StaticGet, |
- Typedef; |
+ show Class, Field, Library, ListLiteral, Member, StaticGet, Typedef; |
import '../errors.dart' show internalError; |
@@ -38,6 +26,8 @@ import 'dill_member_builder.dart' show DillMemberBuilder; |
import 'dill_loader.dart' show DillLoader; |
+import 'dill_typedef_builder.dart' show DillFunctionTypeAliasBuilder; |
+ |
class DillLibraryBuilder extends LibraryBuilder<KernelTypeBuilder, Library> { |
final Uri uri; |
@@ -57,19 +47,9 @@ class DillLibraryBuilder extends LibraryBuilder<KernelTypeBuilder, Library> { |
cls.constructors.forEach(classBulder.addMember); |
for (Field field in cls.fields) { |
if (field.name.name == "_redirecting#") { |
- // This is a hack / work around for storing redirecting constructors in |
- // dill files. See `buildFactoryConstructor` in |
- // [package:kernel/analyzer/ast_from_analyzer.dart] |
- // (../../../../kernel/lib/analyzer/ast_from_analyzer.dart). |
ListLiteral initializer = field.initializer; |
for (StaticGet get in initializer.expressions) { |
- Procedure factory = get.target; |
- FunctionNode function = factory.function; |
- ExpressionStatement statement = function.body; |
- Let let = statement.expression; |
- StaticGet getTarget = let.variable.initializer; |
- function.body = new RedirectingFactoryBody(getTarget.target) |
- ..parent = function; |
+ RedirectingFactoryBody.restoreFromDill(get.target); |
} |
initializer.expressions.clear(); |
} else { |