Index: pkg/front_end/lib/src/fasta/kernel/redirecting_factory_body.dart |
diff --git a/pkg/front_end/lib/src/fasta/kernel/redirecting_factory_body.dart b/pkg/front_end/lib/src/fasta/kernel/redirecting_factory_body.dart |
index ada143602d77deff9a5fae07d68525d1e942fdb1..f0f5cf2f0a7dfdbe0385ab49591d276d464dc13a 100644 |
--- a/pkg/front_end/lib/src/fasta/kernel/redirecting_factory_body.dart |
+++ b/pkg/front_end/lib/src/fasta/kernel/redirecting_factory_body.dart |
@@ -5,14 +5,25 @@ |
library fasta.redirecting_factory_body; |
import 'package:kernel/ast.dart' show |
- InvalidStatement, |
+ ExpressionStatement, |
+ InvalidExpression, |
+ Let, |
Member, |
- Procedure; |
+ Procedure, |
+ StaticGet, |
+ VariableDeclaration; |
-class RedirectingFactoryBody extends InvalidStatement { |
- final Member target; |
+class RedirectingFactoryBody extends ExpressionStatement { |
+ RedirectingFactoryBody(Member target) |
+ : super(new Let( |
+ new VariableDeclaration.forValue(new StaticGet(target)), |
+ new InvalidExpression())); |
- RedirectingFactoryBody(this.target); |
+ Member get target { |
+ Let let = expression; |
+ StaticGet staticGet = let.variable.initializer; |
+ return staticGet.target; |
+ } |
} |
bool isRedirectingFactory(Member member) { |