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

Unified Diff: pkg/analyzer2dart/test/sexpr_data.dart

Issue 658103003: Support map and list literals in analyzer2dart. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Use LiteralMapEntry to ensure build order Created 6 years, 2 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/analyzer2dart/test/sexpr_data.dart
diff --git a/pkg/analyzer2dart/test/sexpr_data.dart b/pkg/analyzer2dart/test/sexpr_data.dart
index bf1f08ae21011cc58811f58bb88420147d7e7bf5..cfe433df37825a5e093509f1a5cdd4bc404a36df 100644
--- a/pkg/analyzer2dart/test/sexpr_data.dart
+++ b/pkg/analyzer2dart/test/sexpr_data.dart
@@ -816,6 +816,115 @@ main(a) {
'''),
]),
+ const Group('List literal', const <TestSpec>[
+ const TestSpec('''
+main() {
+ return [];
+}
+''', '''
+(FunctionDefinition main ( return)
+ (LetPrim v0 (LiteralList ()))
+ (InvokeContinuation return v0))
+'''),
+
+ const TestSpec('''
+main() {
+ return [0];
+}
+''', '''
+(FunctionDefinition main ( return)
+ (LetPrim v0 (Constant IntConstant(0)))
+ (LetPrim v1 (LiteralList (v0)))
+ (InvokeContinuation return v1))
+'''),
+
+ const TestSpec('''
+main(a) {
+ return [0, 1, a];
+}
+''', '''
+(FunctionDefinition main (a return)
+ (LetPrim v0 (Constant IntConstant(0)))
+ (LetPrim v1 (Constant IntConstant(1)))
+ (LetPrim v2 (LiteralList (v0 v1 a)))
+ (InvokeContinuation return v2))
+'''),
+
+ const TestSpec('''
+main(a) {
+ return [0, [1], [a, [3]]];
+}
+''', '''
+(FunctionDefinition main (a return)
+ (LetPrim v0 (Constant IntConstant(0)))
+ (LetPrim v1 (Constant IntConstant(1)))
+ (LetPrim v2 (LiteralList (v1)))
+ (LetPrim v3 (Constant IntConstant(3)))
+ (LetPrim v4 (LiteralList (v3)))
+ (LetPrim v5 (LiteralList (a v4)))
+ (LetPrim v6 (LiteralList (v0 v2 v5)))
+ (InvokeContinuation return v6))
+'''),
+ ]),
+
+ const Group('Map literal', const <TestSpec>[
+ const TestSpec('''
+main() {
+ return {};
+}
+''', '''
+(FunctionDefinition main ( return)
+ (LetPrim v0 (LiteralMap () ()))
+ (InvokeContinuation return v0))
+'''),
+
+ const TestSpec('''
+main() {
+ return {"a": 0};
+}
+''', '''
+(FunctionDefinition main ( return)
+ (LetPrim v0 (Constant StringConstant("a")))
+ (LetPrim v1 (Constant IntConstant(0)))
+ (LetPrim v2 (LiteralMap (v0) (v1)))
+ (InvokeContinuation return v2))
+'''),
+
+ const TestSpec('''
+main(a) {
+ return {"a": 0, "b": 1, "c": a};
+}
+''', '''
+(FunctionDefinition main (a return)
+ (LetPrim v0 (Constant StringConstant("a")))
+ (LetPrim v1 (Constant IntConstant(0)))
+ (LetPrim v2 (Constant StringConstant("b")))
+ (LetPrim v3 (Constant IntConstant(1)))
+ (LetPrim v4 (Constant StringConstant("c")))
+ (LetPrim v5 (LiteralMap (v0 v2 v4) (v1 v3 a)))
+ (InvokeContinuation return v5))
+'''),
+
+ const TestSpec('''
+main(a) {
+ return {0: "a", 1: {2: "b"}, a: {3: "c"}};
+}
+''', '''
+(FunctionDefinition main (a return)
+ (LetPrim v0 (Constant IntConstant(0)))
+ (LetPrim v1 (Constant StringConstant("a")))
+ (LetPrim v2 (Constant IntConstant(1)))
+ (LetPrim v3 (Constant IntConstant(2)))
+ (LetPrim v4 (Constant StringConstant("b")))
+ (LetPrim v5 (LiteralMap (v3) (v4)))
+ (LetPrim v6 (Constant IntConstant(3)))
+ (LetPrim v7 (Constant StringConstant("c")))
+ (LetPrim v8 (LiteralMap (v6) (v7)))
+ (LetPrim v9 (LiteralMap (v0 v2 a) (v1 v5 v8)))
+ (InvokeContinuation return v9))
+'''),
+ ]),
+
const Group('For loop', const <TestSpec>[
const TestSpec('''
main() {
« no previous file with comments | « pkg/analyzer2dart/test/end2end_data.dart ('k') | sdk/lib/_internal/compiler/implementation/cps_ir/cps_ir_builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698