Index: pkg/analyzer2dart/test/sexpr_data.dart |
diff --git a/pkg/analyzer2dart/test/sexpr_data.dart b/pkg/analyzer2dart/test/sexpr_data.dart |
index 85c937dd711b03ee4a66c90cf290f0a920b2c0ab..d6117c19a9affa3362a12cc663e266951fbda889 100644 |
--- a/pkg/analyzer2dart/test/sexpr_data.dart |
+++ b/pkg/analyzer2dart/test/sexpr_data.dart |
@@ -11,7 +11,11 @@ class TestSpec extends TestSpecBase { |
// A [String] or a [Map<String, String>]. |
final output; |
- const TestSpec(String input, this.output) : super(input); |
+ /// True if the test should be skipped when testing analyzer2dart. |
+ final bool skipInAnalyzerFrontend; |
+ |
+ const TestSpec(String input, this.output, |
+ {this.skipInAnalyzerFrontend: false}) : super(input); |
} |
const List<Group> TEST_DATA = const [ |
@@ -1355,4 +1359,28 @@ main(args) { |
(InvokeMethod args length k0)) |
'''), |
]), |
+ |
+ const Group('Closure variables', const <TestSpec>[ |
+ const TestSpec(''' |
+main(x,foo) { |
+ print(x); |
+ getFoo() => foo; |
+ print(getFoo()); |
+} |
+''', ''' |
+(FunctionDefinition main {foo} (x foo return) |
+ (LetCont (k0 v0) |
+ (LetPrim v1 (CreateFunction |
+ (FunctionDefinition getFoo ( return) |
+ (LetPrim v2 (GetClosureVariable foo)) |
+ (InvokeContinuation return v2)))) |
+ (LetCont (k1 v3) |
+ (LetCont (k2 v4) |
+ (LetPrim v5 (Constant NullConstant)) |
+ (InvokeContinuation return v5)) |
+ (InvokeStatic print v3 k2)) |
+ (InvokeMethod v1 call k1)) |
+ (InvokeStatic print x k0)) |
+''', skipInAnalyzerFrontend: true) |
+ ]), |
]; |