sexp_processor 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data.tar.gz.sig +0 -0
- data/History.txt +15 -0
- data/lib/pt_testcase.rb +169 -1697
- data/lib/sexp_processor.rb +23 -8
- metadata +12 -12
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/History.txt
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
=== 3.2.0 / 2012-04-15
|
2
|
+
|
3
|
+
* 5 minor enhancements:
|
4
|
+
|
5
|
+
* Added a ton of block arg tests.
|
6
|
+
* Added add19_edgecases to help refactor a bunch of tests that all have the same output.
|
7
|
+
* Added better debugging output for rewrites.
|
8
|
+
* Cleaned and added a bunch of stabby proc tests.
|
9
|
+
* Moved RawParseTree test data to ParseTree project.
|
10
|
+
|
11
|
+
* 2 bug fixes:
|
12
|
+
|
13
|
+
* Fixed a bunch of entries for r2r changes against edgecase parse/lex tests
|
14
|
+
* Fixes for R2R
|
15
|
+
|
1
16
|
=== 3.1.0 / 2012-02-29
|
2
17
|
|
3
18
|
* 4 minor enhancements:
|
data/lib/pt_testcase.rb
CHANGED
@@ -212,37 +212,29 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
212
212
|
############################################################
|
213
213
|
# Shared TestCases:
|
214
214
|
|
215
|
-
@@testcase_order = %w(Ruby
|
215
|
+
@@testcase_order = %w(Ruby ParseTree)
|
216
216
|
|
217
217
|
@@testcases = Hash.new { |h,k| h[k] = {} }
|
218
218
|
|
219
219
|
add_tests("alias",
|
220
220
|
"Ruby" => "class X\n alias :y :x\nend",
|
221
|
-
"RawParseTree" => [:class, :X, nil,
|
222
|
-
[:scope, [:alias, [:lit, :y], [:lit, :x]]]],
|
223
221
|
"ParseTree" => s(:class, :X, nil,
|
224
222
|
s(:scope, s(:alias, s(:lit, :y), s(:lit, :x)))))
|
225
223
|
|
226
224
|
add_tests("alias_ugh",
|
227
225
|
"Ruby" => "class X\n alias y x\nend",
|
228
|
-
"RawParseTree" => [:class, :X, nil,
|
229
|
-
[:scope, [:alias, [:lit, :y], [:lit, :x]]]],
|
230
226
|
"ParseTree" => s(:class, :X, nil,
|
231
227
|
s(:scope, s(:alias, s(:lit, :y), s(:lit, :x)))),
|
232
228
|
"Ruby2Ruby" => "class X\n alias :y :x\nend")
|
233
229
|
|
234
230
|
add_tests("and",
|
235
231
|
"Ruby" => "a and b",
|
236
|
-
"RawParseTree" => [:and, [:vcall, :a], [:vcall, :b]],
|
237
232
|
"ParseTree" => s(:and,
|
238
233
|
s(:call, nil, :a, s(:arglist)),
|
239
234
|
s(:call, nil, :b, s(:arglist))))
|
240
235
|
|
241
236
|
add_tests("argscat_inside",
|
242
237
|
"Ruby" => "a = [b, *c]",
|
243
|
-
"RawParseTree" => [:lasgn, :a,
|
244
|
-
[:argscat,
|
245
|
-
[:array, [:vcall, :b]], [:vcall, :c]]],
|
246
238
|
"ParseTree" => s(:lasgn, :a,
|
247
239
|
s(:array,
|
248
240
|
s(:call, nil, :b, s(:arglist)),
|
@@ -250,11 +242,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
250
242
|
|
251
243
|
add_tests("argscat_svalue",
|
252
244
|
"Ruby" => "a = b, c, *d",
|
253
|
-
"RawParseTree" => [:lasgn, :a,
|
254
|
-
[:svalue,
|
255
|
-
[:argscat,
|
256
|
-
[:array, [:vcall, :b], [:vcall, :c]],
|
257
|
-
[:vcall, :d]]]],
|
258
245
|
"ParseTree" => s(:lasgn, :a,
|
259
246
|
s(:svalue,
|
260
247
|
s(:array,
|
@@ -265,13 +252,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
265
252
|
|
266
253
|
add_tests("argspush",
|
267
254
|
"Ruby" => "a[*b] = c",
|
268
|
-
"RawParseTree" => [:attrasgn,
|
269
|
-
[:vcall, :a],
|
270
|
-
:[]=,
|
271
|
-
[:argspush,
|
272
|
-
[:splat,
|
273
|
-
[:vcall, :b]],
|
274
|
-
[:vcall, :c]]],
|
275
255
|
"ParseTree" => s(:attrasgn,
|
276
256
|
s(:call, nil, :a, s(:arglist)),
|
277
257
|
:[]=,
|
@@ -282,22 +262,16 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
282
262
|
|
283
263
|
add_tests("array",
|
284
264
|
"Ruby" => "[1, :b, \"c\"]",
|
285
|
-
"RawParseTree" => [:array, [:lit, 1], [:lit, :b], [:str, "c"]],
|
286
265
|
"ParseTree" => s(:array, s(:lit, 1), s(:lit, :b), s(:str, "c")))
|
287
266
|
|
288
267
|
add_tests("array_pct_W",
|
289
268
|
"Ruby" => "%W[a b c]",
|
290
|
-
"RawParseTree" => [:array, [:str, "a"], [:str, "b"], [:str, "c"]],
|
291
269
|
"ParseTree" => s(:array,
|
292
270
|
s(:str, "a"), s(:str, "b"), s(:str, "c")),
|
293
271
|
"Ruby2Ruby" => "[\"a\", \"b\", \"c\"]")
|
294
272
|
|
295
273
|
add_tests("array_pct_W_dstr",
|
296
274
|
"Ruby" => "%W[a #\{@b} c]",
|
297
|
-
"RawParseTree" => [:array,
|
298
|
-
[:str, "a"],
|
299
|
-
[:dstr, "", [:evstr, [:ivar, :@b]]],
|
300
|
-
[:str, "c"]],
|
301
275
|
"ParseTree" => s(:array,
|
302
276
|
s(:str, "a"),
|
303
277
|
s(:dstr, "", s(:evstr, s(:ivar, :@b))),
|
@@ -306,17 +280,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
306
280
|
|
307
281
|
add_tests("array_pct_w",
|
308
282
|
"Ruby" => "%w[a b c]",
|
309
|
-
"RawParseTree" => [:array, [:str, "a"], [:str, "b"], [:str, "c"]],
|
310
283
|
"ParseTree" => s(:array,
|
311
284
|
s(:str, "a"), s(:str, "b"), s(:str, "c")),
|
312
285
|
"Ruby2Ruby" => "[\"a\", \"b\", \"c\"]")
|
313
286
|
|
314
287
|
add_tests("array_pct_w_dstr",
|
315
288
|
"Ruby" => "%w[a #\{@b} c]",
|
316
|
-
"RawParseTree" => [:array,
|
317
|
-
[:str, "a"],
|
318
|
-
[:str, "#\{@b}"],
|
319
|
-
[:str, "c"]],
|
320
289
|
"ParseTree" => s(:array,
|
321
290
|
s(:str, "a"),
|
322
291
|
s(:str, "#\{@b}"),
|
@@ -325,10 +294,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
325
294
|
|
326
295
|
add_tests("attrasgn",
|
327
296
|
"Ruby" => "y = 0\n42.method = y\n",
|
328
|
-
"RawParseTree" => [:block,
|
329
|
-
[:lasgn, :y, [:lit, 0]],
|
330
|
-
[:attrasgn, [:lit, 42], :method=,
|
331
|
-
[:array, [:lvar, :y]]]],
|
332
297
|
"ParseTree" => s(:block,
|
333
298
|
s(:lasgn, :y, s(:lit, 0)),
|
334
299
|
s(:attrasgn, s(:lit, 42), :method=,
|
@@ -336,8 +301,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
336
301
|
|
337
302
|
add_tests("attrasgn_index_equals",
|
338
303
|
"Ruby" => "a[42] = 24",
|
339
|
-
"RawParseTree" => [:attrasgn, [:vcall, :a], :[]=,
|
340
|
-
[:array, [:lit, 42], [:lit, 24]]],
|
341
304
|
"ParseTree" => s(:attrasgn,
|
342
305
|
s(:call, nil, :a, s(:arglist)),
|
343
306
|
:[]=,
|
@@ -345,10 +308,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
345
308
|
|
346
309
|
add_tests("attrasgn_index_equals_space",
|
347
310
|
"Ruby" => "a = []; a [42] = 24",
|
348
|
-
"RawParseTree" => [:block,
|
349
|
-
[:lasgn, :a, [:zarray]],
|
350
|
-
[:attrasgn, [:lvar, :a], :[]=,
|
351
|
-
[:array, [:lit, 42], [:lit, 24]]]],
|
352
311
|
"ParseTree" => s(:block,
|
353
312
|
s(:lasgn, :a, s(:array)),
|
354
313
|
s(:attrasgn, s(:lvar, :a), :[]=,
|
@@ -357,7 +316,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
357
316
|
|
358
317
|
add_tests("attrset",
|
359
318
|
"Ruby" => [Examples, :writer=],
|
360
|
-
"RawParseTree" => [:defn, :writer=, [:attrset, :@writer]],
|
361
319
|
"ParseTree" => s(:defn, :writer=,
|
362
320
|
s(:args, :arg),
|
363
321
|
s(:attrset, :@writer)),
|
@@ -365,11 +323,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
365
323
|
|
366
324
|
add_tests("back_ref",
|
367
325
|
"Ruby" => "[$&, $`, $', $+]",
|
368
|
-
"RawParseTree" => [:array,
|
369
|
-
[:back_ref, :&],
|
370
|
-
[:back_ref, :"`"],
|
371
|
-
[:back_ref, :"'"],
|
372
|
-
[:back_ref, :+]],
|
373
326
|
"ParseTree" => s(:array,
|
374
327
|
s(:back_ref, :&),
|
375
328
|
s(:back_ref, :"`"),
|
@@ -378,25 +331,18 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
378
331
|
|
379
332
|
add_tests("begin",
|
380
333
|
"Ruby" => "begin\n (1 + 1)\nend",
|
381
|
-
"RawParseTree" => [:call, [:lit, 1], :+, [:array, [:lit, 1]]],
|
382
334
|
"ParseTree" => s(:call, s(:lit, 1), :+,
|
383
335
|
s(:arglist, s(:lit, 1))),
|
384
336
|
"Ruby2Ruby" => "(1 + 1)")
|
385
337
|
|
386
338
|
add_tests("begin_def",
|
387
339
|
"Ruby" => "def m\n begin\n\n end\nend",
|
388
|
-
"RawParseTree" => [:defn, :m, [:scope, [:block, [:args], [:nil]]]],
|
389
340
|
"ParseTree" => s(:defn, :m, s(:args),
|
390
341
|
s(:scope, s(:block, s(:nil)))),
|
391
342
|
"Ruby2Ruby" => "def m\n # do nothing\nend")
|
392
343
|
|
393
344
|
add_tests("begin_rescue_ensure",
|
394
345
|
"Ruby" => "begin\n a\nrescue\n # do nothing\nensure\n # do nothing\nend",
|
395
|
-
"RawParseTree" => [:ensure,
|
396
|
-
[:rescue,
|
397
|
-
[:vcall, :a],
|
398
|
-
[:resbody, nil]],
|
399
|
-
[:nil]],
|
400
346
|
"ParseTree" => s(:ensure,
|
401
347
|
s(:rescue,
|
402
348
|
s(:call, nil, :a, s(:arglist)),
|
@@ -405,10 +351,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
405
351
|
|
406
352
|
add_tests("begin_rescue_ensure_all_empty",
|
407
353
|
"Ruby" => "begin\n # do nothing\nrescue\n # do nothing\nensure\n # do nothing\nend",
|
408
|
-
"RawParseTree" => [:ensure,
|
409
|
-
[:rescue,
|
410
|
-
[:resbody, nil]],
|
411
|
-
[:nil]],
|
412
354
|
"ParseTree" => s(:ensure,
|
413
355
|
s(:rescue,
|
414
356
|
s(:resbody, s(:array), nil)),
|
@@ -416,15 +358,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
416
358
|
|
417
359
|
add_tests("begin_rescue_twice",
|
418
360
|
"Ruby" => "begin\n a\nrescue => mes\n # do nothing\nend\nbegin\n b\nrescue => mes\n # do nothing\nend\n",
|
419
|
-
"RawParseTree" => [:block,
|
420
|
-
[:rescue,
|
421
|
-
[:vcall, :a],
|
422
|
-
[:resbody, nil,
|
423
|
-
[:lasgn, :mes, [:gvar, :$!]]]],
|
424
|
-
[:rescue,
|
425
|
-
[:vcall, :b],
|
426
|
-
[:resbody, nil,
|
427
|
-
[:lasgn, :mes, [:gvar, :$!]]]]],
|
428
361
|
"ParseTree" => s(:block,
|
429
362
|
s(:rescue,
|
430
363
|
s(:call, nil, :a, s(:arglist)),
|
@@ -438,30 +371,11 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
438
371
|
s(:lasgn, :mes, s(:gvar, :$!))),
|
439
372
|
nil))))
|
440
373
|
|
441
|
-
add_tests("begin_rescue_twice_mri_verbose_flag",
|
442
|
-
"RawParseTree" => [:block,
|
443
|
-
[:rescue, # no begin
|
444
|
-
[:vcall, :a],
|
445
|
-
[:resbody, nil,
|
446
|
-
[:lasgn, :mes, [:gvar, :$!]]]],
|
447
|
-
[:rescue,
|
448
|
-
[:vcall, :b],
|
449
|
-
[:resbody, nil,
|
450
|
-
[:lasgn, :mes, [:gvar, :$!]]]]])
|
451
|
-
|
452
374
|
copy_test_case "begin_rescue_twice", "Ruby"
|
453
375
|
copy_test_case "begin_rescue_twice", "ParseTree"
|
454
376
|
|
455
377
|
add_tests("block_attrasgn",
|
456
378
|
"Ruby" => "def self.setup(ctx)\n bind = allocate\n bind.context = ctx\n return bind\nend",
|
457
|
-
"RawParseTree" => [:defs, [:self], :setup,
|
458
|
-
[:scope,
|
459
|
-
[:block,
|
460
|
-
[:args, :ctx],
|
461
|
-
[:lasgn, :bind, [:vcall, :allocate]],
|
462
|
-
[:attrasgn, [:lvar, :bind], :context=,
|
463
|
-
[:array, [:lvar, :ctx]]],
|
464
|
-
[:return, [:lvar, :bind]]]]],
|
465
379
|
"ParseTree" => s(:defs, s(:self), :setup,
|
466
380
|
s(:args, :ctx),
|
467
381
|
s(:scope,
|
@@ -475,10 +389,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
475
389
|
|
476
390
|
add_tests("block_lasgn",
|
477
391
|
"Ruby" => "x = (y = 1\n(y + 2))",
|
478
|
-
"RawParseTree" => [:lasgn, :x,
|
479
|
-
[:block,
|
480
|
-
[:lasgn, :y, [:lit, 1]],
|
481
|
-
[:call, [:lvar, :y], :+, [:array, [:lit, 2]]]]],
|
482
392
|
"ParseTree" => s(:lasgn, :x,
|
483
393
|
s(:block,
|
484
394
|
s(:lasgn, :y, s(:lit, 1)),
|
@@ -487,19 +397,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
487
397
|
|
488
398
|
add_tests("block_mystery_block",
|
489
399
|
"Ruby" => "a(b) do\n if b then\n true\n else\n c = false\n d { |x| c = true }\n c\n end\nend",
|
490
|
-
"RawParseTree" => [:iter,
|
491
|
-
[:fcall, :a, [:array, [:vcall, :b]]],
|
492
|
-
nil,
|
493
|
-
[:if,
|
494
|
-
[:vcall, :b],
|
495
|
-
[:true],
|
496
|
-
[:block,
|
497
|
-
[:dasgn_curr, :c, [:false]],
|
498
|
-
[:iter,
|
499
|
-
[:fcall, :d],
|
500
|
-
[:dasgn_curr, :x],
|
501
|
-
[:dasgn, :c, [:true]]],
|
502
|
-
[:dvar, :c]]]],
|
503
400
|
"ParseTree" => s(:iter,
|
504
401
|
s(:call, nil, :a,
|
505
402
|
s(:arglist, s(:call, nil, :b, s(:arglist)))),
|
@@ -517,16 +414,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
517
414
|
|
518
415
|
add_tests("block_pass_args_and_splat",
|
519
416
|
"Ruby" => "def blah(*args, &block)\n other(42, *args, &block)\nend",
|
520
|
-
"RawParseTree" => [:defn, :blah,
|
521
|
-
[:scope,
|
522
|
-
[:block,
|
523
|
-
[:args, :"*args"],
|
524
|
-
[:block_arg, :block],
|
525
|
-
[:block_pass,
|
526
|
-
[:lvar, :block],
|
527
|
-
[:fcall, :other,
|
528
|
-
[:argscat,
|
529
|
-
[:array, [:lit, 42]], [:lvar, :args]]]]]]],
|
530
417
|
"ParseTree" => s(:defn, :blah,
|
531
418
|
s(:args, :"*args", :"&block"),
|
532
419
|
s(:scope,
|
@@ -539,8 +426,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
539
426
|
|
540
427
|
add_tests("block_pass_call_0",
|
541
428
|
"Ruby" => "a.b(&c)",
|
542
|
-
"RawParseTree" => [:block_pass,
|
543
|
-
[:vcall, :c], [:call, [:vcall, :a], :b]],
|
544
429
|
"ParseTree" => s(:call,
|
545
430
|
s(:call, nil, :a, s(:arglist)),
|
546
431
|
:b,
|
@@ -550,9 +435,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
550
435
|
|
551
436
|
add_tests("block_pass_call_1",
|
552
437
|
"Ruby" => "a.b(4, &c)",
|
553
|
-
"RawParseTree" => [:block_pass,
|
554
|
-
[:vcall, :c],
|
555
|
-
[:call, [:vcall, :a], :b, [:array, [:lit, 4]]]],
|
556
438
|
"ParseTree" => s(:call,
|
557
439
|
s(:call, nil, :a, s(:arglist)),
|
558
440
|
:b,
|
@@ -563,10 +445,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
563
445
|
|
564
446
|
add_tests("block_pass_call_n",
|
565
447
|
"Ruby" => "a.b(1, 2, 3, &c)",
|
566
|
-
"RawParseTree" => [:block_pass,
|
567
|
-
[:vcall, :c],
|
568
|
-
[:call, [:vcall, :a], :b,
|
569
|
-
[:array, [:lit, 1], [:lit, 2], [:lit, 3]]]],
|
570
448
|
"ParseTree" => s(:call,
|
571
449
|
s(:call, nil, :a, s(:arglist)),
|
572
450
|
:b,
|
@@ -577,7 +455,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
577
455
|
|
578
456
|
add_tests("block_pass_fcall_0",
|
579
457
|
"Ruby" => "a(&b)",
|
580
|
-
"RawParseTree" => [:block_pass, [:vcall, :b], [:fcall, :a]],
|
581
458
|
"ParseTree" => s(:call, nil, :a,
|
582
459
|
s(:arglist,
|
583
460
|
s(:block_pass,
|
@@ -585,9 +462,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
585
462
|
|
586
463
|
add_tests("block_pass_fcall_1",
|
587
464
|
"Ruby" => "a(4, &b)",
|
588
|
-
"RawParseTree" => [:block_pass,
|
589
|
-
[:vcall, :b],
|
590
|
-
[:fcall, :a, [:array, [:lit, 4]]]],
|
591
465
|
"ParseTree" => s(:call, nil, :a,
|
592
466
|
s(:arglist,
|
593
467
|
s(:lit, 4),
|
@@ -596,10 +470,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
596
470
|
|
597
471
|
add_tests("block_pass_fcall_n",
|
598
472
|
"Ruby" => "a(1, 2, 3, &b)",
|
599
|
-
"RawParseTree" => [:block_pass,
|
600
|
-
[:vcall, :b],
|
601
|
-
[:fcall, :a,
|
602
|
-
[:array, [:lit, 1], [:lit, 2], [:lit, 3]]]],
|
603
473
|
"ParseTree" => s(:call, nil, :a,
|
604
474
|
s(:arglist,
|
605
475
|
s(:lit, 1), s(:lit, 2), s(:lit, 3),
|
@@ -608,13 +478,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
608
478
|
|
609
479
|
add_tests("block_pass_omgwtf",
|
610
480
|
"Ruby" => "define_attr_method(:x, :sequence_name, &Proc.new { |*args| nil })",
|
611
|
-
"RawParseTree" => [:block_pass,
|
612
|
-
[:iter,
|
613
|
-
[:call, [:const, :Proc], :new],
|
614
|
-
[:masgn, nil, [:dasgn_curr, :args], nil],
|
615
|
-
[:nil]],
|
616
|
-
[:fcall, :define_attr_method,
|
617
|
-
[:array, [:lit, :x], [:lit, :sequence_name]]]],
|
618
481
|
"ParseTree" => s(:call, nil, :define_attr_method,
|
619
482
|
s(:arglist,
|
620
483
|
s(:lit, :x),
|
@@ -629,15 +492,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
629
492
|
|
630
493
|
add_tests("block_pass_splat",
|
631
494
|
"Ruby" => "def blah(*args, &block)\n other(*args, &block)\nend",
|
632
|
-
"RawParseTree" => [:defn, :blah,
|
633
|
-
[:scope,
|
634
|
-
[:block,
|
635
|
-
[:args, :"*args"],
|
636
|
-
[:block_arg, :block],
|
637
|
-
[:block_pass,
|
638
|
-
[:lvar, :block],
|
639
|
-
[:fcall, :other,
|
640
|
-
[:splat, [:lvar, :args]]]]]]],
|
641
495
|
"ParseTree" => s(:defn, :blah,
|
642
496
|
s(:args, :"*args", :"&block"),
|
643
497
|
s(:scope,
|
@@ -649,10 +503,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
649
503
|
|
650
504
|
add_tests("block_pass_thingy",
|
651
505
|
"Ruby" => "r.read_body(dest, &block)",
|
652
|
-
"RawParseTree" => [:block_pass,
|
653
|
-
[:vcall, :block],
|
654
|
-
[:call, [:vcall, :r], :read_body,
|
655
|
-
[:array, [:vcall, :dest]]]],
|
656
506
|
"ParseTree" => s(:call,
|
657
507
|
s(:call, nil, :r, s(:arglist)),
|
658
508
|
:read_body,
|
@@ -663,14 +513,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
663
513
|
|
664
514
|
add_tests("block_stmt_after",
|
665
515
|
"Ruby" => "def f\n begin\n b\n rescue\n c\n end\n\n d\nend",
|
666
|
-
"RawParseTree" => [:defn, :f,
|
667
|
-
[:scope,
|
668
|
-
[:block,
|
669
|
-
[:args],
|
670
|
-
[:rescue,
|
671
|
-
[:vcall, :b],
|
672
|
-
[:resbody, nil, [:vcall, :c]]],
|
673
|
-
[:vcall, :d]]]],
|
674
516
|
"ParseTree" => s(:defn, :f,
|
675
517
|
s(:args),
|
676
518
|
s(:scope,
|
@@ -683,29 +525,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
683
525
|
s(:call, nil, :d, s(:arglist))))),
|
684
526
|
"Ruby2Ruby" => "def f\n b rescue c\n d\nend")
|
685
527
|
|
686
|
-
add_tests("block_stmt_after_mri_verbose_flag",
|
687
|
-
"RawParseTree" => [:defn, :f,
|
688
|
-
[:scope,
|
689
|
-
[:block,
|
690
|
-
[:args],
|
691
|
-
[:rescue, # no begin
|
692
|
-
[:vcall, :b],
|
693
|
-
[:resbody, nil, [:vcall, :c]]],
|
694
|
-
[:vcall, :d]]]])
|
695
|
-
|
696
528
|
copy_test_case "block_stmt_after", "Ruby"
|
697
529
|
copy_test_case "block_stmt_after", "ParseTree"
|
698
530
|
copy_test_case "block_stmt_after", "Ruby2Ruby"
|
699
531
|
|
700
532
|
add_tests("block_stmt_before",
|
701
533
|
"Ruby" => "def f\n a\n begin\n b\n rescue\n c\n end\nend",
|
702
|
-
"RawParseTree" => [:defn, :f,
|
703
|
-
[:scope,
|
704
|
-
[:block,
|
705
|
-
[:args],
|
706
|
-
[:vcall, :a],
|
707
|
-
[:rescue, [:vcall, :b],
|
708
|
-
[:resbody, nil, [:vcall, :c]]]]]],
|
709
534
|
"ParseTree" => s(:defn, :f,
|
710
535
|
s(:args),
|
711
536
|
s(:scope,
|
@@ -720,22 +545,10 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
720
545
|
# oddly... this one doesn't HAVE any differences when verbose... new?
|
721
546
|
copy_test_case "block_stmt_before", "Ruby"
|
722
547
|
copy_test_case "block_stmt_before", "ParseTree"
|
723
|
-
copy_test_case "block_stmt_before", "RawParseTree"
|
724
548
|
copy_test_case "block_stmt_before", "Ruby2Ruby"
|
725
549
|
|
726
550
|
add_tests("block_stmt_both",
|
727
551
|
"Ruby" => "def f\n a\n begin\n b\n rescue\n c\n end\n d\nend",
|
728
|
-
"RawParseTree" => [:defn, :f,
|
729
|
-
[:scope,
|
730
|
-
[:block,
|
731
|
-
[:args],
|
732
|
-
[:vcall, :a],
|
733
|
-
[:rescue,
|
734
|
-
[:vcall, :b],
|
735
|
-
[:resbody,
|
736
|
-
nil,
|
737
|
-
[:vcall, :c]]],
|
738
|
-
[:vcall, :d]]]],
|
739
552
|
"ParseTree" => s(:defn, :f, s(:args),
|
740
553
|
s(:scope,
|
741
554
|
s(:block,
|
@@ -748,29 +561,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
748
561
|
s(:call, nil, :d, s(:arglist))))),
|
749
562
|
"Ruby2Ruby" => "def f\n a\n b rescue c\n d\nend")
|
750
563
|
|
751
|
-
add_tests("block_stmt_both_mri_verbose_flag",
|
752
|
-
"RawParseTree" => [:defn, :f,
|
753
|
-
[:scope,
|
754
|
-
[:block,
|
755
|
-
[:args],
|
756
|
-
[:vcall, :a],
|
757
|
-
[:rescue, # no begin
|
758
|
-
[:vcall, :b],
|
759
|
-
[:resbody,
|
760
|
-
nil,
|
761
|
-
[:vcall, :c]]],
|
762
|
-
[:vcall, :d]]]])
|
763
|
-
|
764
564
|
copy_test_case "block_stmt_both", "Ruby"
|
765
565
|
copy_test_case "block_stmt_both", "ParseTree"
|
766
566
|
copy_test_case "block_stmt_both", "Ruby2Ruby"
|
767
567
|
|
768
568
|
add_tests("bmethod",
|
769
569
|
"Ruby" => [Examples, :unsplatted],
|
770
|
-
"RawParseTree" => [:defn, :unsplatted,
|
771
|
-
[:bmethod,
|
772
|
-
[:dasgn_curr, :x],
|
773
|
-
[:call, [:dvar, :x], :+, [:array, [:lit, 1]]]]],
|
774
570
|
"ParseTree" => s(:defn, :unsplatted,
|
775
571
|
s(:args, :x),
|
776
572
|
s(:scope,
|
@@ -783,11 +579,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
783
579
|
|
784
580
|
add_tests("bmethod_noargs",
|
785
581
|
"Ruby" => [Examples, :bmethod_noargs],
|
786
|
-
"RawParseTree" => [:defn, :bmethod_noargs,
|
787
|
-
[:bmethod,
|
788
|
-
nil,
|
789
|
-
[:call,
|
790
|
-
[:vcall, :x], :"+", [:array, [:lit, 1]]]]],
|
791
582
|
"ParseTree" => s(:defn, :bmethod_noargs,
|
792
583
|
s(:args),
|
793
584
|
s(:scope,
|
@@ -800,14 +591,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
800
591
|
|
801
592
|
add_tests("bmethod_splat",
|
802
593
|
"Ruby" => [Examples, :splatted],
|
803
|
-
"RawParseTree" => [:defn, :splatted,
|
804
|
-
[:bmethod,
|
805
|
-
[:masgn, nil, [:dasgn_curr, :args], nil],
|
806
|
-
[:block,
|
807
|
-
[:dasgn_curr, :y,
|
808
|
-
[:call, [:dvar, :args], :first]],
|
809
|
-
[:call, [:dvar, :y], :+,
|
810
|
-
[:array, [:lit, 42]]]]]],
|
811
594
|
"ParseTree" => s(:defn, :splatted,
|
812
595
|
s(:args, :"*args"),
|
813
596
|
s(:scope,
|
@@ -821,72 +604,54 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
821
604
|
|
822
605
|
add_tests("break",
|
823
606
|
"Ruby" => "loop { break if true }",
|
824
|
-
"RawParseTree" => [:iter,
|
825
|
-
[:fcall, :loop], nil,
|
826
|
-
[:if, [:true], [:break], nil]],
|
827
607
|
"ParseTree" => s(:iter,
|
828
608
|
s(:call, nil, :loop, s(:arglist)), nil,
|
829
609
|
s(:if, s(:true), s(:break), nil)))
|
830
610
|
|
831
611
|
add_tests("break_arg",
|
832
612
|
"Ruby" => "loop { break 42 if true }",
|
833
|
-
"RawParseTree" => [:iter,
|
834
|
-
[:fcall, :loop], nil,
|
835
|
-
[:if, [:true], [:break, [:lit, 42]], nil]],
|
836
613
|
"ParseTree" => s(:iter,
|
837
614
|
s(:call, nil, :loop, s(:arglist)), nil,
|
838
615
|
s(:if, s(:true), s(:break, s(:lit, 42)), nil)))
|
839
616
|
|
840
617
|
add_tests("call",
|
841
618
|
"Ruby" => "self.method",
|
842
|
-
"RawParseTree" => [:call, [:self], :method],
|
843
619
|
"ParseTree" => s(:call, s(:self), :method, s(:arglist)))
|
844
620
|
|
845
621
|
add_tests("call_arglist",
|
846
622
|
"Ruby" => "o.puts(42)",
|
847
|
-
"RawParseTree" => [:call, [:vcall, :o], :puts,
|
848
|
-
[:array, [:lit, 42]]],
|
849
623
|
"ParseTree" => s(:call, s(:call, nil, :o, s(:arglist)), :puts,
|
850
624
|
s(:arglist, s(:lit, 42))))
|
851
625
|
|
852
626
|
add_tests("call_no_space_symbol",
|
853
627
|
"Ruby" => "foo:bar",
|
854
|
-
"
|
855
|
-
"
|
628
|
+
"ParseTree" => s(:call, nil, :foo, s(:arglist, s(:lit, :bar))),
|
629
|
+
"Ruby2Ruby" => "foo(:bar)")
|
856
630
|
|
857
631
|
add_tests("ternary_symbol_no_spaces",
|
858
632
|
"Ruby" => "1?:x:1",
|
859
|
-
"
|
860
|
-
"
|
633
|
+
"ParseTree" => s(:if, s(:lit, 1), s(:lit, :x), s(:lit, 1)),
|
634
|
+
"Ruby2Ruby" => "1 ? (:x) : (1)")
|
861
635
|
|
862
636
|
add_19tests("label_in_callargs_in_ternary",
|
863
637
|
"Ruby" => "1 ? m(a: 2) : 1",
|
864
|
-
|
865
|
-
|
638
|
+
"ParseTree" => s(:if, s(:lit, 1),
|
639
|
+
s(:call, nil, :m,
|
640
|
+
s(:arglist,
|
641
|
+
s(:hash, s(:lit, :a), s(:lit, 2)))),
|
642
|
+
s(:lit, 1)))
|
866
643
|
|
867
644
|
add_19tests("label_in_bare_hash_in_array_in_ternary",
|
868
645
|
"Ruby" => "1 ? [:a, b: 2] : 1",
|
869
|
-
"RawParseTree" => [:if, [:array, [:lit, :a], [:hash, [:lit, :b], [:lit, 2]]], [:lit, 1]],
|
870
646
|
"ParseTree" => s(:if, s(:lit, 1), s(:array, s(:lit, :a), s(:hash, s(:lit, :b), s(:lit, 2))), s(:lit, 1)))
|
871
647
|
|
872
|
-
add_tests("ternary_object_no_spaces",
|
873
|
-
"Ruby" => "1 ?o:1",
|
874
|
-
"RawParseTree" => [:if, [:lit, 1], [:vcall, :o], [:lit, 1]],
|
875
|
-
"ParseTree" => s(:if, s(:lit, 1), s(:call, nil, :o, s(:arglist)), s(:lit, 1)))
|
876
|
-
|
877
648
|
add_tests("ternary_nil_no_space",
|
878
649
|
"Ruby" => "1 ? nil: 1",
|
879
|
-
"
|
880
|
-
"
|
650
|
+
"ParseTree" => s(:if, s(:lit, 1), s(:nil), s(:lit, 1)),
|
651
|
+
"Ruby2Ruby" => "1 ? (nil) : (1)")
|
881
652
|
|
882
653
|
add_tests("call_arglist_hash",
|
883
654
|
"Ruby" => "o.m(:a => 1, :b => 2)",
|
884
|
-
"RawParseTree" => [:call,
|
885
|
-
[:vcall, :o], :m,
|
886
|
-
[:array,
|
887
|
-
[:hash,
|
888
|
-
[:lit, :a], [:lit, 1],
|
889
|
-
[:lit, :b], [:lit, 2]]]],
|
890
655
|
"ParseTree" => s(:call,
|
891
656
|
s(:call, nil, :o, s(:arglist)), :m,
|
892
657
|
s(:arglist,
|
@@ -896,13 +661,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
896
661
|
|
897
662
|
add_tests("call_arglist_norm_hash",
|
898
663
|
"Ruby" => "o.m(42, :a => 1, :b => 2)",
|
899
|
-
"RawParseTree" => [:call,
|
900
|
-
[:vcall, :o], :m,
|
901
|
-
[:array,
|
902
|
-
[:lit, 42],
|
903
|
-
[:hash,
|
904
|
-
[:lit, :a], [:lit, 1],
|
905
|
-
[:lit, :b], [:lit, 2]]]],
|
906
664
|
"ParseTree" => s(:call,
|
907
665
|
s(:call, nil, :o, s(:arglist)), :m,
|
908
666
|
s(:arglist,
|
@@ -913,15 +671,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
913
671
|
|
914
672
|
add_tests("call_arglist_norm_hash_splat",
|
915
673
|
"Ruby" => "o.m(42, :a => 1, :b => 2, *c)",
|
916
|
-
"RawParseTree" => [:call,
|
917
|
-
[:vcall, :o], :m,
|
918
|
-
[:argscat,
|
919
|
-
[:array,
|
920
|
-
[:lit, 42],
|
921
|
-
[:hash,
|
922
|
-
[:lit, :a], [:lit, 1],
|
923
|
-
[:lit, :b], [:lit, 2]]],
|
924
|
-
[:vcall, :c]]],
|
925
674
|
"ParseTree" => s(:call,
|
926
675
|
s(:call, nil, :o, s(:arglist)), :m,
|
927
676
|
s(:arglist,
|
@@ -933,8 +682,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
933
682
|
|
934
683
|
add_tests("call_arglist_space",
|
935
684
|
"Ruby" => "a (1,2,3)",
|
936
|
-
"RawParseTree" => [:fcall, :a,
|
937
|
-
[:array, [:lit, 1], [:lit, 2], [:lit, 3]]],
|
938
685
|
"ParseTree" => s(:call, nil, :a,
|
939
686
|
s(:arglist,
|
940
687
|
s(:lit, 1), s(:lit, 2), s(:lit, 3))),
|
@@ -942,7 +689,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
942
689
|
|
943
690
|
add_tests("call_command",
|
944
691
|
"Ruby" => "1.b(c)",
|
945
|
-
"RawParseTree" => [:call, [:lit, 1], :b, [:array, [:vcall, :c]]],
|
946
692
|
"ParseTree" => s(:call,
|
947
693
|
s(:lit, 1),
|
948
694
|
:b,
|
@@ -950,10 +696,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
950
696
|
|
951
697
|
add_tests("call_expr",
|
952
698
|
"Ruby" => "(v = (1 + 1)).zero?",
|
953
|
-
"RawParseTree" => [:call,
|
954
|
-
[:lasgn, :v,
|
955
|
-
[:call, [:lit, 1], :+, [:array, [:lit, 1]]]],
|
956
|
-
:zero?],
|
957
699
|
"ParseTree" => s(:call,
|
958
700
|
s(:lasgn, :v,
|
959
701
|
s(:call, s(:lit, 1), :+,
|
@@ -962,9 +704,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
962
704
|
|
963
705
|
add_tests("call_index",
|
964
706
|
"Ruby" => "a = []\na[42]\n",
|
965
|
-
"RawParseTree" => [:block,
|
966
|
-
[:lasgn, :a, [:zarray]],
|
967
|
-
[:call, [:lvar, :a], :[], [:array, [:lit, 42]]]],
|
968
707
|
"ParseTree" => s(:block,
|
969
708
|
s(:lasgn, :a, s(:array)),
|
970
709
|
s(:call, s(:lvar, :a), :[],
|
@@ -972,15 +711,11 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
972
711
|
|
973
712
|
add_tests("call_index_no_args",
|
974
713
|
"Ruby" => "a[]",
|
975
|
-
"RawParseTree" => [:call, [:vcall, :a], :[]],
|
976
714
|
"ParseTree" => s(:call, s(:call, nil, :a, s(:arglist)),
|
977
715
|
:[], s(:arglist)))
|
978
716
|
|
979
717
|
add_tests("call_index_space",
|
980
718
|
"Ruby" => "a = []\na [42]\n",
|
981
|
-
"RawParseTree" => [:block,
|
982
|
-
[:lasgn, :a, [:zarray]],
|
983
|
-
[:call, [:lvar, :a], :[], [:array, [:lit, 42]]]],
|
984
719
|
"ParseTree" => s(:block,
|
985
720
|
s(:lasgn, :a, s(:array)),
|
986
721
|
s(:call, s(:lvar, :a), :[],
|
@@ -989,9 +724,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
989
724
|
|
990
725
|
add_tests("call_unary_neg",
|
991
726
|
"Ruby" => "-2**31",
|
992
|
-
"RawParseTree" => [:call,
|
993
|
-
[:call, [:lit, 2], :**, [:array, [:lit, 31]]],
|
994
|
-
:-@],
|
995
727
|
"ParseTree" => s(:call,
|
996
728
|
s(:call,
|
997
729
|
s(:lit, 2),
|
@@ -1002,31 +734,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1002
734
|
|
1003
735
|
add_tests("case",
|
1004
736
|
"Ruby" => "var = 2\nresult = \"\"\ncase var\nwhen 1 then\n puts(\"something\")\n result = \"red\"\nwhen 2, 3 then\n result = \"yellow\"\nwhen 4 then\n # do nothing\nelse\n result = \"green\"\nend\ncase result\nwhen \"red\" then\n var = 1\nwhen \"yellow\" then\n var = 2\nwhen \"green\" then\n var = 3\nelse\n # do nothing\nend\n",
|
1005
|
-
"RawParseTree" => [:block,
|
1006
|
-
[:lasgn, :var, [:lit, 2]],
|
1007
|
-
[:lasgn, :result, [:str, ""]],
|
1008
|
-
[:case,
|
1009
|
-
[:lvar, :var],
|
1010
|
-
[:when,
|
1011
|
-
[:array, [:lit, 1]],
|
1012
|
-
[:block,
|
1013
|
-
[:fcall, :puts,
|
1014
|
-
[:array, [:str, "something"]]],
|
1015
|
-
[:lasgn, :result, [:str, "red"]]]],
|
1016
|
-
[:when,
|
1017
|
-
[:array, [:lit, 2], [:lit, 3]],
|
1018
|
-
[:lasgn, :result, [:str, "yellow"]]],
|
1019
|
-
[:when, [:array, [:lit, 4]], nil],
|
1020
|
-
[:lasgn, :result, [:str, "green"]]],
|
1021
|
-
[:case,
|
1022
|
-
[:lvar, :result],
|
1023
|
-
[:when, [:array, [:str, "red"]],
|
1024
|
-
[:lasgn, :var, [:lit, 1]]],
|
1025
|
-
[:when, [:array, [:str, "yellow"]],
|
1026
|
-
[:lasgn, :var, [:lit, 2]]],
|
1027
|
-
[:when, [:array, [:str, "green"]],
|
1028
|
-
[:lasgn, :var, [:lit, 3]]],
|
1029
|
-
nil]],
|
1030
737
|
"ParseTree" => s(:block,
|
1031
738
|
s(:lasgn, :var, s(:lit, 2)),
|
1032
739
|
s(:lasgn, :result, s(:str, "")),
|
@@ -1055,29 +762,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1055
762
|
|
1056
763
|
add_tests("case_nested",
|
1057
764
|
"Ruby" => "var1 = 1\nvar2 = 2\nresult = nil\ncase var1\nwhen 1 then\n case var2\n when 1 then\n result = 1\n when 2 then\n result = 2\n else\n result = 3\n end\nwhen 2 then\n case var2\n when 1 then\n result = 4\n when 2 then\n result = 5\n else\n result = 6\n end\nelse\n result = 7\nend\n",
|
1058
|
-
"RawParseTree" => [:block,
|
1059
|
-
[:lasgn, :var1, [:lit, 1]],
|
1060
|
-
[:lasgn, :var2, [:lit, 2]],
|
1061
|
-
[:lasgn, :result, [:nil]],
|
1062
|
-
[:case,
|
1063
|
-
[:lvar, :var1],
|
1064
|
-
[:when, [:array, [:lit, 1]],
|
1065
|
-
[:case,
|
1066
|
-
[:lvar, :var2],
|
1067
|
-
[:when, [:array, [:lit, 1]],
|
1068
|
-
[:lasgn, :result, [:lit, 1]]],
|
1069
|
-
[:when, [:array, [:lit, 2]],
|
1070
|
-
[:lasgn, :result, [:lit, 2]]],
|
1071
|
-
[:lasgn, :result, [:lit, 3]]]],
|
1072
|
-
[:when, [:array, [:lit, 2]],
|
1073
|
-
[:case,
|
1074
|
-
[:lvar, :var2],
|
1075
|
-
[:when, [:array, [:lit, 1]],
|
1076
|
-
[:lasgn, :result, [:lit, 4]]],
|
1077
|
-
[:when, [:array, [:lit, 2]],
|
1078
|
-
[:lasgn, :result, [:lit, 5]]],
|
1079
|
-
[:lasgn, :result, [:lit, 6]]]],
|
1080
|
-
[:lasgn, :result, [:lit, 7]]]],
|
1081
765
|
"ParseTree" => s(:block,
|
1082
766
|
s(:lasgn, :var1, s(:lit, 1)),
|
1083
767
|
s(:lasgn, :var2, s(:lit, 2)),
|
@@ -1104,14 +788,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1104
788
|
|
1105
789
|
add_tests("case_nested_inner_no_expr",
|
1106
790
|
"Ruby" => "case a\nwhen b then\n case\n when (d and e) then\n f\n else\n # do nothing\n end\nelse\n # do nothing\nend",
|
1107
|
-
"RawParseTree" => [:case, [:vcall, :a],
|
1108
|
-
[:when, [:array, [:vcall, :b]],
|
1109
|
-
[:case, nil,
|
1110
|
-
[:when,
|
1111
|
-
[:array, [:and, [:vcall, :d], [:vcall, :e]]],
|
1112
|
-
[:vcall, :f]],
|
1113
|
-
nil]],
|
1114
|
-
nil],
|
1115
791
|
"ParseTree" => s(:case, s(:call, nil, :a, s(:arglist)),
|
1116
792
|
s(:when,
|
1117
793
|
s(:array, s(:call, nil, :b, s(:arglist))),
|
@@ -1127,18 +803,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1127
803
|
|
1128
804
|
add_tests("case_no_expr",
|
1129
805
|
"Ruby" => "case\nwhen (a == 1) then\n :a\nwhen (a == 2) then\n :b\nelse\n :c\nend",
|
1130
|
-
"RawParseTree" => [:case, nil,
|
1131
|
-
[:when,
|
1132
|
-
[:array,
|
1133
|
-
[:call, [:vcall, :a], :==,
|
1134
|
-
[:array, [:lit, 1]]]],
|
1135
|
-
[:lit, :a]],
|
1136
|
-
[:when,
|
1137
|
-
[:array,
|
1138
|
-
[:call, [:vcall, :a], :==,
|
1139
|
-
[:array, [:lit, 2]]]],
|
1140
|
-
[:lit, :b]],
|
1141
|
-
[:lit, :c]],
|
1142
806
|
"ParseTree" => s(:case, nil,
|
1143
807
|
s(:when,
|
1144
808
|
s(:array,
|
@@ -1158,12 +822,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1158
822
|
|
1159
823
|
add_tests("case_splat",
|
1160
824
|
"Ruby" => "case a\nwhen :b, *c then\n d\nelse\n e\nend",
|
1161
|
-
"RawParseTree" => [:case, [:vcall, :a],
|
1162
|
-
[:when,
|
1163
|
-
[:array,
|
1164
|
-
[:lit, :b], [:when, [:vcall, :c], nil]], # wtf?
|
1165
|
-
[:vcall, :d]],
|
1166
|
-
[:vcall, :e]],
|
1167
825
|
"ParseTree" => s(:case, s(:call, nil, :a, s(:arglist)),
|
1168
826
|
s(:when,
|
1169
827
|
s(:array,
|
@@ -1176,26 +834,10 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1176
834
|
|
1177
835
|
add_tests("cdecl",
|
1178
836
|
"Ruby" => "X = 42",
|
1179
|
-
"RawParseTree" => [:cdecl, :X, [:lit, 42]],
|
1180
837
|
"ParseTree" => s(:cdecl, :X, s(:lit, 42)))
|
1181
838
|
|
1182
839
|
add_tests("class_plain",
|
1183
840
|
"Ruby" => "class X\n puts((1 + 1))\n def blah\n puts(\"hello\")\n end\nend",
|
1184
|
-
"RawParseTree" => [:class,
|
1185
|
-
:X,
|
1186
|
-
nil,
|
1187
|
-
[:scope,
|
1188
|
-
[:block,
|
1189
|
-
[:fcall, :puts,
|
1190
|
-
[:array,
|
1191
|
-
[:call, [:lit, 1], :+,
|
1192
|
-
[:array, [:lit, 1]]]]],
|
1193
|
-
[:defn, :blah,
|
1194
|
-
[:scope,
|
1195
|
-
[:block,
|
1196
|
-
[:args],
|
1197
|
-
[:fcall, :puts,
|
1198
|
-
[:array, [:str, "hello"]]]]]]]]],
|
1199
841
|
"ParseTree" => s(:class,
|
1200
842
|
:X,
|
1201
843
|
nil,
|
@@ -1215,24 +857,16 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1215
857
|
|
1216
858
|
add_tests("class_scoped",
|
1217
859
|
"Ruby" => "class X::Y\n c\nend",
|
1218
|
-
"RawParseTree" => [:class, [:colon2, [:const, :X], :Y], nil,
|
1219
|
-
[:scope, [:vcall, :c]]],
|
1220
860
|
"ParseTree" => s(:class, s(:colon2, s(:const, :X), :Y), nil,
|
1221
861
|
s(:scope, s(:call, nil, :c, s(:arglist)))))
|
1222
862
|
|
1223
863
|
add_tests("class_scoped3",
|
1224
864
|
"Ruby" => "class ::Y\n c\nend",
|
1225
|
-
"RawParseTree" => [:class, [:colon3, :Y], nil,
|
1226
|
-
[:scope, [:vcall, :c]]],
|
1227
865
|
"ParseTree" => s(:class, s(:colon3, :Y), nil,
|
1228
866
|
s(:scope, s(:call, nil, :c, s(:arglist)))))
|
1229
867
|
|
1230
868
|
add_tests("class_super_array",
|
1231
869
|
"Ruby" => "class X < Array\nend",
|
1232
|
-
"RawParseTree" => [:class,
|
1233
|
-
:X,
|
1234
|
-
[:const, :Array],
|
1235
|
-
[:scope]],
|
1236
870
|
"ParseTree" => s(:class,
|
1237
871
|
:X,
|
1238
872
|
s(:const, :Array),
|
@@ -1240,10 +874,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1240
874
|
|
1241
875
|
add_tests("class_super_expr",
|
1242
876
|
"Ruby" => "class X < expr\nend",
|
1243
|
-
"RawParseTree" => [:class,
|
1244
|
-
:X,
|
1245
|
-
[:vcall, :expr],
|
1246
|
-
[:scope]],
|
1247
877
|
"ParseTree" => s(:class,
|
1248
878
|
:X,
|
1249
879
|
s(:call, nil, :expr, s(:arglist)),
|
@@ -1251,10 +881,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1251
881
|
|
1252
882
|
add_tests("class_super_object",
|
1253
883
|
"Ruby" => "class X < Object\nend",
|
1254
|
-
"RawParseTree" => [:class,
|
1255
|
-
:X,
|
1256
|
-
[:const, :Object],
|
1257
|
-
[:scope]],
|
1258
884
|
"ParseTree" => s(:class,
|
1259
885
|
:X,
|
1260
886
|
s(:const, :Object),
|
@@ -1262,47 +888,36 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1262
888
|
|
1263
889
|
add_tests("colon2",
|
1264
890
|
"Ruby" => "X::Y",
|
1265
|
-
"RawParseTree" => [:colon2, [:const, :X], :Y],
|
1266
891
|
"ParseTree" => s(:colon2, s(:const, :X), :Y))
|
1267
892
|
|
1268
893
|
add_tests("colon3",
|
1269
894
|
"Ruby" => "::X",
|
1270
|
-
"RawParseTree" => [:colon3, :X],
|
1271
895
|
"ParseTree" => s(:colon3, :X))
|
1272
896
|
|
1273
897
|
add_tests("const",
|
1274
898
|
"Ruby" => "X",
|
1275
|
-
"RawParseTree" => [:const, :X],
|
1276
899
|
"ParseTree" => s(:const, :X))
|
1277
900
|
|
1278
901
|
add_tests("constX",
|
1279
902
|
"Ruby" => "X = 1",
|
1280
|
-
"RawParseTree" => [:cdecl, :X, [:lit, 1]],
|
1281
903
|
"ParseTree" => s(:cdecl, :X, s(:lit, 1)))
|
1282
904
|
|
1283
905
|
add_tests("constY",
|
1284
906
|
"Ruby" => "::X = 1",
|
1285
|
-
"RawParseTree" => [:cdecl, [:colon3, :X], [:lit, 1]],
|
1286
907
|
"ParseTree" => s(:cdecl, s(:colon3, :X), s(:lit, 1)))
|
1287
908
|
|
1288
909
|
add_tests("constZ",
|
1289
910
|
"Ruby" => "X::Y = 1",
|
1290
|
-
"RawParseTree" => [:cdecl, [:colon2, [:const, :X], :Y], [:lit, 1]],
|
1291
911
|
"ParseTree" => s(:cdecl,
|
1292
912
|
s(:colon2, s(:const, :X), :Y),
|
1293
913
|
s(:lit, 1)))
|
1294
914
|
|
1295
915
|
add_tests("cvar",
|
1296
916
|
"Ruby" => "@@x",
|
1297
|
-
"RawParseTree" => [:cvar, :@@x],
|
1298
917
|
"ParseTree" => s(:cvar, :@@x))
|
1299
918
|
|
1300
919
|
add_tests("cvasgn",
|
1301
920
|
"Ruby" => "def x\n @@blah = 1\nend",
|
1302
|
-
"RawParseTree" => [:defn, :x,
|
1303
|
-
[:scope,
|
1304
|
-
[:block, [:args],
|
1305
|
-
[:cvasgn, :@@blah, [:lit, 1]]]]],
|
1306
921
|
"ParseTree" => s(:defn, :x,
|
1307
922
|
s(:args),
|
1308
923
|
s(:scope,
|
@@ -1311,11 +926,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1311
926
|
|
1312
927
|
add_tests("cvasgn_cls_method",
|
1313
928
|
"Ruby" => "def self.quiet_mode=(boolean)\n @@quiet_mode = boolean\nend",
|
1314
|
-
"RawParseTree" => [:defs, [:self], :quiet_mode=,
|
1315
|
-
[:scope,
|
1316
|
-
[:block,
|
1317
|
-
[:args, :boolean],
|
1318
|
-
[:cvasgn, :@@quiet_mode, [:lvar, :boolean]]]]],
|
1319
929
|
"ParseTree" => s(:defs, s(:self), :quiet_mode=,
|
1320
930
|
s(:args, :boolean),
|
1321
931
|
s(:scope,
|
@@ -1325,24 +935,11 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1325
935
|
|
1326
936
|
add_tests("cvdecl",
|
1327
937
|
"Ruby" => "class X\n @@blah = 1\nend",
|
1328
|
-
"RawParseTree" => [:class, :X, nil,
|
1329
|
-
[:scope, [:cvdecl, :@@blah, [:lit, 1]]]],
|
1330
938
|
"ParseTree" => s(:class, :X, nil,
|
1331
939
|
s(:scope, s(:cvdecl, :@@blah, s(:lit, 1)))))
|
1332
940
|
|
1333
941
|
add_tests("dasgn_0",
|
1334
942
|
"Ruby" => "a.each { |x| b.each { |y| x = (x + 1) } if true }",
|
1335
|
-
"RawParseTree" => [:iter,
|
1336
|
-
[:call, [:vcall, :a], :each],
|
1337
|
-
[:dasgn_curr, :x],
|
1338
|
-
[:if, [:true],
|
1339
|
-
[:iter,
|
1340
|
-
[:call, [:vcall, :b], :each],
|
1341
|
-
[:dasgn_curr, :y],
|
1342
|
-
[:dasgn, :x,
|
1343
|
-
[:call, [:dvar, :x], :+,
|
1344
|
-
[:array, [:lit, 1]]]]],
|
1345
|
-
nil]],
|
1346
943
|
"ParseTree" => s(:iter,
|
1347
944
|
s(:call, s(:call, nil, :a, s(:arglist)), :each,
|
1348
945
|
s(:arglist)),
|
@@ -1360,17 +957,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1360
957
|
|
1361
958
|
add_tests("dasgn_1",
|
1362
959
|
"Ruby" => "a.each { |x| b.each { |y| c = (c + 1) } if true }",
|
1363
|
-
"RawParseTree" => [:iter,
|
1364
|
-
[:call, [:vcall, :a], :each],
|
1365
|
-
[:dasgn_curr, :x],
|
1366
|
-
[:if, [:true],
|
1367
|
-
[:iter,
|
1368
|
-
[:call, [:vcall, :b], :each],
|
1369
|
-
[:dasgn_curr, :y],
|
1370
|
-
[:dasgn_curr, :c,
|
1371
|
-
[:call, [:dvar, :c], :+,
|
1372
|
-
[:array, [:lit, 1]]]]],
|
1373
|
-
nil]],
|
1374
960
|
"ParseTree" => s(:iter,
|
1375
961
|
s(:call, s(:call, nil, :a, s(:arglist)), :each,
|
1376
962
|
s(:arglist)),
|
@@ -1388,19 +974,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1388
974
|
|
1389
975
|
add_tests("dasgn_2",
|
1390
976
|
"Ruby" => "a.each do |x|\n if true then\n c = 0\n b.each { |y| c = (c + 1) }\n end\nend", # FIX: hate that extra newline!
|
1391
|
-
"RawParseTree" => [:iter,
|
1392
|
-
[:call, [:vcall, :a], :each],
|
1393
|
-
[:dasgn_curr, :x],
|
1394
|
-
[:if, [:true],
|
1395
|
-
[:block,
|
1396
|
-
[:dasgn_curr, :c, [:lit, 0]],
|
1397
|
-
[:iter,
|
1398
|
-
[:call, [:vcall, :b], :each],
|
1399
|
-
[:dasgn_curr, :y],
|
1400
|
-
[:dasgn, :c,
|
1401
|
-
[:call, [:dvar, :c], :+,
|
1402
|
-
[:array, [:lit, 1]]]]]],
|
1403
|
-
nil]],
|
1404
977
|
"ParseTree" => s(:iter,
|
1405
978
|
s(:call, s(:call, nil, :a, s(:arglist)), :each,
|
1406
979
|
s(:arglist)),
|
@@ -1420,16 +993,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1420
993
|
|
1421
994
|
add_tests("dasgn_curr",
|
1422
995
|
"Ruby" => "data.each do |x, y|\n a = 1\n b = a\n b = a = x\nend",
|
1423
|
-
"RawParseTree" => [:iter,
|
1424
|
-
[:call, [:vcall, :data], :each],
|
1425
|
-
[:masgn,
|
1426
|
-
[:array, [:dasgn_curr, :x], [:dasgn_curr, :y]],
|
1427
|
-
nil, nil],
|
1428
|
-
[:block,
|
1429
|
-
[:dasgn_curr, :a, [:lit, 1]],
|
1430
|
-
[:dasgn_curr, :b, [:dvar, :a]],
|
1431
|
-
[:dasgn_curr, :b,
|
1432
|
-
[:dasgn_curr, :a, [:dvar, :x]]]]],
|
1433
996
|
"ParseTree" => s(:iter,
|
1434
997
|
s(:call, s(:call, nil, :data,
|
1435
998
|
s(:arglist)), :each, s(:arglist)),
|
@@ -1442,22 +1005,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1442
1005
|
|
1443
1006
|
add_tests("dasgn_icky",
|
1444
1007
|
"Ruby" => "a do\n v = nil\n assert_block(full_message) do\n begin\n yield\n rescue Exception => v\n break\n end\n end\nend",
|
1445
|
-
"RawParseTree" => [:iter,
|
1446
|
-
[:fcall, :a],
|
1447
|
-
nil,
|
1448
|
-
[:block,
|
1449
|
-
[:dasgn_curr, :v, [:nil]],
|
1450
|
-
[:iter,
|
1451
|
-
[:fcall, :assert_block,
|
1452
|
-
[:array, [:vcall, :full_message]]],
|
1453
|
-
nil,
|
1454
|
-
[:rescue,
|
1455
|
-
[:yield],
|
1456
|
-
[:resbody,
|
1457
|
-
[:array, [:const, :Exception]],
|
1458
|
-
[:block,
|
1459
|
-
[:dasgn, :v,
|
1460
|
-
[:gvar, :$!]], [:break]]]]]]],
|
1461
1008
|
"ParseTree" => s(:iter,
|
1462
1009
|
s(:call, nil, :a, s(:arglist)),
|
1463
1010
|
nil,
|
@@ -1479,14 +1026,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1479
1026
|
|
1480
1027
|
add_tests("dasgn_mixed",
|
1481
1028
|
"Ruby" => "t = 0\nns.each { |n| t += n }\n",
|
1482
|
-
"RawParseTree" => [:block,
|
1483
|
-
[:lasgn, :t, [:lit, 0]],
|
1484
|
-
[:iter,
|
1485
|
-
[:call, [:vcall, :ns], :each],
|
1486
|
-
[:dasgn_curr, :n],
|
1487
|
-
[:lasgn, :t,
|
1488
|
-
[:call, [:lvar, :t], :+,
|
1489
|
-
[:array, [:dvar, :n]]]]]],
|
1490
1029
|
"ParseTree" => s(:block,
|
1491
1030
|
s(:lasgn, :t, s(:lit, 0)),
|
1492
1031
|
s(:iter,
|
@@ -1500,54 +1039,29 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1500
1039
|
|
1501
1040
|
add_tests("defined",
|
1502
1041
|
"Ruby" => "defined? $x",
|
1503
|
-
"RawParseTree" => [:defined, [:gvar, :$x]],
|
1504
1042
|
"ParseTree" => s(:defined, s(:gvar, :$x)))
|
1505
1043
|
|
1506
1044
|
# TODO: make all the defn_args* p their arglist
|
1507
1045
|
add_tests("defn_args_block",
|
1508
1046
|
"Ruby" => "def f(&block)\n # do nothing\nend",
|
1509
|
-
"RawParseTree" => [:defn, :f,
|
1510
|
-
[:scope,
|
1511
|
-
[:block,
|
1512
|
-
[:args],
|
1513
|
-
[:block_arg, :block],
|
1514
|
-
[:nil]]]],
|
1515
1047
|
"ParseTree" => s(:defn, :f,
|
1516
1048
|
s(:args, :"&block"),
|
1517
1049
|
s(:scope, s(:block, s(:nil)))))
|
1518
1050
|
|
1519
1051
|
add_tests("defn_args_mand",
|
1520
1052
|
"Ruby" => "def f(mand)\n # do nothing\nend",
|
1521
|
-
"RawParseTree" => [:defn, :f,
|
1522
|
-
[:scope,
|
1523
|
-
[:block,
|
1524
|
-
[:args, :mand],
|
1525
|
-
[:nil]]]],
|
1526
1053
|
"ParseTree" => s(:defn, :f,
|
1527
1054
|
s(:args, :mand),
|
1528
1055
|
s(:scope, s(:block, s(:nil)))))
|
1529
1056
|
|
1530
1057
|
add_tests("defn_args_mand_block",
|
1531
1058
|
"Ruby" => "def f(mand, &block)\n # do nothing\nend",
|
1532
|
-
"RawParseTree" => [:defn, :f,
|
1533
|
-
[:scope,
|
1534
|
-
[:block,
|
1535
|
-
[:args, :mand],
|
1536
|
-
[:block_arg, :block],
|
1537
|
-
[:nil]]]],
|
1538
1059
|
"ParseTree" => s(:defn, :f,
|
1539
1060
|
s(:args, :mand, :"&block"),
|
1540
1061
|
s(:scope, s(:block, s(:nil)))))
|
1541
1062
|
|
1542
1063
|
add_tests("defn_args_mand_opt",
|
1543
1064
|
"Ruby" => "def f(mand, opt = 42)\n # do nothing\nend",
|
1544
|
-
"RawParseTree" => [:defn, :f,
|
1545
|
-
[:scope,
|
1546
|
-
[:block,
|
1547
|
-
[:args, :mand, :opt,
|
1548
|
-
[:block,
|
1549
|
-
[:lasgn, :opt, [:lit, 42]]]],
|
1550
|
-
[:nil]]]],
|
1551
1065
|
"ParseTree" => s(:defn, :f,
|
1552
1066
|
s(:args, :mand, :opt,
|
1553
1067
|
s(:block,
|
@@ -1556,14 +1070,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1556
1070
|
|
1557
1071
|
add_tests("defn_args_mand_opt_block",
|
1558
1072
|
"Ruby" => "def f(mand, opt = 42, &block)\n # do nothing\nend",
|
1559
|
-
"RawParseTree" => [:defn, :f,
|
1560
|
-
[:scope,
|
1561
|
-
[:block,
|
1562
|
-
[:args, :mand, :opt,
|
1563
|
-
[:block,
|
1564
|
-
[:lasgn, :opt, [:lit, 42]]]],
|
1565
|
-
[:block_arg, :block],
|
1566
|
-
[:nil]]]],
|
1567
1073
|
"ParseTree" => s(:defn, :f,
|
1568
1074
|
s(:args, :mand, :opt, :"&block",
|
1569
1075
|
s(:block,
|
@@ -1572,13 +1078,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1572
1078
|
|
1573
1079
|
add_tests("defn_args_mand_opt_splat",
|
1574
1080
|
"Ruby" => "def f(mand, opt = 42, *rest)\n # do nothing\nend",
|
1575
|
-
"RawParseTree" => [:defn, :f,
|
1576
|
-
[:scope,
|
1577
|
-
[:block,
|
1578
|
-
[:args, :mand, :opt, :"*rest",
|
1579
|
-
[:block,
|
1580
|
-
[:lasgn, :opt, [:lit, 42]]]],
|
1581
|
-
[:nil]]]],
|
1582
1081
|
"ParseTree" => s(:defn, :f,
|
1583
1082
|
s(:args, :mand, :opt, :"*rest",
|
1584
1083
|
s(:block,
|
@@ -1587,14 +1086,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1587
1086
|
|
1588
1087
|
add_tests("defn_args_mand_opt_splat_block",
|
1589
1088
|
"Ruby" => "def f(mand, opt = 42, *rest, &block)\n # do nothing\nend",
|
1590
|
-
"RawParseTree" => [:defn, :f,
|
1591
|
-
[:scope,
|
1592
|
-
[:block,
|
1593
|
-
[:args, :mand, :opt, :"*rest",
|
1594
|
-
[:block,
|
1595
|
-
[:lasgn, :opt, [:lit, 42]]]],
|
1596
|
-
[:block_arg, :block],
|
1597
|
-
[:nil]]]],
|
1598
1089
|
"ParseTree" => s(:defn, :f,
|
1599
1090
|
s(:args, :mand, :opt, :"*rest", :"&block",
|
1600
1091
|
s(:block,
|
@@ -1603,12 +1094,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1603
1094
|
|
1604
1095
|
add_tests("defn_args_mand_opt_splat_no_name",
|
1605
1096
|
"Ruby" => "def x(a, b = 42, *)\n # do nothing\nend",
|
1606
|
-
"RawParseTree" => [:defn, :x,
|
1607
|
-
[:scope,
|
1608
|
-
[:block,
|
1609
|
-
[:args, :a, :b, :"*",
|
1610
|
-
[:block, [:lasgn, :b, [:lit, 42]]]],
|
1611
|
-
[:nil]]]],
|
1612
1097
|
"ParseTree" => s(:defn, :x,
|
1613
1098
|
s(:args, :a, :b, :"*",
|
1614
1099
|
s(:block, s(:lasgn, :b, s(:lit, 42)))),
|
@@ -1618,35 +1103,18 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1618
1103
|
|
1619
1104
|
add_tests("defn_args_mand_splat",
|
1620
1105
|
"Ruby" => "def f(mand, *rest)\n # do nothing\nend",
|
1621
|
-
"RawParseTree" => [:defn, :f,
|
1622
|
-
[:scope,
|
1623
|
-
[:block,
|
1624
|
-
[:args, :mand, :"*rest"],
|
1625
|
-
[:nil]]]],
|
1626
1106
|
"ParseTree" => s(:defn, :f,
|
1627
1107
|
s(:args, :mand, :"*rest"),
|
1628
1108
|
s(:scope, s(:block, s(:nil)))))
|
1629
1109
|
|
1630
1110
|
add_tests("defn_args_mand_splat_block",
|
1631
1111
|
"Ruby" => "def f(mand, *rest, &block)\n # do nothing\nend",
|
1632
|
-
"RawParseTree" => [:defn, :f,
|
1633
|
-
[:scope,
|
1634
|
-
[:block,
|
1635
|
-
[:args, :mand, :"*rest"],
|
1636
|
-
[:block_arg, :block],
|
1637
|
-
[:nil]]]],
|
1638
1112
|
"ParseTree" => s(:defn, :f,
|
1639
1113
|
s(:args, :mand, :"*rest", :"&block"),
|
1640
1114
|
s(:scope, s(:block, s(:nil)))))
|
1641
1115
|
|
1642
1116
|
add_tests("defn_args_mand_splat_no_name",
|
1643
1117
|
"Ruby" => "def x(a, *args)\n p(a, args)\nend",
|
1644
|
-
"RawParseTree" => [:defn, :x,
|
1645
|
-
[:scope,
|
1646
|
-
[:block,
|
1647
|
-
[:args, :a, :"*args"],
|
1648
|
-
[:fcall, :p,
|
1649
|
-
[:array, [:lvar, :a], [:lvar, :args]]]]]],
|
1650
1118
|
"ParseTree" => s(:defn, :x,
|
1651
1119
|
s(:args, :a, :"*args"),
|
1652
1120
|
s(:scope,
|
@@ -1656,21 +1124,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1656
1124
|
|
1657
1125
|
add_tests("defn_args_none",
|
1658
1126
|
"Ruby" => "def empty\n # do nothing\nend",
|
1659
|
-
"RawParseTree" => [:defn, :empty,
|
1660
|
-
[:scope, [:block, [:args], [:nil]]]],
|
1661
1127
|
"ParseTree" => s(:defn, :empty,
|
1662
1128
|
s(:args),
|
1663
1129
|
s(:scope, s(:block, s(:nil)))))
|
1664
1130
|
|
1665
1131
|
add_tests("defn_args_opt",
|
1666
1132
|
"Ruby" => "def f(opt = 42)\n # do nothing\nend",
|
1667
|
-
"RawParseTree" => [:defn, :f,
|
1668
|
-
[:scope,
|
1669
|
-
[:block,
|
1670
|
-
[:args, :opt,
|
1671
|
-
[:block,
|
1672
|
-
[:lasgn, :opt, [:lit, 42]]]],
|
1673
|
-
[:nil]]]],
|
1674
1133
|
"ParseTree" => s(:defn, :f,
|
1675
1134
|
s(:args, :opt,
|
1676
1135
|
s(:block,
|
@@ -1679,14 +1138,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1679
1138
|
|
1680
1139
|
add_tests("defn_args_opt_block",
|
1681
1140
|
"Ruby" => "def f(opt = 42, &block)\n # do nothing\nend",
|
1682
|
-
"RawParseTree" => [:defn, :f,
|
1683
|
-
[:scope,
|
1684
|
-
[:block,
|
1685
|
-
[:args, :opt,
|
1686
|
-
[:block,
|
1687
|
-
[:lasgn, :opt, [:lit, 42]]]],
|
1688
|
-
[:block_arg, :block],
|
1689
|
-
[:nil]]]],
|
1690
1141
|
"ParseTree" => s(:defn, :f,
|
1691
1142
|
s(:args, :opt, :"&block",
|
1692
1143
|
s(:block,
|
@@ -1695,13 +1146,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1695
1146
|
|
1696
1147
|
add_tests("defn_args_opt_splat",
|
1697
1148
|
"Ruby" => "def f(opt = 42, *rest)\n # do nothing\nend",
|
1698
|
-
"RawParseTree" => [:defn, :f,
|
1699
|
-
[:scope,
|
1700
|
-
[:block,
|
1701
|
-
[:args, :opt, :"*rest",
|
1702
|
-
[:block,
|
1703
|
-
[:lasgn, :opt, [:lit, 42]]]],
|
1704
|
-
[:nil]]]],
|
1705
1149
|
"ParseTree" => s(:defn, :f,
|
1706
1150
|
s(:args, :opt, :"*rest",
|
1707
1151
|
s(:block,
|
@@ -1710,14 +1154,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1710
1154
|
|
1711
1155
|
add_tests("defn_args_opt_splat_block",
|
1712
1156
|
"Ruby" => "def f(opt = 42, *rest, &block)\n # do nothing\nend",
|
1713
|
-
"RawParseTree" => [:defn, :f,
|
1714
|
-
[:scope,
|
1715
|
-
[:block,
|
1716
|
-
[:args, :opt, :"*rest",
|
1717
|
-
[:block,
|
1718
|
-
[:lasgn, :opt, [:lit, 42]]]],
|
1719
|
-
[:block_arg, :block],
|
1720
|
-
[:nil]]]],
|
1721
1157
|
"ParseTree" => s(:defn, :f,
|
1722
1158
|
s(:args, :opt, :"*rest", :"&block",
|
1723
1159
|
s(:block,
|
@@ -1726,12 +1162,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1726
1162
|
|
1727
1163
|
add_tests("defn_args_opt_splat_no_name",
|
1728
1164
|
"Ruby" => "def x(b = 42, *)\n # do nothing\nend",
|
1729
|
-
"RawParseTree" => [:defn, :x,
|
1730
|
-
[:scope,
|
1731
|
-
[:block,
|
1732
|
-
[:args, :b, :"*",
|
1733
|
-
[:block, [:lasgn, :b, [:lit, 42]]]],
|
1734
|
-
[:nil]]]],
|
1735
1165
|
"ParseTree" => s(:defn, :x,
|
1736
1166
|
s(:args, :b, :"*",
|
1737
1167
|
s(:block, s(:lasgn, :b, s(:lit, 42)))),
|
@@ -1741,22 +1171,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1741
1171
|
|
1742
1172
|
add_tests("defn_args_splat",
|
1743
1173
|
"Ruby" => "def f(*rest)\n # do nothing\nend",
|
1744
|
-
"RawParseTree" => [:defn, :f,
|
1745
|
-
[:scope,
|
1746
|
-
[:block,
|
1747
|
-
[:args, :"*rest"],
|
1748
|
-
[:nil]]]],
|
1749
1174
|
"ParseTree" => s(:defn, :f,
|
1750
1175
|
s(:args, :"*rest"),
|
1751
1176
|
s(:scope, s(:block, s(:nil)))))
|
1752
1177
|
|
1753
1178
|
add_tests("defn_args_splat_no_name",
|
1754
1179
|
"Ruby" => "def x(*)\n # do nothing\nend",
|
1755
|
-
"RawParseTree" => [:defn, :x,
|
1756
|
-
[:scope,
|
1757
|
-
[:block,
|
1758
|
-
[:args, :"*"],
|
1759
|
-
[:nil]]]],
|
1760
1180
|
"ParseTree" => s(:defn, :x,
|
1761
1181
|
s(:args, :"*"),
|
1762
1182
|
s(:scope,
|
@@ -1765,25 +1185,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1765
1185
|
|
1766
1186
|
add_tests("defn_or",
|
1767
1187
|
"Ruby" => "def |(o)\n # do nothing\nend",
|
1768
|
-
"RawParseTree" => [:defn, :|,
|
1769
|
-
[:scope, [:block, [:args, :o], [:nil]]]],
|
1770
1188
|
"ParseTree" => s(:defn, :|,
|
1771
1189
|
s(:args, :o),
|
1772
1190
|
s(:scope, s(:block, s(:nil)))))
|
1773
1191
|
|
1774
1192
|
add_tests("defn_rescue",
|
1775
1193
|
"Ruby" => "def eql?(resource)\n (self.uuid == resource.uuid)\nrescue\n false\nend",
|
1776
|
-
"RawParseTree" => [:defn, :eql?,
|
1777
|
-
[:scope,
|
1778
|
-
[:block,
|
1779
|
-
[:args, :resource],
|
1780
|
-
[:rescue,
|
1781
|
-
[:call,
|
1782
|
-
[:call, [:self], :uuid],
|
1783
|
-
:==,
|
1784
|
-
[:array,
|
1785
|
-
[:call, [:lvar, :resource], :uuid]]],
|
1786
|
-
[:resbody, nil, [:false]]]]]],
|
1787
1194
|
"ParseTree" => s(:defn, :eql?,
|
1788
1195
|
s(:args, :resource),
|
1789
1196
|
s(:scope,
|
@@ -1800,17 +1207,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1800
1207
|
|
1801
1208
|
add_tests("defn_rescue_mri_verbose_flag",
|
1802
1209
|
"Ruby" => "def eql?(resource)\n (self.uuid == resource.uuid)\nrescue\n false\nend",
|
1803
|
-
"RawParseTree" => [:defn, :eql?,
|
1804
|
-
[:scope,
|
1805
|
-
[:block,
|
1806
|
-
[:args, :resource],
|
1807
|
-
[:rescue,
|
1808
|
-
[:call,
|
1809
|
-
[:call, [:self], :uuid],
|
1810
|
-
:==,
|
1811
|
-
[:array,
|
1812
|
-
[:call, [:lvar, :resource], :uuid]]],
|
1813
|
-
[:resbody, nil, [:false]]]]]],
|
1814
1210
|
"ParseTree" => s(:defn, :eql?,
|
1815
1211
|
s(:args, :resource),
|
1816
1212
|
s(:scope,
|
@@ -1827,20 +1223,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1827
1223
|
|
1828
1224
|
add_tests("defn_something_eh",
|
1829
1225
|
"Ruby" => "def something?\n # do nothing\nend",
|
1830
|
-
"RawParseTree" => [:defn, :something?,
|
1831
|
-
[:scope, [:block, [:args], [:nil]]]],
|
1832
1226
|
"ParseTree" => s(:defn, :something?,
|
1833
1227
|
s(:args),
|
1834
1228
|
s(:scope, s(:block, s(:nil)))))
|
1835
1229
|
|
1836
1230
|
add_tests("defn_splat_no_name",
|
1837
1231
|
"Ruby" => "def x(a, *)\n p(a)\nend",
|
1838
|
-
"RawParseTree" => [:defn, :x,
|
1839
|
-
[:scope,
|
1840
|
-
[:block,
|
1841
|
-
[:args, :a, :"*"],
|
1842
|
-
[:fcall, :p,
|
1843
|
-
[:array, [:lvar, :a]]]]]],
|
1844
1232
|
"ParseTree" => s(:defn, :x,
|
1845
1233
|
s(:args, :a, :"*"),
|
1846
1234
|
s(:scope,
|
@@ -1850,11 +1238,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1850
1238
|
|
1851
1239
|
add_tests("defn_zarray",
|
1852
1240
|
"Ruby" => "def zarray\n a = []\n return a\nend",
|
1853
|
-
"RawParseTree" => [:defn, :zarray,
|
1854
|
-
[:scope,
|
1855
|
-
[:block, [:args],
|
1856
|
-
[:lasgn, :a, [:zarray]],
|
1857
|
-
[:return, [:lvar, :a]]]]],
|
1858
1241
|
"ParseTree" => s(:defn, :zarray,
|
1859
1242
|
s(:args),
|
1860
1243
|
s(:scope,
|
@@ -1864,12 +1247,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1864
1247
|
|
1865
1248
|
add_tests("defs",
|
1866
1249
|
"Ruby" => "def self.x(y)\n (y + 1)\nend",
|
1867
|
-
"RawParseTree" => [:defs, [:self], :x,
|
1868
|
-
[:scope,
|
1869
|
-
[:block,
|
1870
|
-
[:args, :y],
|
1871
|
-
[:call, [:lvar, :y], :+,
|
1872
|
-
[:array, [:lit, 1]]]]]],
|
1873
1250
|
"ParseTree" => s(:defs, s(:self), :x,
|
1874
1251
|
s(:args, :y),
|
1875
1252
|
s(:scope,
|
@@ -1879,26 +1256,18 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1879
1256
|
|
1880
1257
|
add_tests("defs_empty",
|
1881
1258
|
"Ruby" => "def self.empty\n # do nothing\nend",
|
1882
|
-
"RawParseTree" => [:defs, [:self], :empty,
|
1883
|
-
[:scope, [:args]]],
|
1884
1259
|
"ParseTree" => s(:defs, s(:self), :empty,
|
1885
1260
|
s(:args),
|
1886
1261
|
s(:scope, s(:block))))
|
1887
1262
|
|
1888
1263
|
add_tests("defs_empty_args",
|
1889
1264
|
"Ruby" => "def self.empty(*)\n # do nothing\nend",
|
1890
|
-
"RawParseTree" => [:defs, [:self], :empty,
|
1891
|
-
[:scope, [:args, :*]]],
|
1892
1265
|
"ParseTree" => s(:defs, s(:self), :empty,
|
1893
1266
|
s(:args, :*),
|
1894
1267
|
s(:scope, s(:block))))
|
1895
1268
|
|
1896
1269
|
add_tests("defs_expr_wtf",
|
1897
1270
|
"Ruby" => "def (a.b).empty(*)\n # do nothing\nend",
|
1898
|
-
"RawParseTree" => [:defs,
|
1899
|
-
[:call, [:vcall, :a], :b],
|
1900
|
-
:empty,
|
1901
|
-
[:scope, [:args, :*]]],
|
1902
1271
|
"ParseTree" => s(:defs,
|
1903
1272
|
s(:call,
|
1904
1273
|
s(:call, nil, :a, s(:arglist)),
|
@@ -1909,14 +1278,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1909
1278
|
|
1910
1279
|
add_tests("dmethod",
|
1911
1280
|
"Ruby" => [Examples, :dmethod_added],
|
1912
|
-
"RawParseTree" => [:defn, :dmethod_added,
|
1913
|
-
[:dmethod,
|
1914
|
-
:a_method,
|
1915
|
-
[:scope,
|
1916
|
-
[:block,
|
1917
|
-
[:args, :x],
|
1918
|
-
[:call, [:lvar, :x], :+,
|
1919
|
-
[:array, [:lit, 1]]]]]]],
|
1920
1281
|
"ParseTree" => s(:defn, :dmethod_added,
|
1921
1282
|
s(:args, :x),
|
1922
1283
|
s(:scope,
|
@@ -1927,24 +1288,18 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1927
1288
|
|
1928
1289
|
add_tests("dot2",
|
1929
1290
|
"Ruby" => "(a..b)",
|
1930
|
-
"RawParseTree" => [:dot2, [:vcall, :a], [:vcall, :b]],
|
1931
1291
|
"ParseTree" => s(:dot2,
|
1932
1292
|
s(:call, nil, :a, s(:arglist)),
|
1933
1293
|
s(:call, nil, :b, s(:arglist))))
|
1934
1294
|
|
1935
1295
|
add_tests("dot3",
|
1936
1296
|
"Ruby" => "(a...b)",
|
1937
|
-
"RawParseTree" => [:dot3, [:vcall, :a], [:vcall, :b]],
|
1938
1297
|
"ParseTree" => s(:dot3,
|
1939
1298
|
s(:call, nil, :a, s(:arglist)),
|
1940
1299
|
s(:call, nil, :b, s(:arglist))))
|
1941
1300
|
|
1942
1301
|
add_tests("dregx",
|
1943
1302
|
"Ruby" => "/x#\{(1 + 1)}y/",
|
1944
|
-
"RawParseTree" => [:dregx, "x",
|
1945
|
-
[:evstr,
|
1946
|
-
[:call, [:lit, 1], :+, [:array, [:lit, 1]]]],
|
1947
|
-
[:str, "y"]],
|
1948
1303
|
"ParseTree" => s(:dregx, "x",
|
1949
1304
|
s(:evstr,
|
1950
1305
|
s(:call, s(:lit, 1), :+,
|
@@ -1953,26 +1308,19 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1953
1308
|
|
1954
1309
|
add_tests("dregx_interp",
|
1955
1310
|
"Ruby" => "/#\{@rakefile}/",
|
1956
|
-
"RawParseTree" => [:dregx, '', [:evstr, [:ivar, :@rakefile]]],
|
1957
1311
|
"ParseTree" => s(:dregx, '', s(:evstr, s(:ivar, :@rakefile))))
|
1958
1312
|
|
1959
1313
|
add_tests("dregx_interp_empty",
|
1960
1314
|
"Ruby" => "/a#\{}b/",
|
1961
|
-
"RawParseTree" => [:dregx, 'a', [:evstr], [:str, "b"]],
|
1962
1315
|
"ParseTree" => s(:dregx, 'a', s(:evstr), s(:str, "b")))
|
1963
1316
|
|
1964
1317
|
add_tests("dregx_n",
|
1965
1318
|
"Ruby" => '/#{1}/n',
|
1966
|
-
"RawParseTree" => [:dregx, '', [:evstr, [:lit, 1]], /x/n.options],
|
1967
1319
|
"ParseTree" => s(:dregx, '',
|
1968
1320
|
s(:evstr, s(:lit, 1)), /x/n.options))
|
1969
1321
|
|
1970
1322
|
add_tests("dregx_once",
|
1971
1323
|
"Ruby" => "/x#\{(1 + 1)}y/o",
|
1972
|
-
"RawParseTree" => [:dregx_once, "x",
|
1973
|
-
[:evstr,
|
1974
|
-
[:call, [:lit, 1], :+, [:array, [:lit, 1]]]],
|
1975
|
-
[:str, "y"]],
|
1976
1324
|
"ParseTree" => s(:dregx_once, "x",
|
1977
1325
|
s(:evstr,
|
1978
1326
|
s(:call, s(:lit, 1), :+,
|
@@ -1981,19 +1329,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1981
1329
|
|
1982
1330
|
add_tests("dregx_once_n_interp",
|
1983
1331
|
"Ruby" => "/#\{IAC}#\{SB}/no",
|
1984
|
-
"RawParseTree" => [:dregx_once, '',
|
1985
|
-
[:evstr, [:const, :IAC]],
|
1986
|
-
[:evstr, [:const, :SB]], /x/n.options],
|
1987
1332
|
"ParseTree" => s(:dregx_once, '',
|
1988
1333
|
s(:evstr, s(:const, :IAC)),
|
1989
1334
|
s(:evstr, s(:const, :SB)), /x/n.options))
|
1990
1335
|
|
1991
1336
|
add_tests("dstr",
|
1992
1337
|
"Ruby" => "argl = 1\n\"x#\{argl}y\"\n",
|
1993
|
-
"RawParseTree" => [:block,
|
1994
|
-
[:lasgn, :argl, [:lit, 1]],
|
1995
|
-
[:dstr, "x", [:evstr, [:lvar, :argl]],
|
1996
|
-
[:str, "y"]]],
|
1997
1338
|
"ParseTree" => s(:block,
|
1998
1339
|
s(:lasgn, :argl, s(:lit, 1)),
|
1999
1340
|
s(:dstr, "x", s(:evstr, s(:lvar, :argl)),
|
@@ -2001,14 +1342,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2001
1342
|
|
2002
1343
|
add_tests("dstr_2",
|
2003
1344
|
"Ruby" => "argl = 1\n\"x#\{(\"%.2f\" % 3.14159)}y\"\n",
|
2004
|
-
"RawParseTree" => [:block,
|
2005
|
-
[:lasgn, :argl, [:lit, 1]],
|
2006
|
-
[:dstr,
|
2007
|
-
"x",
|
2008
|
-
[:evstr,
|
2009
|
-
[:call, [:str, "%.2f"], :%,
|
2010
|
-
[:array, [:lit, 3.14159]]]],
|
2011
|
-
[:str, "y"]]],
|
2012
1345
|
"ParseTree" => s(:block,
|
2013
1346
|
s(:lasgn, :argl, s(:lit, 1)),
|
2014
1347
|
s(:dstr,
|
@@ -2020,18 +1353,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2020
1353
|
|
2021
1354
|
add_tests("dstr_3",
|
2022
1355
|
"Ruby" => "max = 2\nargl = 1\n\"x#\{(\"%.#\{max}f\" % 3.14159)}y\"\n",
|
2023
|
-
"RawParseTree" => [:block,
|
2024
|
-
[:lasgn, :max, [:lit, 2]],
|
2025
|
-
[:lasgn, :argl, [:lit, 1]],
|
2026
|
-
[:dstr, "x",
|
2027
|
-
[:evstr,
|
2028
|
-
[:call,
|
2029
|
-
[:dstr, "%.",
|
2030
|
-
[:evstr, [:lvar, :max]],
|
2031
|
-
[:str, "f"]],
|
2032
|
-
:%,
|
2033
|
-
[:array, [:lit, 3.14159]]]],
|
2034
|
-
[:str, "y"]]],
|
2035
1356
|
"ParseTree" => s(:block,
|
2036
1357
|
s(:lasgn, :max, s(:lit, 2)),
|
2037
1358
|
s(:lasgn, :argl, s(:lit, 1)),
|
@@ -2047,14 +1368,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2047
1368
|
|
2048
1369
|
add_tests("dstr_concat",
|
2049
1370
|
"Ruby" => '"#{22}aa" "cd#{44}" "55" "#{66}"',
|
2050
|
-
"RawParseTree" => [:dstr,
|
2051
|
-
"",
|
2052
|
-
[:evstr, [:lit, 22]],
|
2053
|
-
[:str, "aa"],
|
2054
|
-
[:str, "cd"],
|
2055
|
-
[:evstr, [:lit, 44]],
|
2056
|
-
[:str, "55"],
|
2057
|
-
[:evstr, [:lit, 66]]],
|
2058
1371
|
"ParseTree" => s(:dstr,
|
2059
1372
|
"",
|
2060
1373
|
s(:evstr, s(:lit, 22)),
|
@@ -2067,13 +1380,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2067
1380
|
|
2068
1381
|
add_tests("dstr_gross",
|
2069
1382
|
"Ruby" => '"a #$global b #@ivar c #@@cvar d"',
|
2070
|
-
"RawParseTree" => [:dstr, "a ",
|
2071
|
-
[:evstr, [:gvar, :$global]],
|
2072
|
-
[:str, " b "],
|
2073
|
-
[:evstr, [:ivar, :@ivar]],
|
2074
|
-
[:str, " c "],
|
2075
|
-
[:evstr, [:cvar, :@@cvar]],
|
2076
|
-
[:str, " d"]],
|
2077
1383
|
"ParseTree" => s(:dstr, "a ",
|
2078
1384
|
s(:evstr, s(:gvar, :$global)),
|
2079
1385
|
s(:str, " b "),
|
@@ -2085,10 +1391,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2085
1391
|
|
2086
1392
|
add_tests("dstr_heredoc_expand",
|
2087
1393
|
"Ruby" => "<<EOM\n blah\n#\{1 + 1}blah\nEOM\n",
|
2088
|
-
"RawParseTree" => [:dstr, " blah\n",
|
2089
|
-
[:evstr, [:call, [:lit, 1], :+,
|
2090
|
-
[:array, [:lit, 1]]]],
|
2091
|
-
[:str, "blah\n"]],
|
2092
1394
|
"ParseTree" => s(:dstr, " blah\n",
|
2093
1395
|
s(:evstr, s(:call, s(:lit, 1), :+,
|
2094
1396
|
s(:arglist, s(:lit, 1)))),
|
@@ -2097,10 +1399,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2097
1399
|
|
2098
1400
|
add_tests("dstr_heredoc_windoze_sucks",
|
2099
1401
|
"Ruby" => "<<-EOF\r\ndef test_#\{action}_valid_feed\r\n EOF\r\n",
|
2100
|
-
"RawParseTree" => [:dstr,
|
2101
|
-
'def test_',
|
2102
|
-
[:evstr, [:vcall, :action]],
|
2103
|
-
[:str, "_valid_feed\n"]],
|
2104
1402
|
"ParseTree" => s(:dstr,
|
2105
1403
|
'def test_',
|
2106
1404
|
s(:evstr, s(:call, nil, :action, s(:arglist))),
|
@@ -2109,11 +1407,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2109
1407
|
|
2110
1408
|
add_tests("dstr_heredoc_yet_again",
|
2111
1409
|
"Ruby" => "<<-EOF\ns1 '#\{RUBY_PLATFORM}' s2\n#\{__FILE__}\n EOF\n",
|
2112
|
-
"RawParseTree" => [:dstr, "s1 '",
|
2113
|
-
[:evstr, [:const, :RUBY_PLATFORM]],
|
2114
|
-
[:str, "' s2\n"],
|
2115
|
-
[:str, "(string)"],
|
2116
|
-
[:str, "\n"]],
|
2117
1410
|
"ParseTree" => s(:dstr, "s1 '",
|
2118
1411
|
s(:evstr, s(:const, :RUBY_PLATFORM)),
|
2119
1412
|
s(:str, "' s2\n"),
|
@@ -2123,8 +1416,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2123
1416
|
|
2124
1417
|
add_tests("dstr_nest",
|
2125
1418
|
"Ruby" => "%Q[before [#\{nest}] after]",
|
2126
|
-
"RawParseTree" => [:dstr, "before [",
|
2127
|
-
[:evstr, [:vcall, :nest]], [:str, "] after"]],
|
2128
1419
|
"ParseTree" => s(:dstr, "before [",
|
2129
1420
|
s(:evstr, s(:call, nil, :nest, s(:arglist))),
|
2130
1421
|
s(:str, "] after")),
|
@@ -2132,14 +1423,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2132
1423
|
|
2133
1424
|
add_tests("dstr_str_lit_start",
|
2134
1425
|
"Ruby" => '"#{"blah"}#{__FILE__}:#{__LINE__}: warning: #{$!.message} (#{$!.class})"',
|
2135
|
-
"RawParseTree" => [:dstr,
|
2136
|
-
"blah(string):",
|
2137
|
-
[:evstr, [:lit, 1]],
|
2138
|
-
[:str, ": warning: "],
|
2139
|
-
[:evstr, [:call, [:gvar, :$!], :message]],
|
2140
|
-
[:str, " ("],
|
2141
|
-
[:evstr, [:call, [:gvar, :$!], :class]],
|
2142
|
-
[:str, ")"]],
|
2143
1426
|
"ParseTree" => s(:dstr,
|
2144
1427
|
"blah(string):",
|
2145
1428
|
s(:evstr, s(:lit, 1)),
|
@@ -2154,16 +1437,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2154
1437
|
|
2155
1438
|
add_tests("dstr_the_revenge",
|
2156
1439
|
"Ruby" => '"before #{from} middle #{to} (#{__FILE__}:#{__LINE__})"',
|
2157
|
-
"RawParseTree" => [:dstr,
|
2158
|
-
"before ",
|
2159
|
-
[:evstr, [:vcall, :from]],
|
2160
|
-
[:str, " middle "],
|
2161
|
-
[:evstr, [:vcall, :to]],
|
2162
|
-
[:str, " ("],
|
2163
|
-
[:str, "(string)"],
|
2164
|
-
[:str, ":"],
|
2165
|
-
[:evstr, [:lit, 1]],
|
2166
|
-
[:str, ")"]],
|
2167
1440
|
"ParseTree" => s(:dstr,
|
2168
1441
|
"before ",
|
2169
1442
|
s(:evstr, s(:call, nil, :from, s(:arglist))),
|
@@ -2178,37 +1451,18 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2178
1451
|
|
2179
1452
|
add_tests("dsym",
|
2180
1453
|
"Ruby" => ":\"x#\{(1 + 1)}y\"",
|
2181
|
-
"RawParseTree" => [:dsym, "x",
|
2182
|
-
[:evstr, [:call, [:lit, 1], :+,
|
2183
|
-
[:array, [:lit, 1]]]], [:str, "y"]],
|
2184
1454
|
"ParseTree" => s(:dsym, "x",
|
2185
1455
|
s(:evstr, s(:call, s(:lit, 1), :+,
|
2186
1456
|
s(:arglist, s(:lit, 1)))), s(:str, "y")))
|
2187
1457
|
|
2188
1458
|
add_tests("dxstr",
|
2189
1459
|
"Ruby" => "t = 5\n`touch #\{t}`\n",
|
2190
|
-
"RawParseTree" => [:block,
|
2191
|
-
[:lasgn, :t, [:lit, 5]],
|
2192
|
-
[:dxstr, 'touch ', [:evstr, [:lvar, :t]]]],
|
2193
1460
|
"ParseTree" => s(:block,
|
2194
1461
|
s(:lasgn, :t, s(:lit, 5)),
|
2195
1462
|
s(:dxstr, 'touch ', s(:evstr, s(:lvar, :t)))))
|
2196
1463
|
|
2197
1464
|
add_tests("ensure",
|
2198
1465
|
"Ruby" => "begin\n (1 + 1)\nrescue SyntaxError => e1\n 2\nrescue Exception => e2\n 3\nelse\n 4\nensure\n 5\nend",
|
2199
|
-
"RawParseTree" => [:ensure,
|
2200
|
-
[:rescue,
|
2201
|
-
[:call, [:lit, 1], :+, [:array, [:lit, 1]]],
|
2202
|
-
[:resbody,
|
2203
|
-
[:array, [:const, :SyntaxError]],
|
2204
|
-
[:block,
|
2205
|
-
[:lasgn, :e1, [:gvar, :$!]], [:lit, 2]],
|
2206
|
-
[:resbody,
|
2207
|
-
[:array, [:const, :Exception]],
|
2208
|
-
[:block,
|
2209
|
-
[:lasgn, :e2, [:gvar, :$!]], [:lit, 3]]]],
|
2210
|
-
[:lit, 4]],
|
2211
|
-
[:lit, 5]],
|
2212
1466
|
"ParseTree" => s(:ensure,
|
2213
1467
|
s(:rescue,
|
2214
1468
|
s(:call, s(:lit, 1), :+,
|
@@ -2228,18 +1482,10 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2228
1482
|
|
2229
1483
|
add_tests("false",
|
2230
1484
|
"Ruby" => "false",
|
2231
|
-
"RawParseTree" => [:false],
|
2232
1485
|
"ParseTree" => s(:false))
|
2233
1486
|
|
2234
1487
|
add_tests("fbody",
|
2235
1488
|
"Ruby" => [Examples, :an_alias],
|
2236
|
-
"RawParseTree" => [:defn, :an_alias,
|
2237
|
-
[:fbody,
|
2238
|
-
[:scope,
|
2239
|
-
[:block,
|
2240
|
-
[:args, :x],
|
2241
|
-
[:call, [:lvar, :x], :+,
|
2242
|
-
[:array, [:lit, 1]]]]]]],
|
2243
1489
|
"ParseTree" => s(:defn, :an_alias,
|
2244
1490
|
s(:args, :x),
|
2245
1491
|
s(:scope,
|
@@ -2250,16 +1496,10 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2250
1496
|
|
2251
1497
|
add_tests("fcall_arglist",
|
2252
1498
|
"Ruby" => "m(42)",
|
2253
|
-
"RawParseTree" => [:fcall, :m, [:array, [:lit, 42]]],
|
2254
1499
|
"ParseTree" => s(:call, nil, :m, s(:arglist, s(:lit, 42))))
|
2255
1500
|
|
2256
1501
|
add_tests("fcall_arglist_hash",
|
2257
1502
|
"Ruby" => "m(:a => 1, :b => 2)",
|
2258
|
-
"RawParseTree" => [:fcall, :m,
|
2259
|
-
[:array,
|
2260
|
-
[:hash,
|
2261
|
-
[:lit, :a], [:lit, 1],
|
2262
|
-
[:lit, :b], [:lit, 2]]]],
|
2263
1503
|
"ParseTree" => s(:call, nil, :m,
|
2264
1504
|
s(:arglist,
|
2265
1505
|
s(:hash,
|
@@ -2268,12 +1508,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2268
1508
|
|
2269
1509
|
add_tests("fcall_arglist_norm_hash",
|
2270
1510
|
"Ruby" => "m(42, :a => 1, :b => 2)",
|
2271
|
-
"RawParseTree" => [:fcall, :m,
|
2272
|
-
[:array,
|
2273
|
-
[:lit, 42],
|
2274
|
-
[:hash,
|
2275
|
-
[:lit, :a], [:lit, 1],
|
2276
|
-
[:lit, :b], [:lit, 2]]]],
|
2277
1511
|
"ParseTree" => s(:call, nil, :m,
|
2278
1512
|
s(:arglist,
|
2279
1513
|
s(:lit, 42),
|
@@ -2283,14 +1517,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2283
1517
|
|
2284
1518
|
add_tests("fcall_arglist_norm_hash_splat",
|
2285
1519
|
"Ruby" => "m(42, :a => 1, :b => 2, *c)",
|
2286
|
-
"RawParseTree" => [:fcall, :m,
|
2287
|
-
[:argscat,
|
2288
|
-
[:array,
|
2289
|
-
[:lit, 42],
|
2290
|
-
[:hash,
|
2291
|
-
[:lit, :a], [:lit, 1],
|
2292
|
-
[:lit, :b], [:lit, 2]]],
|
2293
|
-
[:vcall, :c]]],
|
2294
1520
|
"ParseTree" => s(:call, nil, :m,
|
2295
1521
|
s(:arglist,
|
2296
1522
|
s(:lit, 42),
|
@@ -2301,9 +1527,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2301
1527
|
|
2302
1528
|
add_tests("fcall_block",
|
2303
1529
|
"Ruby" => "a(:b) { :c }",
|
2304
|
-
"RawParseTree" => [:iter,
|
2305
|
-
[:fcall, :a, [:array, [:lit, :b]]], nil,
|
2306
|
-
[:lit, :c]],
|
2307
1530
|
"ParseTree" => s(:iter,
|
2308
1531
|
s(:call, nil, :a,
|
2309
1532
|
s(:arglist, s(:lit, :b))), nil,
|
@@ -2311,43 +1534,28 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2311
1534
|
|
2312
1535
|
add_tests("fcall_index_space",
|
2313
1536
|
"Ruby" => "a [42]",
|
2314
|
-
"RawParseTree" => [:fcall, :a, [:array, [:array, [:lit, 42]]]],
|
2315
1537
|
"ParseTree" => s(:call, nil, :a,
|
2316
1538
|
s(:arglist, s(:array, s(:lit, 42)))),
|
2317
1539
|
"Ruby2Ruby" => "a([42])")
|
2318
1540
|
|
2319
1541
|
add_tests("fcall_keyword",
|
2320
1542
|
"Ruby" => "42 if block_given?",
|
2321
|
-
"RawParseTree" => [:if, [:fcall, :block_given?], [:lit, 42], nil],
|
2322
1543
|
"ParseTree" => s(:if,
|
2323
1544
|
s(:call, nil, :block_given?, s(:arglist)),
|
2324
1545
|
s(:lit, 42), nil))
|
2325
1546
|
|
2326
1547
|
add_tests("fcall_inside_parens",
|
2327
|
-
"Ruby" => "(
|
1548
|
+
"Ruby" => "( a (b), c)",
|
2328
1549
|
"ParseTree" => s(:call,
|
2329
|
-
|
2330
|
-
|
2331
|
-
|
1550
|
+
nil,
|
1551
|
+
:a,
|
1552
|
+
s(:arglist,
|
1553
|
+
s(:call, nil, :b, s(:arglist)),
|
1554
|
+
s(:call, nil, :c, s(:arglist)))),
|
1555
|
+
"Ruby2Ruby" => "a(b, c)")
|
2332
1556
|
|
2333
1557
|
add_tests("flip2",
|
2334
1558
|
"Ruby" => "x = if ((i % 4) == 0)..((i % 3) == 0) then\n i\nelse\n nil\nend",
|
2335
|
-
"RawParseTree" => [:lasgn,
|
2336
|
-
:x,
|
2337
|
-
[:if,
|
2338
|
-
[:flip2,
|
2339
|
-
[:call,
|
2340
|
-
[:call, [:vcall, :i], :%,
|
2341
|
-
[:array, [:lit, 4]]],
|
2342
|
-
:==,
|
2343
|
-
[:array, [:lit, 0]]],
|
2344
|
-
[:call,
|
2345
|
-
[:call, [:vcall, :i], :%,
|
2346
|
-
[:array, [:lit, 3]]],
|
2347
|
-
:==,
|
2348
|
-
[:array, [:lit, 0]]]],
|
2349
|
-
[:vcall, :i],
|
2350
|
-
[:nil]]],
|
2351
1559
|
"ParseTree" => s(:lasgn,
|
2352
1560
|
:x,
|
2353
1561
|
s(:if,
|
@@ -2369,14 +1577,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2369
1577
|
|
2370
1578
|
add_tests("flip2_method",
|
2371
1579
|
"Ruby" => "if 1..2.a?(b) then\n nil\nend",
|
2372
|
-
"RawParseTree" => [:if,
|
2373
|
-
[:flip2,
|
2374
|
-
[:call, [:lit, 1], :==,
|
2375
|
-
[:array, [:gvar, :$.]]],
|
2376
|
-
[:call, [:lit, 2], :a?,
|
2377
|
-
[:array, [:vcall, :b]]]],
|
2378
|
-
[:nil],
|
2379
|
-
nil],
|
2380
1580
|
"ParseTree" => s(:if,
|
2381
1581
|
s(:flip2,
|
2382
1582
|
s(:lit, 1),
|
@@ -2388,22 +1588,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2388
1588
|
|
2389
1589
|
add_tests("flip3",
|
2390
1590
|
"Ruby" => "x = if ((i % 4) == 0)...((i % 3) == 0) then\n i\nelse\n nil\nend",
|
2391
|
-
"RawParseTree" => [:lasgn,
|
2392
|
-
:x,
|
2393
|
-
[:if,
|
2394
|
-
[:flip3,
|
2395
|
-
[:call,
|
2396
|
-
[:call, [:vcall, :i], :%,
|
2397
|
-
[:array, [:lit, 4]]],
|
2398
|
-
:==,
|
2399
|
-
[:array, [:lit, 0]]],
|
2400
|
-
[:call,
|
2401
|
-
[:call, [:vcall, :i], :%,
|
2402
|
-
[:array, [:lit, 3]]],
|
2403
|
-
:==,
|
2404
|
-
[:array, [:lit, 0]]]],
|
2405
|
-
[:vcall, :i],
|
2406
|
-
[:nil]]],
|
2407
1591
|
"ParseTree" => s(:lasgn,
|
2408
1592
|
:x,
|
2409
1593
|
s(:if,
|
@@ -2425,10 +1609,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2425
1609
|
|
2426
1610
|
add_tests("for",
|
2427
1611
|
"Ruby" => "for o in ary do\n puts(o)\nend",
|
2428
|
-
"RawParseTree" => [:for,
|
2429
|
-
[:vcall, :ary],
|
2430
|
-
[:lasgn, :o],
|
2431
|
-
[:fcall, :puts, [:array, [:lvar, :o]]]],
|
2432
1612
|
"ParseTree" => s(:for,
|
2433
1613
|
s(:call, nil, :ary, s(:arglist)),
|
2434
1614
|
s(:lasgn, :o),
|
@@ -2437,9 +1617,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2437
1617
|
|
2438
1618
|
add_tests("for_no_body",
|
2439
1619
|
"Ruby" => "for i in (0..max) do\n # do nothing\nend",
|
2440
|
-
"RawParseTree" => [:for,
|
2441
|
-
[:dot2, [:lit, 0], [:vcall, :max]],
|
2442
|
-
[:lasgn, :i]],
|
2443
1620
|
"ParseTree" => s(:for,
|
2444
1621
|
s(:dot2,
|
2445
1622
|
s(:lit, 0),
|
@@ -2448,45 +1625,32 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2448
1625
|
|
2449
1626
|
add_tests("gasgn",
|
2450
1627
|
"Ruby" => "$x = 42",
|
2451
|
-
"RawParseTree" => [:gasgn, :$x, [:lit, 42]],
|
2452
1628
|
"ParseTree" => s(:gasgn, :$x, s(:lit, 42)))
|
2453
1629
|
|
2454
1630
|
add_tests("global",
|
2455
1631
|
"Ruby" => "$stderr",
|
2456
|
-
"RawParseTree" => [:gvar, :$stderr],
|
2457
1632
|
"ParseTree" => s(:gvar, :$stderr))
|
2458
1633
|
|
2459
1634
|
add_tests("gvar",
|
2460
1635
|
"Ruby" => "$x",
|
2461
|
-
"RawParseTree" => [:gvar, :$x],
|
2462
1636
|
"ParseTree" => s(:gvar, :$x))
|
2463
1637
|
|
2464
1638
|
add_tests("gvar_underscore",
|
2465
1639
|
"Ruby" => "$_",
|
2466
|
-
"RawParseTree" => [:gvar, :$_],
|
2467
1640
|
"ParseTree" => s(:gvar, :$_))
|
2468
1641
|
|
2469
1642
|
add_tests("gvar_underscore_blah",
|
2470
1643
|
"Ruby" => "$__blah",
|
2471
|
-
"RawParseTree" => [:gvar, :$__blah],
|
2472
1644
|
"ParseTree" => s(:gvar, :$__blah))
|
2473
1645
|
|
2474
1646
|
add_tests("hash",
|
2475
1647
|
"Ruby" => "{ 1 => 2, 3 => 4 }",
|
2476
|
-
"RawParseTree" => [:hash,
|
2477
|
-
[:lit, 1], [:lit, 2],
|
2478
|
-
[:lit, 3], [:lit, 4]],
|
2479
1648
|
"ParseTree" => s(:hash,
|
2480
1649
|
s(:lit, 1), s(:lit, 2),
|
2481
1650
|
s(:lit, 3), s(:lit, 4)))
|
2482
1651
|
|
2483
1652
|
add_tests("hash_rescue",
|
2484
1653
|
"Ruby" => "{ 1 => (2 rescue 3) }",
|
2485
|
-
"RawParseTree" => [:hash,
|
2486
|
-
[:lit, 1],
|
2487
|
-
[:rescue,
|
2488
|
-
[:lit, 2],
|
2489
|
-
[:resbody, nil, [:lit, 3]]]],
|
2490
1654
|
"ParseTree" => s(:hash,
|
2491
1655
|
s(:lit, 1),
|
2492
1656
|
s(:rescue,
|
@@ -2495,20 +1659,10 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2495
1659
|
|
2496
1660
|
add_tests("iasgn",
|
2497
1661
|
"Ruby" => "@a = 4",
|
2498
|
-
"RawParseTree" => [:iasgn, :@a, [:lit, 4]],
|
2499
1662
|
"ParseTree" => s(:iasgn, :@a, s(:lit, 4)))
|
2500
1663
|
|
2501
1664
|
add_tests("if_block_condition",
|
2502
1665
|
"Ruby" => "if (x = 5\n(x + 1)) then\n nil\nend",
|
2503
|
-
"RawParseTree" => [:if,
|
2504
|
-
[:block,
|
2505
|
-
[:lasgn, :x, [:lit, 5]],
|
2506
|
-
[:call,
|
2507
|
-
[:lvar, :x],
|
2508
|
-
:+,
|
2509
|
-
[:array, [:lit, 1]]]],
|
2510
|
-
[:nil],
|
2511
|
-
nil],
|
2512
1666
|
"ParseTree" => s(:if,
|
2513
1667
|
s(:block,
|
2514
1668
|
s(:lasgn, :x, s(:lit, 5)),
|
@@ -2521,12 +1675,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2521
1675
|
|
2522
1676
|
add_tests("if_lasgn_short",
|
2523
1677
|
"Ruby" => "if x = obj.x then\n x.do_it\nend",
|
2524
|
-
"RawParseTree" => [:if,
|
2525
|
-
[:lasgn, :x,
|
2526
|
-
[:call, [:vcall, :obj], :x]],
|
2527
|
-
[:call,
|
2528
|
-
[:lvar, :x], :do_it],
|
2529
|
-
nil],
|
2530
1678
|
"ParseTree" => s(:if,
|
2531
1679
|
s(:lasgn, :x,
|
2532
1680
|
s(:call,
|
@@ -2537,44 +1685,34 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2537
1685
|
|
2538
1686
|
add_tests("if_nested",
|
2539
1687
|
"Ruby" => "return if false unless true",
|
2540
|
-
"RawParseTree" => [:if, [:true], nil,
|
2541
|
-
[:if, [:false], [:return], nil]],
|
2542
1688
|
"ParseTree" => s(:if, s(:true), nil,
|
2543
1689
|
s(:if, s(:false), s(:return), nil)))
|
2544
1690
|
|
2545
1691
|
add_tests("if_post",
|
2546
1692
|
"Ruby" => "a if b",
|
2547
|
-
"RawParseTree" => [:if, [:vcall, :b], [:vcall, :a], nil],
|
2548
1693
|
"ParseTree" => s(:if, s(:call, nil, :b, s(:arglist)),
|
2549
1694
|
s(:call, nil, :a, s(:arglist)), nil))
|
2550
1695
|
|
2551
1696
|
add_tests("if_post_not",
|
2552
1697
|
"Ruby" => "a if not b",
|
2553
|
-
"RawParseTree" => [:if, [:vcall, :b], nil, [:vcall, :a]],
|
2554
1698
|
"ParseTree" => s(:if, s(:call, nil, :b, s(:arglist)), nil,
|
2555
1699
|
s(:call, nil, :a, s(:arglist))),
|
2556
1700
|
"Ruby2Ruby" => "a unless b")
|
2557
1701
|
|
2558
1702
|
add_tests("if_pre",
|
2559
1703
|
"Ruby" => "if b then a end",
|
2560
|
-
"RawParseTree" => [:if, [:vcall, :b], [:vcall, :a], nil],
|
2561
1704
|
"ParseTree" => s(:if, s(:call, nil, :b, s(:arglist)),
|
2562
1705
|
s(:call, nil, :a, s(:arglist)), nil),
|
2563
1706
|
"Ruby2Ruby" => "a if b")
|
2564
1707
|
|
2565
1708
|
add_tests("if_pre_not",
|
2566
1709
|
"Ruby" => "if not b then a end",
|
2567
|
-
"RawParseTree" => [:if, [:vcall, :b], nil, [:vcall, :a]],
|
2568
1710
|
"ParseTree" => s(:if, s(:call, nil, :b, s(:arglist)), nil,
|
2569
1711
|
s(:call, nil, :a, s(:arglist))),
|
2570
1712
|
"Ruby2Ruby" => "a unless b")
|
2571
1713
|
|
2572
1714
|
add_tests("iter_call_arglist_space",
|
2573
1715
|
"Ruby" => "a (1) {|c|d}",
|
2574
|
-
"RawParseTree" => [:iter,
|
2575
|
-
[:fcall, :a, [:array, [:lit, 1]]],
|
2576
|
-
[:dasgn_curr, :c],
|
2577
|
-
[:vcall, :d]],
|
2578
1716
|
"ParseTree" => s(:iter,
|
2579
1717
|
s(:call, nil, :a, s(:arglist, s(:lit, 1))),
|
2580
1718
|
s(:lasgn, :c),
|
@@ -2583,17 +1721,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2583
1721
|
|
2584
1722
|
add_tests("iter_dasgn_curr_dasgn_madness",
|
2585
1723
|
"Ruby" => "as.each { |a|\n b += a.b(false) }",
|
2586
|
-
"RawParseTree" => [:iter,
|
2587
|
-
[:call, [:vcall, :as], :each],
|
2588
|
-
[:dasgn_curr, :a],
|
2589
|
-
[:dasgn_curr,
|
2590
|
-
:b,
|
2591
|
-
[:call,
|
2592
|
-
[:dvar, :b],
|
2593
|
-
:+,
|
2594
|
-
[:array,
|
2595
|
-
[:call, [:dvar, :a], :b,
|
2596
|
-
[:array, [:false]]]]]]],
|
2597
1724
|
"ParseTree" => s(:iter,
|
2598
1725
|
s(:call,
|
2599
1726
|
s(:call, nil, :as, s(:arglist)),
|
@@ -2610,11 +1737,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2610
1737
|
|
2611
1738
|
add_tests("iter_downto",
|
2612
1739
|
"Ruby" => "3.downto(1) { |n| puts(n.to_s) }",
|
2613
|
-
"RawParseTree" => [:iter,
|
2614
|
-
[:call, [:lit, 3], :downto, [:array, [:lit, 1]]],
|
2615
|
-
[:dasgn_curr, :n],
|
2616
|
-
[:fcall, :puts,
|
2617
|
-
[:array, [:call, [:dvar, :n], :to_s]]]],
|
2618
1740
|
"ParseTree" => s(:iter,
|
2619
1741
|
s(:call, s(:lit, 3), :downto,
|
2620
1742
|
s(:arglist, s(:lit, 1))),
|
@@ -2626,14 +1748,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2626
1748
|
|
2627
1749
|
add_tests("iter_each_lvar",
|
2628
1750
|
"Ruby" => "array = [1, 2, 3]\narray.each { |x| puts(x.to_s) }\n",
|
2629
|
-
"RawParseTree" => [:block,
|
2630
|
-
[:lasgn, :array,
|
2631
|
-
[:array, [:lit, 1], [:lit, 2], [:lit, 3]]],
|
2632
|
-
[:iter,
|
2633
|
-
[:call, [:lvar, :array], :each],
|
2634
|
-
[:dasgn_curr, :x],
|
2635
|
-
[:fcall, :puts,
|
2636
|
-
[:array, [:call, [:dvar, :x], :to_s]]]]],
|
2637
1751
|
"ParseTree" => s(:block,
|
2638
1752
|
s(:lasgn, :array,
|
2639
1753
|
s(:array,
|
@@ -2648,25 +1762,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2648
1762
|
|
2649
1763
|
add_tests("iter_each_nested",
|
2650
1764
|
"Ruby" => "array1 = [1, 2, 3]\narray2 = [4, 5, 6, 7]\narray1.each do |x|\n array2.each do |y|\n puts(x.to_s)\n puts(y.to_s)\n end\nend\n",
|
2651
|
-
"RawParseTree" => [:block,
|
2652
|
-
[:lasgn, :array1,
|
2653
|
-
[:array, [:lit, 1], [:lit, 2], [:lit, 3]]],
|
2654
|
-
[:lasgn, :array2,
|
2655
|
-
[:array,
|
2656
|
-
[:lit, 4], [:lit, 5], [:lit, 6], [:lit, 7]]],
|
2657
|
-
[:iter,
|
2658
|
-
[:call,
|
2659
|
-
[:lvar, :array1], :each],
|
2660
|
-
[:dasgn_curr, :x],
|
2661
|
-
[:iter,
|
2662
|
-
[:call,
|
2663
|
-
[:lvar, :array2], :each],
|
2664
|
-
[:dasgn_curr, :y],
|
2665
|
-
[:block,
|
2666
|
-
[:fcall, :puts,
|
2667
|
-
[:array, [:call, [:dvar, :x], :to_s]]],
|
2668
|
-
[:fcall, :puts,
|
2669
|
-
[:array, [:call, [:dvar, :y], :to_s]]]]]]],
|
2670
1765
|
"ParseTree" => s(:block,
|
2671
1766
|
s(:lasgn, :array1,
|
2672
1767
|
s(:array,
|
@@ -2695,17 +1790,10 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2695
1790
|
|
2696
1791
|
add_tests("iter_loop_empty",
|
2697
1792
|
"Ruby" => "loop { }",
|
2698
|
-
"RawParseTree" => [:iter, [:fcall, :loop], nil],
|
2699
1793
|
"ParseTree" => s(:iter, s(:call, nil, :loop, s(:arglist)), nil))
|
2700
1794
|
|
2701
1795
|
add_tests("iter_masgn_2",
|
2702
1796
|
"Ruby" => "a { |b, c| p(c) }",
|
2703
|
-
"RawParseTree" => [:iter,
|
2704
|
-
[:fcall, :a],
|
2705
|
-
[:masgn,
|
2706
|
-
[:array, [:dasgn_curr, :b], [:dasgn_curr, :c]],
|
2707
|
-
nil, nil],
|
2708
|
-
[:fcall, :p, [:array, [:dvar, :c]]]],
|
2709
1797
|
"ParseTree" => s(:iter,
|
2710
1798
|
s(:call, nil, :a, s(:arglist)),
|
2711
1799
|
s(:masgn,
|
@@ -2714,12 +1802,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2714
1802
|
|
2715
1803
|
add_tests("iter_masgn_args_splat",
|
2716
1804
|
"Ruby" => "a { |b, c, *d| p(c) }",
|
2717
|
-
"RawParseTree" => [:iter,
|
2718
|
-
[:fcall, :a],
|
2719
|
-
[:masgn,
|
2720
|
-
[:array, [:dasgn_curr, :b], [:dasgn_curr, :c]],
|
2721
|
-
[:dasgn_curr, :d], nil],
|
2722
|
-
[:fcall, :p, [:array, [:dvar, :c]]]],
|
2723
1805
|
"ParseTree" => s(:iter,
|
2724
1806
|
s(:call, nil, :a, s(:arglist)),
|
2725
1807
|
s(:masgn,
|
@@ -2731,12 +1813,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2731
1813
|
|
2732
1814
|
add_tests("iter_masgn_args_splat_no_name",
|
2733
1815
|
"Ruby" => "a { |b, c, *| p(c) }",
|
2734
|
-
"RawParseTree" => [:iter,
|
2735
|
-
[:fcall, :a],
|
2736
|
-
[:masgn,
|
2737
|
-
[:array, [:dasgn_curr, :b], [:dasgn_curr, :c]],
|
2738
|
-
[:splat], nil],
|
2739
|
-
[:fcall, :p, [:array, [:dvar, :c]]]],
|
2740
1816
|
"ParseTree" => s(:iter,
|
2741
1817
|
s(:call, nil, :a, s(:arglist)),
|
2742
1818
|
s(:masgn,
|
@@ -2748,10 +1824,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2748
1824
|
|
2749
1825
|
add_tests("iter_masgn_splat",
|
2750
1826
|
"Ruby" => "a { |*c| p(c) }",
|
2751
|
-
"RawParseTree" => [:iter,
|
2752
|
-
[:fcall, :a],
|
2753
|
-
[:masgn, nil, [:dasgn_curr, :c], nil],
|
2754
|
-
[:fcall, :p, [:array, [:dvar, :c]]]],
|
2755
1827
|
"ParseTree" => s(:iter,
|
2756
1828
|
s(:call, nil, :a, s(:arglist)),
|
2757
1829
|
s(:masgn, s(:array, s(:splat, s(:lasgn, :c)))),
|
@@ -2759,10 +1831,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2759
1831
|
|
2760
1832
|
add_tests("iter_masgn_splat_no_name",
|
2761
1833
|
"Ruby" => "a { |*| p(c) }",
|
2762
|
-
"RawParseTree" => [:iter,
|
2763
|
-
[:fcall, :a],
|
2764
|
-
[:masgn, nil, [:splat], nil],
|
2765
|
-
[:fcall, :p, [:array, [:vcall, :c]]]],
|
2766
1834
|
"ParseTree" => s(:iter,
|
2767
1835
|
s(:call, nil, :a, s(:arglist)),
|
2768
1836
|
s(:masgn, s(:array, s(:splat))),
|
@@ -2771,13 +1839,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2771
1839
|
|
2772
1840
|
add_tests("iter_shadowed_var",
|
2773
1841
|
"Ruby" => "a do |x|\n b do |x|\n puts x\n end\nend",
|
2774
|
-
"RawParseTree" => [:iter,
|
2775
|
-
[:fcall, :a],
|
2776
|
-
[:dasgn_curr, :x],
|
2777
|
-
[:iter,
|
2778
|
-
[:fcall, :b],
|
2779
|
-
[:dasgn, :x],
|
2780
|
-
[:fcall, :puts, [:array, [:dvar, :x]]]]],
|
2781
1842
|
"ParseTree" => s(:iter,
|
2782
1843
|
s(:call, nil, :a, s(:arglist)),
|
2783
1844
|
s(:lasgn, :x),
|
@@ -2790,11 +1851,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2790
1851
|
|
2791
1852
|
add_tests("iter_upto",
|
2792
1853
|
"Ruby" => "1.upto(3) { |n| puts(n.to_s) }",
|
2793
|
-
"RawParseTree" => [:iter,
|
2794
|
-
[:call, [:lit, 1], :upto, [:array, [:lit, 3]]],
|
2795
|
-
[:dasgn_curr, :n],
|
2796
|
-
[:fcall, :puts,
|
2797
|
-
[:array, [:call, [:dvar, :n], :to_s]]]],
|
2798
1854
|
"ParseTree" => s(:iter,
|
2799
1855
|
s(:call, s(:lit, 1), :upto,
|
2800
1856
|
s(:arglist, s(:lit, 3))),
|
@@ -2806,17 +1862,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2806
1862
|
|
2807
1863
|
add_tests("iter_while",
|
2808
1864
|
"Ruby" => "argl = 10\nwhile (argl >= 1) do\n puts(\"hello\")\n argl = (argl - 1)\nend\n",
|
2809
|
-
"RawParseTree" => [:block,
|
2810
|
-
[:lasgn, :argl, [:lit, 10]],
|
2811
|
-
[:while,
|
2812
|
-
[:call, [:lvar, :argl], :">=",
|
2813
|
-
[:array, [:lit, 1]]],
|
2814
|
-
[:block,
|
2815
|
-
[:fcall, :puts, [:array, [:str, "hello"]]],
|
2816
|
-
[:lasgn,
|
2817
|
-
:argl,
|
2818
|
-
[:call, [:lvar, :argl],
|
2819
|
-
:"-", [:array, [:lit, 1]]]]], true]],
|
2820
1865
|
"ParseTree" => s(:block,
|
2821
1866
|
s(:lasgn, :argl, s(:lit, 10)),
|
2822
1867
|
s(:while,
|
@@ -2832,7 +1877,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2832
1877
|
|
2833
1878
|
add_tests("ivar",
|
2834
1879
|
"Ruby" => [Examples, :reader],
|
2835
|
-
"RawParseTree" => [:defn, :reader, [:ivar, :@reader]],
|
2836
1880
|
"ParseTree" => s(:defn, :reader, # FIX should be unified?
|
2837
1881
|
s(:args),
|
2838
1882
|
s(:ivar, :@reader)),
|
@@ -2840,10 +1884,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2840
1884
|
|
2841
1885
|
add_tests("lasgn_array",
|
2842
1886
|
"Ruby" => "var = [\"foo\", \"bar\"]",
|
2843
|
-
"RawParseTree" => [:lasgn, :var,
|
2844
|
-
[:array,
|
2845
|
-
[:str, "foo"],
|
2846
|
-
[:str, "bar"]]],
|
2847
1887
|
"ParseTree" => s(:lasgn, :var,
|
2848
1888
|
s(:array,
|
2849
1889
|
s(:str, "foo"),
|
@@ -2851,44 +1891,35 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2851
1891
|
|
2852
1892
|
add_tests("lasgn_call",
|
2853
1893
|
"Ruby" => "c = (2 + 3)",
|
2854
|
-
"RawParseTree" => [:lasgn, :c, [:call, [:lit, 2], :+,
|
2855
|
-
[:array, [:lit, 3]]]],
|
2856
1894
|
"ParseTree" => s(:lasgn, :c, s(:call, s(:lit, 2), :+,
|
2857
1895
|
s(:arglist, s(:lit, 3)))))
|
2858
1896
|
|
2859
1897
|
add_tests("lit_bool_false",
|
2860
1898
|
"Ruby" => "false",
|
2861
|
-
"RawParseTree" => [:false],
|
2862
1899
|
"ParseTree" => s(:false))
|
2863
1900
|
|
2864
1901
|
add_tests("lit_bool_true",
|
2865
1902
|
"Ruby" => "true",
|
2866
|
-
"RawParseTree" => [:true],
|
2867
1903
|
"ParseTree" => s(:true))
|
2868
1904
|
|
2869
1905
|
add_tests("lit_float",
|
2870
1906
|
"Ruby" => "1.1",
|
2871
|
-
"RawParseTree" => [:lit, 1.1],
|
2872
1907
|
"ParseTree" => s(:lit, 1.1))
|
2873
1908
|
|
2874
1909
|
add_tests("lit_long",
|
2875
1910
|
"Ruby" => "1",
|
2876
|
-
"RawParseTree" => [:lit, 1],
|
2877
1911
|
"ParseTree" => s(:lit, 1))
|
2878
1912
|
|
2879
1913
|
add_tests("lit_long_negative",
|
2880
1914
|
"Ruby" => "-1",
|
2881
|
-
"RawParseTree" => [:lit, -1],
|
2882
1915
|
"ParseTree" => s(:lit, -1))
|
2883
1916
|
|
2884
1917
|
add_tests("lit_range2",
|
2885
1918
|
"Ruby" => "(1..10)",
|
2886
|
-
"RawParseTree" => [:lit, 1..10],
|
2887
1919
|
"ParseTree" => s(:lit, 1..10))
|
2888
1920
|
|
2889
1921
|
add_tests("lit_range3",
|
2890
1922
|
"Ruby" => "(1...10)",
|
2891
|
-
"RawParseTree" => [:lit, 1...10],
|
2892
1923
|
"ParseTree" => s(:lit, 1...10))
|
2893
1924
|
|
2894
1925
|
# TODO: discuss and decide which lit we like
|
@@ -2900,57 +1931,33 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2900
1931
|
|
2901
1932
|
add_tests("lit_regexp",
|
2902
1933
|
"Ruby" => "/x/",
|
2903
|
-
"RawParseTree" => [:lit, /x/],
|
2904
1934
|
"ParseTree" => s(:lit, /x/))
|
2905
1935
|
|
2906
1936
|
add_tests("lit_regexp_i_wwtt",
|
2907
1937
|
"Ruby" => 'str.split(//i)',
|
2908
|
-
"RawParseTree" => [:call, [:vcall, :str], :split,
|
2909
|
-
[:array, [:lit, //i]]],
|
2910
1938
|
"ParseTree" => s(:call, s(:call, nil, :str, s(:arglist)), :split,
|
2911
1939
|
s(:arglist, s(:lit, //i))))
|
2912
1940
|
|
2913
1941
|
add_tests("lit_regexp_n",
|
2914
1942
|
"Ruby" => "/x/n", # HACK differs on 1.9 - this is easiest
|
2915
|
-
"RawParseTree" => [:lit, /x/n],
|
2916
1943
|
"ParseTree" => s(:lit, /x/n),
|
2917
1944
|
"Ruby2Ruby" => /x/n.inspect)
|
2918
1945
|
|
2919
1946
|
add_tests("lit_regexp_once",
|
2920
1947
|
"Ruby" => "/x/o",
|
2921
|
-
"RawParseTree" => [:lit, /x/],
|
2922
1948
|
"ParseTree" => s(:lit, /x/),
|
2923
1949
|
"Ruby2Ruby" => "/x/")
|
2924
1950
|
|
2925
1951
|
add_tests("lit_sym",
|
2926
1952
|
"Ruby" => ":x",
|
2927
|
-
"RawParseTree" => [:lit, :x],
|
2928
1953
|
"ParseTree" => s(:lit, :x))
|
2929
1954
|
|
2930
1955
|
add_tests("lit_sym_splat",
|
2931
1956
|
"Ruby" => ":\"*args\"",
|
2932
|
-
"RawParseTree" => [:lit, :"*args"],
|
2933
1957
|
"ParseTree" => s(:lit, :"*args"))
|
2934
1958
|
|
2935
1959
|
add_tests("lvar_def_boundary",
|
2936
1960
|
"Ruby" => "b = 42\ndef a\n c do\n begin\n do_stuff\n rescue RuntimeError => b\n puts(b)\n end\n end\nend\n",
|
2937
|
-
"RawParseTree" => [:block,
|
2938
|
-
[:lasgn, :b, [:lit, 42]],
|
2939
|
-
[:defn, :a,
|
2940
|
-
[:scope,
|
2941
|
-
[:block,
|
2942
|
-
[:args],
|
2943
|
-
[:iter,
|
2944
|
-
[:fcall, :c],
|
2945
|
-
nil,
|
2946
|
-
[:rescue,
|
2947
|
-
[:vcall, :do_stuff],
|
2948
|
-
[:resbody,
|
2949
|
-
[:array, [:const, :RuntimeError]],
|
2950
|
-
[:block,
|
2951
|
-
[:dasgn_curr, :b, [:gvar, :$!]],
|
2952
|
-
[:fcall, :puts,
|
2953
|
-
[:array, [:dvar, :b]]]]]]]]]]],
|
2954
1961
|
"ParseTree" => s(:block,
|
2955
1962
|
s(:lasgn, :b, s(:lit, 42)),
|
2956
1963
|
s(:defn, :a,
|
@@ -2972,9 +1979,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2972
1979
|
|
2973
1980
|
add_tests("masgn",
|
2974
1981
|
"Ruby" => "a, b = c, d",
|
2975
|
-
"RawParseTree" => [:masgn,
|
2976
|
-
[:array, [:lasgn, :a], [:lasgn, :b]], nil,
|
2977
|
-
[:array, [:vcall, :c], [:vcall, :d]]],
|
2978
1982
|
"ParseTree" => s(:masgn,
|
2979
1983
|
s(:array, s(:lasgn, :a), s(:lasgn, :b)),
|
2980
1984
|
s(:array, s(:call, nil, :c, s(:arglist)),
|
@@ -2982,12 +1986,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2982
1986
|
|
2983
1987
|
add_tests("masgn_argscat",
|
2984
1988
|
"Ruby" => "a, b, *c = 1, 2, *[3, 4]",
|
2985
|
-
"RawParseTree" => [:masgn,
|
2986
|
-
[:array, [:lasgn, :a], [:lasgn, :b]],
|
2987
|
-
[:lasgn, :c],
|
2988
|
-
[:argscat,
|
2989
|
-
[:array, [:lit, 1], [:lit, 2]],
|
2990
|
-
[:array, [:lit, 3], [:lit, 4]]]],
|
2991
1989
|
"ParseTree" => s(:masgn,
|
2992
1990
|
s(:array,
|
2993
1991
|
s(:lasgn, :a),
|
@@ -3000,10 +1998,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3000
1998
|
|
3001
1999
|
add_tests("masgn_attrasgn",
|
3002
2000
|
"Ruby" => "a, b.c = d, e",
|
3003
|
-
"RawParseTree" => [:masgn,
|
3004
|
-
[:array, [:lasgn, :a],
|
3005
|
-
[:attrasgn, [:vcall, :b], :c=]], nil,
|
3006
|
-
[:array, [:vcall, :d], [:vcall, :e]]],
|
3007
2001
|
"ParseTree" => s(:masgn,
|
3008
2002
|
s(:array,
|
3009
2003
|
s(:lasgn, :a),
|
@@ -3016,12 +2010,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3016
2010
|
|
3017
2011
|
add_tests("masgn_attrasgn_array_rhs",
|
3018
2012
|
"Ruby" => "a.b, a.c, _ = q",
|
3019
|
-
"RawParseTree" => [:masgn,
|
3020
|
-
[:array,
|
3021
|
-
[:attrasgn, [:vcall, :a], :b=],
|
3022
|
-
[:attrasgn, [:vcall, :a], :c=],
|
3023
|
-
[:lasgn, :_]], nil,
|
3024
|
-
[:to_ary, [:vcall, :q]]],
|
3025
2013
|
"ParseTree" => s(:masgn,
|
3026
2014
|
s(:array,
|
3027
2015
|
s(:attrasgn,
|
@@ -3036,23 +2024,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3036
2024
|
|
3037
2025
|
add_tests("masgn_attrasgn_idx",
|
3038
2026
|
"Ruby" => "a, i, j = [], 1, 2\na[i], a[j] = a[j], a[i]\n",
|
3039
|
-
"RawParseTree" => [:block,
|
3040
|
-
[:masgn,
|
3041
|
-
[:array,
|
3042
|
-
[:lasgn, :a], [:lasgn, :i], [:lasgn, :j]], nil,
|
3043
|
-
[:array, [:zarray], [:lit, 1], [:lit, 2]]],
|
3044
|
-
[:masgn,
|
3045
|
-
[:array,
|
3046
|
-
[:attrasgn,
|
3047
|
-
[:lvar, :a], :[]=, [:array, [:lvar, :i]]],
|
3048
|
-
[:attrasgn,
|
3049
|
-
[:lvar, :a], :[]=, [:array, [:lvar, :j]]]],
|
3050
|
-
nil,
|
3051
|
-
[:array,
|
3052
|
-
[:call, [:lvar, :a], :[],
|
3053
|
-
[:array, [:lvar, :j]]],
|
3054
|
-
[:call, [:lvar, :a], :[],
|
3055
|
-
[:array, [:lvar, :i]]]]]],
|
3056
2027
|
"ParseTree" => s(:block,
|
3057
2028
|
s(:masgn,
|
3058
2029
|
s(:array,
|
@@ -3073,10 +2044,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3073
2044
|
|
3074
2045
|
add_tests("masgn_cdecl",
|
3075
2046
|
"Ruby" => "A, B, C = 1, 2, 3",
|
3076
|
-
"RawParseTree" => [:masgn,
|
3077
|
-
[:array, [:cdecl, :A], [:cdecl, :B],
|
3078
|
-
[:cdecl, :C]], nil,
|
3079
|
-
[:array, [:lit, 1], [:lit, 2], [:lit, 3]]],
|
3080
2047
|
"ParseTree" => s(:masgn,
|
3081
2048
|
s(:array, s(:cdecl, :A), s(:cdecl, :B),
|
3082
2049
|
s(:cdecl, :C)),
|
@@ -3085,9 +2052,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3085
2052
|
|
3086
2053
|
add_tests("masgn_iasgn",
|
3087
2054
|
"Ruby" => "a, @b = c, d",
|
3088
|
-
"RawParseTree" => [:masgn,
|
3089
|
-
[:array, [:lasgn, :a], [:iasgn, :"@b"]], nil,
|
3090
|
-
[:array, [:vcall, :c], [:vcall, :d]]],
|
3091
2055
|
"ParseTree" => s(:masgn,
|
3092
2056
|
s(:array, s(:lasgn, :a), s(:iasgn, :"@b")),
|
3093
2057
|
s(:array,
|
@@ -3096,20 +2060,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3096
2060
|
|
3097
2061
|
add_tests("masgn_masgn",
|
3098
2062
|
"Ruby" => "a, (b, c) = [1, [2, 3]]",
|
3099
|
-
"RawParseTree" => [:masgn,
|
3100
|
-
[:array,
|
3101
|
-
[:lasgn, :a],
|
3102
|
-
[:masgn,
|
3103
|
-
[:array,
|
3104
|
-
[:lasgn, :b],
|
3105
|
-
[:lasgn, :c]], nil, nil]],
|
3106
|
-
nil,
|
3107
|
-
[:to_ary,
|
3108
|
-
[:array,
|
3109
|
-
[:lit, 1],
|
3110
|
-
[:array,
|
3111
|
-
[:lit, 2],
|
3112
|
-
[:lit, 3]]]]],
|
3113
2063
|
"ParseTree" => s(:masgn,
|
3114
2064
|
s(:array,
|
3115
2065
|
s(:lasgn, :a),
|
@@ -3126,12 +2076,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3126
2076
|
|
3127
2077
|
add_tests("masgn_splat_lhs",
|
3128
2078
|
"Ruby" => "a, b, *c = d, e, f, g",
|
3129
|
-
"RawParseTree" => [:masgn,
|
3130
|
-
[:array, [:lasgn, :a], [:lasgn, :b]],
|
3131
|
-
[:lasgn, :c],
|
3132
|
-
[:array,
|
3133
|
-
[:vcall, :d], [:vcall, :e],
|
3134
|
-
[:vcall, :f], [:vcall, :g]]],
|
3135
2079
|
"ParseTree" => s(:masgn,
|
3136
2080
|
s(:array,
|
3137
2081
|
s(:lasgn, :a),
|
@@ -3145,10 +2089,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3145
2089
|
|
3146
2090
|
add_tests("masgn_splat_rhs_1",
|
3147
2091
|
"Ruby" => "a, b = *c",
|
3148
|
-
"RawParseTree" => [:masgn,
|
3149
|
-
[:array, [:lasgn, :a], [:lasgn, :b]],
|
3150
|
-
nil,
|
3151
|
-
[:splat, [:vcall, :c]]],
|
3152
2092
|
"ParseTree" => s(:masgn,
|
3153
2093
|
s(:array,
|
3154
2094
|
s(:lasgn, :a),
|
@@ -3157,12 +2097,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3157
2097
|
|
3158
2098
|
add_tests("masgn_splat_rhs_n",
|
3159
2099
|
"Ruby" => "a, b = c, d, *e",
|
3160
|
-
"RawParseTree" => [:masgn,
|
3161
|
-
[:array, [:lasgn, :a], [:lasgn, :b]],
|
3162
|
-
nil,
|
3163
|
-
[:argscat,
|
3164
|
-
[:array, [:vcall, :c], [:vcall, :d]],
|
3165
|
-
[:vcall, :e]]],
|
3166
2100
|
"ParseTree" => s(:masgn,
|
3167
2101
|
s(:array,
|
3168
2102
|
s(:lasgn, :a),
|
@@ -3174,10 +2108,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3174
2108
|
|
3175
2109
|
add_tests("masgn_splat_no_name_to_ary",
|
3176
2110
|
"Ruby" => "a, b, * = c",
|
3177
|
-
"RawParseTree" => [:masgn,
|
3178
|
-
[:array, [:lasgn, :a], [:lasgn, :b]],
|
3179
|
-
[:splat],
|
3180
|
-
[:to_ary, [:vcall, :c]]],
|
3181
2111
|
"ParseTree" => s(:masgn,
|
3182
2112
|
s(:array,
|
3183
2113
|
s(:lasgn, :a),
|
@@ -3187,9 +2117,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3187
2117
|
|
3188
2118
|
add_tests("masgn_splat_no_name_trailing",
|
3189
2119
|
"Ruby" => "a, b, = c",
|
3190
|
-
"RawParseTree" => [:masgn,
|
3191
|
-
[:array, [:lasgn, :a], [:lasgn, :b]], nil,
|
3192
|
-
[:to_ary, [:vcall, :c]]],
|
3193
2120
|
"ParseTree" => s(:masgn,
|
3194
2121
|
s(:array, s(:lasgn, :a), s(:lasgn, :b)),
|
3195
2122
|
s(:to_ary, s(:call, nil, :c, s(:arglist)))),
|
@@ -3197,10 +2124,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3197
2124
|
|
3198
2125
|
add_tests("masgn_splat_to_ary",
|
3199
2126
|
"Ruby" => "a, b, *c = d",
|
3200
|
-
"RawParseTree" => [:masgn,
|
3201
|
-
[:array, [:lasgn, :a], [:lasgn, :b]],
|
3202
|
-
[:lasgn, :c],
|
3203
|
-
[:to_ary, [:vcall, :d]]],
|
3204
2127
|
"ParseTree" => s(:masgn,
|
3205
2128
|
s(:array,
|
3206
2129
|
s(:lasgn, :a),
|
@@ -3210,12 +2133,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3210
2133
|
|
3211
2134
|
add_tests("masgn_splat_to_ary2",
|
3212
2135
|
"Ruby" => "a, b, *c = d.e(\"f\")",
|
3213
|
-
"RawParseTree" => [:masgn,
|
3214
|
-
[:array, [:lasgn, :a], [:lasgn, :b]],
|
3215
|
-
[:lasgn, :c],
|
3216
|
-
[:to_ary,
|
3217
|
-
[:call, [:vcall, :d], :e,
|
3218
|
-
[:array, [:str, 'f']]]]],
|
3219
2136
|
"ParseTree" => s(:masgn,
|
3220
2137
|
s(:array,
|
3221
2138
|
s(:lasgn, :a),
|
@@ -3229,25 +2146,18 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3229
2146
|
|
3230
2147
|
add_tests("match",
|
3231
2148
|
"Ruby" => "1 if /x/",
|
3232
|
-
"RawParseTree" => [:if, [:match, [:lit, /x/]], [:lit, 1], nil],
|
3233
2149
|
"ParseTree" => s(:if, s(:match, s(:lit, /x/)), s(:lit, 1), nil))
|
3234
2150
|
|
3235
2151
|
add_tests("match2",
|
3236
2152
|
"Ruby" => "/x/ =~ \"blah\"",
|
3237
|
-
"RawParseTree" => [:match2, [:lit, /x/], [:str, "blah"]],
|
3238
2153
|
"ParseTree" => s(:match2, s(:lit, /x/), s(:str, "blah")))
|
3239
2154
|
|
3240
2155
|
add_tests("match3",
|
3241
2156
|
"Ruby" => "\"blah\" =~ /x/",
|
3242
|
-
"RawParseTree" => [:match3, [:lit, /x/], [:str, "blah"]],
|
3243
2157
|
"ParseTree" => s(:match3, s(:lit, /x/), s(:str, "blah")))
|
3244
2158
|
|
3245
2159
|
add_tests("module",
|
3246
2160
|
"Ruby" => "module X\n def y\n # do nothing\n end\nend",
|
3247
|
-
"RawParseTree" => [:module, :X,
|
3248
|
-
[:scope,
|
3249
|
-
[:defn, :y,
|
3250
|
-
[:scope, [:block, [:args], [:nil]]]]]],
|
3251
2161
|
"ParseTree" => s(:module, :X,
|
3252
2162
|
s(:scope,
|
3253
2163
|
s(:defn, :y,
|
@@ -3256,24 +2166,17 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3256
2166
|
|
3257
2167
|
add_tests("module_scoped",
|
3258
2168
|
"Ruby" => "module X::Y\n c\nend",
|
3259
|
-
"RawParseTree" => [:module, [:colon2, [:const, :X], :Y],
|
3260
|
-
[:scope, [:vcall, :c]]],
|
3261
2169
|
"ParseTree" => s(:module, s(:colon2, s(:const, :X), :Y),
|
3262
2170
|
s(:scope, s(:call, nil, :c, s(:arglist)))))
|
3263
2171
|
|
3264
2172
|
add_tests("module_scoped3",
|
3265
2173
|
"Ruby" => "module ::Y\n c\nend",
|
3266
|
-
"RawParseTree" => [:module, [:colon3, :Y], [:scope, [:vcall, :c]]],
|
3267
2174
|
"ParseTree" => s(:module,
|
3268
2175
|
s(:colon3, :Y),
|
3269
2176
|
s(:scope, s(:call, nil, :c, s(:arglist)))))
|
3270
2177
|
|
3271
2178
|
add_tests("next",
|
3272
2179
|
"Ruby" => "loop { next if false }",
|
3273
|
-
"RawParseTree" => [:iter,
|
3274
|
-
[:fcall, :loop],
|
3275
|
-
nil,
|
3276
|
-
[:if, [:false], [:next], nil]],
|
3277
2180
|
"ParseTree" => s(:iter,
|
3278
2181
|
s(:call, nil, :loop, s(:arglist)),
|
3279
2182
|
nil,
|
@@ -3281,10 +2184,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3281
2184
|
|
3282
2185
|
add_tests("next_arg",
|
3283
2186
|
"Ruby" => "loop { next 42 if false }",
|
3284
|
-
"RawParseTree" => [:iter,
|
3285
|
-
[:fcall, :loop],
|
3286
|
-
nil,
|
3287
|
-
[:if, [:false], [:next, [:lit, 42]], nil]],
|
3288
2187
|
"ParseTree" => s(:iter,
|
3289
2188
|
s(:call, nil, :loop, s(:arglist)),
|
3290
2189
|
nil,
|
@@ -3292,24 +2191,14 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3292
2191
|
|
3293
2192
|
add_tests("not",
|
3294
2193
|
"Ruby" => "(not true)",
|
3295
|
-
"RawParseTree" => [:not, [:true]],
|
3296
2194
|
"ParseTree" => s(:not, s(:true)))
|
3297
2195
|
|
3298
2196
|
add_tests("nth_ref",
|
3299
2197
|
"Ruby" => "$1",
|
3300
|
-
"RawParseTree" => [:nth_ref, 1],
|
3301
2198
|
"ParseTree" => s(:nth_ref, 1))
|
3302
2199
|
|
3303
2200
|
add_tests("op_asgn1",
|
3304
2201
|
"Ruby" => "b = []\nb[1] ||= 10\nb[2] &&= 11\nb[3] += 12\n",
|
3305
|
-
"RawParseTree" => [:block,
|
3306
|
-
[:lasgn, :b, [:zarray]],
|
3307
|
-
[:op_asgn1, [:lvar, :b],
|
3308
|
-
[:array, [:lit, 1]], :"||", [:lit, 10]],
|
3309
|
-
[:op_asgn1, [:lvar, :b],
|
3310
|
-
[:array, [:lit, 2]], :"&&", [:lit, 11]],
|
3311
|
-
[:op_asgn1, [:lvar, :b],
|
3312
|
-
[:array, [:lit, 3]], :+, [:lit, 12]]],
|
3313
2202
|
"ParseTree" => s(:block,
|
3314
2203
|
s(:lasgn, :b, s(:array)),
|
3315
2204
|
s(:op_asgn1, s(:lvar, :b),
|
@@ -3321,14 +2210,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3321
2210
|
|
3322
2211
|
add_tests("op_asgn1_ivar",
|
3323
2212
|
"Ruby" => "@b = []\n@b[1] ||= 10\n@b[2] &&= 11\n@b[3] += 12\n",
|
3324
|
-
"RawParseTree" => [:block,
|
3325
|
-
[:iasgn, :@b, [:zarray]],
|
3326
|
-
[:op_asgn1, [:ivar, :@b],
|
3327
|
-
[:array, [:lit, 1]], :"||", [:lit, 10]],
|
3328
|
-
[:op_asgn1, [:ivar, :@b],
|
3329
|
-
[:array, [:lit, 2]], :"&&", [:lit, 11]],
|
3330
|
-
[:op_asgn1, [:ivar, :@b],
|
3331
|
-
[:array, [:lit, 3]], :+, [:lit, 12]]],
|
3332
2213
|
"ParseTree" => s(:block,
|
3333
2214
|
s(:iasgn, :@b, s(:array)),
|
3334
2215
|
s(:op_asgn1, s(:ivar, :@b),
|
@@ -3340,23 +2221,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3340
2221
|
|
3341
2222
|
add_tests("op_asgn2",
|
3342
2223
|
"Ruby" => "s = Struct.new(:var)\nc = s.new(nil)\nc.var ||= 20\nc.var &&= 21\nc.var += 22\nc.d.e.f ||= 42\n",
|
3343
|
-
"RawParseTree" => [:block,
|
3344
|
-
[:lasgn, :s,
|
3345
|
-
[:call, [:const, :Struct],
|
3346
|
-
:new, [:array, [:lit, :var]]]],
|
3347
|
-
[:lasgn, :c,
|
3348
|
-
[:call, [:lvar, :s], :new, [:array, [:nil]]]],
|
3349
|
-
|
3350
|
-
[:op_asgn2, [:lvar, :c], :var=, :"||",
|
3351
|
-
[:lit, 20]],
|
3352
|
-
[:op_asgn2, [:lvar, :c], :var=, :"&&",
|
3353
|
-
[:lit, 21]],
|
3354
|
-
[:op_asgn2, [:lvar, :c], :var=, :+, [:lit, 22]],
|
3355
|
-
|
3356
|
-
[:op_asgn2,
|
3357
|
-
[:call,
|
3358
|
-
[:call, [:lvar, :c], :d], :e], :f=, :"||",
|
3359
|
-
[:lit, 42]]],
|
3360
2224
|
"ParseTree" => s(:block,
|
3361
2225
|
s(:lasgn, :s,
|
3362
2226
|
s(:call, s(:const, :Struct),
|
@@ -3378,17 +2242,11 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3378
2242
|
|
3379
2243
|
add_tests("op_asgn2_self",
|
3380
2244
|
"Ruby" => "self.Bag ||= Bag.new",
|
3381
|
-
"RawParseTree" => [:op_asgn2, [:self], :"Bag=", :"||",
|
3382
|
-
[:call, [:const, :Bag], :new]],
|
3383
2245
|
"ParseTree" => s(:op_asgn2, s(:self), :"Bag=", :"||",
|
3384
2246
|
s(:call, s(:const, :Bag), :new, s(:arglist))))
|
3385
2247
|
|
3386
2248
|
add_tests("op_asgn_and",
|
3387
2249
|
"Ruby" => "a = 0\na &&= 2\n",
|
3388
|
-
"RawParseTree" => [:block,
|
3389
|
-
[:lasgn, :a, [:lit, 0]],
|
3390
|
-
[:op_asgn_and,
|
3391
|
-
[:lvar, :a], [:lasgn, :a, [:lit, 2]]]],
|
3392
2250
|
"ParseTree" => s(:block,
|
3393
2251
|
s(:lasgn, :a, s(:lit, 0)),
|
3394
2252
|
s(:op_asgn_and,
|
@@ -3396,17 +2254,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3396
2254
|
|
3397
2255
|
add_tests("op_asgn_and_ivar2",
|
3398
2256
|
"Ruby" => "@fetcher &&= new(Gem.configuration[:http_proxy])",
|
3399
|
-
"RawParseTree" => [:op_asgn_and,
|
3400
|
-
[:ivar, :@fetcher],
|
3401
|
-
[:iasgn,
|
3402
|
-
:@fetcher,
|
3403
|
-
[:fcall,
|
3404
|
-
:new,
|
3405
|
-
[:array,
|
3406
|
-
[:call,
|
3407
|
-
[:call, [:const, :Gem], :configuration],
|
3408
|
-
:[],
|
3409
|
-
[:array, [:lit, :http_proxy]]]]]]],
|
3410
2257
|
"ParseTree" => s(:op_asgn_and,
|
3411
2258
|
s(:ivar, :@fetcher),
|
3412
2259
|
s(:iasgn,
|
@@ -3423,10 +2270,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3423
2270
|
|
3424
2271
|
add_tests("op_asgn_or",
|
3425
2272
|
"Ruby" => "a = 0\na ||= 1\n",
|
3426
|
-
"RawParseTree" => [:block,
|
3427
|
-
[:lasgn, :a, [:lit, 0]],
|
3428
|
-
[:op_asgn_or,
|
3429
|
-
[:lvar, :a], [:lasgn, :a, [:lit, 1]]]],
|
3430
2273
|
"ParseTree" => s(:block,
|
3431
2274
|
s(:lasgn, :a, s(:lit, 0)),
|
3432
2275
|
s(:op_asgn_or,
|
@@ -3434,12 +2277,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3434
2277
|
|
3435
2278
|
add_tests("op_asgn_or_block",
|
3436
2279
|
"Ruby" => "a ||= begin\n b\n rescue\n c\n end",
|
3437
|
-
"RawParseTree" => [:op_asgn_or,
|
3438
|
-
[:lvar, :a],
|
3439
|
-
[:lasgn, :a,
|
3440
|
-
[:rescue,
|
3441
|
-
[:vcall, :b],
|
3442
|
-
[:resbody, nil, [:vcall, :c]]]]],
|
3443
2280
|
"ParseTree" => s(:op_asgn_or,
|
3444
2281
|
s(:lvar, :a),
|
3445
2282
|
s(:lasgn, :a,
|
@@ -3451,26 +2288,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3451
2288
|
|
3452
2289
|
add_tests("op_asgn_or_ivar",
|
3453
2290
|
"Ruby" => "@v ||= { }",
|
3454
|
-
"RawParseTree" => [:op_asgn_or,
|
3455
|
-
[:ivar, :@v],
|
3456
|
-
[:iasgn, :@v, [:hash]]],
|
3457
2291
|
"ParseTree" => s(:op_asgn_or,
|
3458
2292
|
s(:ivar, :@v),
|
3459
2293
|
s(:iasgn, :@v, s(:hash))))
|
3460
2294
|
|
3461
2295
|
add_tests("op_asgn_or_ivar2",
|
3462
2296
|
"Ruby" => "@fetcher ||= new(Gem.configuration[:http_proxy])",
|
3463
|
-
"RawParseTree" => [:op_asgn_or,
|
3464
|
-
[:ivar, :@fetcher],
|
3465
|
-
[:iasgn,
|
3466
|
-
:@fetcher,
|
3467
|
-
[:fcall,
|
3468
|
-
:new,
|
3469
|
-
[:array,
|
3470
|
-
[:call,
|
3471
|
-
[:call, [:const, :Gem], :configuration],
|
3472
|
-
:[],
|
3473
|
-
[:array, [:lit, :http_proxy]]]]]]],
|
3474
2297
|
"ParseTree" => s(:op_asgn_or,
|
3475
2298
|
s(:ivar, :@fetcher),
|
3476
2299
|
s(:iasgn,
|
@@ -3486,16 +2309,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3486
2309
|
|
3487
2310
|
add_tests("or",
|
3488
2311
|
"Ruby" => "(a or b)",
|
3489
|
-
"RawParseTree" => [:or, [:vcall, :a], [:vcall, :b]],
|
3490
2312
|
"ParseTree" => s(:or,
|
3491
2313
|
s(:call, nil, :a, s(:arglist)),
|
3492
2314
|
s(:call, nil, :b, s(:arglist))))
|
3493
2315
|
|
3494
2316
|
add_tests("or_big",
|
3495
2317
|
"Ruby" => "((a or b) or (c and d))",
|
3496
|
-
"RawParseTree" => [:or,
|
3497
|
-
[:or, [:vcall, :a], [:vcall, :b]],
|
3498
|
-
[:and, [:vcall, :c], [:vcall, :d]]],
|
3499
2318
|
"ParseTree" => s(:or,
|
3500
2319
|
s(:or,
|
3501
2320
|
s(:call, nil, :a, s(:arglist)),
|
@@ -3506,9 +2325,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3506
2325
|
|
3507
2326
|
add_tests("or_big2",
|
3508
2327
|
"Ruby" => "((a || b) || (c && d))",
|
3509
|
-
"RawParseTree" => [:or,
|
3510
|
-
[:or, [:vcall, :a], [:vcall, :b]],
|
3511
|
-
[:and, [:vcall, :c], [:vcall, :d]]],
|
3512
2328
|
"ParseTree" => s(:or,
|
3513
2329
|
s(:or,
|
3514
2330
|
s(:call, nil, :a, s(:arglist)),
|
@@ -3520,15 +2336,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3520
2336
|
|
3521
2337
|
add_tests("parse_floats_as_args",
|
3522
2338
|
"Ruby" => "def x(a=0.0,b=0.0)\n a+b\nend",
|
3523
|
-
"RawParseTree" => [:defn, :x,
|
3524
|
-
[:scope,
|
3525
|
-
[:block,
|
3526
|
-
[:args, :a, :b,
|
3527
|
-
[:block,
|
3528
|
-
[:lasgn, :a, [:lit, 0.0]],
|
3529
|
-
[:lasgn, :b, [:lit, 0.0]]]],
|
3530
|
-
[:call, [:lvar, :a], :+,
|
3531
|
-
[:array, [:lvar, :b]]]]]],
|
3532
2339
|
"ParseTree" => s(:defn, :x,
|
3533
2340
|
s(:args, :a, :b,
|
3534
2341
|
s(:block,
|
@@ -3542,15 +2349,10 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3542
2349
|
|
3543
2350
|
add_tests("postexe",
|
3544
2351
|
"Ruby" => "END { 1 }",
|
3545
|
-
"RawParseTree" => [:iter, [:postexe], nil, [:lit, 1]],
|
3546
2352
|
"ParseTree" => s(:iter, s(:postexe), nil, s(:lit, 1)))
|
3547
2353
|
|
3548
2354
|
add_tests("proc_args_0",
|
3549
2355
|
"Ruby" => "proc { || (x + 1) }",
|
3550
|
-
"RawParseTree" => [:iter,
|
3551
|
-
[:fcall, :proc],
|
3552
|
-
0,
|
3553
|
-
[:call, [:vcall, :x], :+, [:array, [:lit, 1]]]],
|
3554
2356
|
"ParseTree" => s(:iter,
|
3555
2357
|
s(:call, nil, :proc, s(:arglist)),
|
3556
2358
|
0,
|
@@ -3561,10 +2363,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3561
2363
|
|
3562
2364
|
add_tests("proc_args_1",
|
3563
2365
|
"Ruby" => "proc { |x| (x + 1) }",
|
3564
|
-
"RawParseTree" => [:iter,
|
3565
|
-
[:fcall, :proc],
|
3566
|
-
[:dasgn_curr, :x],
|
3567
|
-
[:call, [:dvar, :x], :+, [:array, [:lit, 1]]]],
|
3568
2366
|
"ParseTree" => s(:iter,
|
3569
2367
|
s(:call, nil, :proc, s(:arglist)),
|
3570
2368
|
s(:lasgn, :x),
|
@@ -3573,12 +2371,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3573
2371
|
|
3574
2372
|
add_tests("proc_args_2",
|
3575
2373
|
"Ruby" => "proc { |x, y| (x + y) }",
|
3576
|
-
"RawParseTree" => [:iter,
|
3577
|
-
[:fcall, :proc],
|
3578
|
-
[:masgn, [:array,
|
3579
|
-
[:dasgn_curr, :x],
|
3580
|
-
[:dasgn_curr, :y]], nil, nil],
|
3581
|
-
[:call, [:dvar, :x], :+, [:array, [:dvar, :y]]]],
|
3582
2374
|
"ParseTree" => s(:iter,
|
3583
2375
|
s(:call, nil, :proc, s(:arglist)),
|
3584
2376
|
s(:masgn,
|
@@ -3590,10 +2382,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3590
2382
|
|
3591
2383
|
add_tests("proc_args_no",
|
3592
2384
|
"Ruby" => "proc { (x + 1) }",
|
3593
|
-
"RawParseTree" => [:iter,
|
3594
|
-
[:fcall, :proc],
|
3595
|
-
nil,
|
3596
|
-
[:call, [:vcall, :x], :+, [:array, [:lit, 1]]]],
|
3597
2385
|
"ParseTree" => s(:iter,
|
3598
2386
|
s(:call, nil, :proc, s(:arglist)),
|
3599
2387
|
nil,
|
@@ -3602,9 +2390,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3602
2390
|
|
3603
2391
|
add_tests("redo",
|
3604
2392
|
"Ruby" => "loop { redo if false }",
|
3605
|
-
"RawParseTree" => [:iter,
|
3606
|
-
[:fcall, :loop], nil,
|
3607
|
-
[:if, [:false], [:redo], nil]],
|
3608
2393
|
"ParseTree" => s(:iter,
|
3609
2394
|
s(:call, nil, :loop, s(:arglist)),
|
3610
2395
|
nil,
|
@@ -3614,21 +2399,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3614
2399
|
|
3615
2400
|
add_tests("rescue",
|
3616
2401
|
"Ruby" => "blah rescue nil",
|
3617
|
-
"RawParseTree" => [:rescue,
|
3618
|
-
[:vcall, :blah], [:resbody, nil, [:nil]]],
|
3619
2402
|
"ParseTree" => s(:rescue,
|
3620
2403
|
s(:call, nil, :blah, s(:arglist)),
|
3621
2404
|
s(:resbody, s(:array), s(:nil))))
|
3622
2405
|
|
3623
2406
|
add_tests("rescue_block_body",
|
3624
2407
|
"Ruby" => "begin\n a\nrescue => e\n c\n d\nend",
|
3625
|
-
"RawParseTree" => [:rescue,
|
3626
|
-
[:vcall, :a],
|
3627
|
-
[:resbody, nil,
|
3628
|
-
[:block,
|
3629
|
-
[:lasgn, :e, [:gvar, :$!]],
|
3630
|
-
[:vcall, :c],
|
3631
|
-
[:vcall, :d]]]],
|
3632
2408
|
"ParseTree" => s(:rescue,
|
3633
2409
|
s(:call, nil, :a, s(:arglist)),
|
3634
2410
|
s(:resbody,
|
@@ -3639,14 +2415,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3639
2415
|
|
3640
2416
|
add_tests("rescue_block_body_3",
|
3641
2417
|
"Ruby" => "begin\n a\nrescue A\n b\nrescue B\n c\nrescue C\n d\nend",
|
3642
|
-
"RawParseTree" => [:rescue,
|
3643
|
-
[:vcall, :a],
|
3644
|
-
[:resbody, [:array, [:const, :A]],
|
3645
|
-
[:vcall, :b],
|
3646
|
-
[:resbody, [:array, [:const, :B]],
|
3647
|
-
[:vcall, :c],
|
3648
|
-
[:resbody, [:array, [:const, :C]],
|
3649
|
-
[:vcall, :d]]]]],
|
3650
2418
|
"ParseTree" => s(:rescue,
|
3651
2419
|
s(:call, nil, :a, s(:arglist)),
|
3652
2420
|
s(:resbody, s(:array, s(:const, :A)),
|
@@ -3658,13 +2426,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3658
2426
|
|
3659
2427
|
add_tests("rescue_block_body_ivar",
|
3660
2428
|
"Ruby" => "begin\n a\nrescue => @e\n c\n d\nend",
|
3661
|
-
"RawParseTree" => [:rescue,
|
3662
|
-
[:vcall, :a],
|
3663
|
-
[:resbody, nil,
|
3664
|
-
[:block,
|
3665
|
-
[:iasgn, :@e, [:gvar, :$!]],
|
3666
|
-
[:vcall, :c],
|
3667
|
-
[:vcall, :d]]]],
|
3668
2429
|
"ParseTree" => s(:rescue,
|
3669
2430
|
s(:call, nil, :a, s(:arglist)),
|
3670
2431
|
s(:resbody,
|
@@ -3675,18 +2436,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3675
2436
|
|
3676
2437
|
add_tests("rescue_block_nada",
|
3677
2438
|
"Ruby" => "begin\n blah\nrescue\n # do nothing\nend",
|
3678
|
-
"RawParseTree" => [:rescue, [:vcall, :blah], [:resbody, nil]],
|
3679
2439
|
"ParseTree" => s(:rescue,
|
3680
2440
|
s(:call, nil, :blah, s(:arglist)),
|
3681
2441
|
s(:resbody, s(:array), nil)))
|
3682
2442
|
|
3683
2443
|
add_tests("rescue_exceptions",
|
3684
2444
|
"Ruby" => "begin\n blah\nrescue RuntimeError => r\n # do nothing\nend",
|
3685
|
-
"RawParseTree" => [:rescue,
|
3686
|
-
[:vcall, :blah],
|
3687
|
-
[:resbody,
|
3688
|
-
[:array, [:const, :RuntimeError]],
|
3689
|
-
[:lasgn, :r, [:gvar, :$!]]]],
|
3690
2445
|
"ParseTree" => s(:rescue,
|
3691
2446
|
s(:call, nil, :blah, s(:arglist)),
|
3692
2447
|
s(:resbody,
|
@@ -3698,9 +2453,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3698
2453
|
|
3699
2454
|
add_tests("rescue_iasgn_var_empty",
|
3700
2455
|
"Ruby" => "begin\n 1\nrescue => @e\n # do nothing\nend",
|
3701
|
-
"RawParseTree" => [:rescue,
|
3702
|
-
[:lit, 1],
|
3703
|
-
[:resbody, nil, [:iasgn, :@e, [:gvar, :$!]]]],
|
3704
2456
|
"ParseTree" => s(:rescue,
|
3705
2457
|
s(:lit, 1),
|
3706
2458
|
s(:resbody,
|
@@ -3709,9 +2461,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3709
2461
|
|
3710
2462
|
add_tests("rescue_lasgn",
|
3711
2463
|
"Ruby" => "begin\n 1\nrescue\n var = 2\nend",
|
3712
|
-
"RawParseTree" => [:rescue,
|
3713
|
-
[:lit, 1],
|
3714
|
-
[:resbody, nil, [:lasgn, :var, [:lit, 2]]]],
|
3715
2464
|
"ParseTree" => s(:rescue,
|
3716
2465
|
s(:lit, 1),
|
3717
2466
|
s(:resbody,
|
@@ -3721,12 +2470,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3721
2470
|
|
3722
2471
|
add_tests("rescue_lasgn_var",
|
3723
2472
|
"Ruby" => "begin\n 1\nrescue => e\n var = 2\nend",
|
3724
|
-
"RawParseTree" => [:rescue,
|
3725
|
-
[:lit, 1],
|
3726
|
-
[:resbody, nil,
|
3727
|
-
[:block,
|
3728
|
-
[:lasgn, :e, [:gvar, :$!]],
|
3729
|
-
[:lasgn, :var, [:lit, 2]]]]],
|
3730
2473
|
"ParseTree" => s(:rescue,
|
3731
2474
|
s(:lit, 1),
|
3732
2475
|
s(:resbody,
|
@@ -3735,9 +2478,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3735
2478
|
|
3736
2479
|
add_tests("rescue_lasgn_var_empty",
|
3737
2480
|
"Ruby" => "begin\n 1\nrescue => e\n # do nothing\nend",
|
3738
|
-
"RawParseTree" => [:rescue,
|
3739
|
-
[:lit, 1],
|
3740
|
-
[:resbody, nil, [:lasgn, :e, [:gvar, :$!]]]],
|
3741
2481
|
"ParseTree" => s(:rescue,
|
3742
2482
|
s(:lit, 1),
|
3743
2483
|
s(:resbody,
|
@@ -3746,44 +2486,32 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3746
2486
|
|
3747
2487
|
add_tests("retry",
|
3748
2488
|
"Ruby" => "retry",
|
3749
|
-
"RawParseTree" => [:retry],
|
3750
2489
|
"ParseTree" => s(:retry))
|
3751
2490
|
|
3752
2491
|
add_tests("return_0",
|
3753
2492
|
"Ruby" => "return",
|
3754
|
-
"RawParseTree" => [:return],
|
3755
2493
|
"ParseTree" => s(:return))
|
3756
2494
|
|
3757
2495
|
add_tests("return_1",
|
3758
2496
|
"Ruby" => "return 1",
|
3759
|
-
"RawParseTree" => [:return, [:lit, 1]],
|
3760
2497
|
"ParseTree" => s(:return, s(:lit, 1)))
|
3761
2498
|
|
3762
2499
|
add_tests("return_1_splatted",
|
3763
2500
|
"Ruby" => "return *1",
|
3764
|
-
"RawParseTree" => [:return, [:svalue, [:splat, [:lit, 1]]]],
|
3765
2501
|
"ParseTree" => s(:return, s(:svalue, s(:splat, s(:lit, 1)))))
|
3766
2502
|
|
3767
2503
|
add_tests("return_n",
|
3768
2504
|
"Ruby" => "return 1, 2, 3",
|
3769
|
-
"RawParseTree" => [:return, [:array,
|
3770
|
-
[:lit, 1], [:lit, 2], [:lit, 3]]],
|
3771
2505
|
"ParseTree" => s(:return, s(:array,
|
3772
2506
|
s(:lit, 1), s(:lit, 2), s(:lit, 3))),
|
3773
2507
|
"Ruby2Ruby" => "return [1, 2, 3]")
|
3774
2508
|
|
3775
2509
|
add_tests("sclass",
|
3776
2510
|
"Ruby" => "class << self\n 42\nend",
|
3777
|
-
"RawParseTree" => [:sclass, [:self], [:scope, [:lit, 42]]],
|
3778
2511
|
"ParseTree" => s(:sclass, s(:self), s(:scope, s(:lit, 42))))
|
3779
2512
|
|
3780
2513
|
add_tests("sclass_trailing_class",
|
3781
2514
|
"Ruby" => "class A\n class << self\n a\n end\n class B\n end\nend",
|
3782
|
-
"RawParseTree" => [:class, :A, nil,
|
3783
|
-
[:scope,
|
3784
|
-
[:block,
|
3785
|
-
[:sclass, [:self], [:scope, [:vcall, :a]]],
|
3786
|
-
[:class, :B, nil, [:scope]]]]],
|
3787
2515
|
"ParseTree" => s(:class, :A, nil,
|
3788
2516
|
s(:scope,
|
3789
2517
|
s(:block,
|
@@ -3794,11 +2522,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3794
2522
|
|
3795
2523
|
add_tests("splat",
|
3796
2524
|
"Ruby" => "def x(*b)\n a(*b)\nend",
|
3797
|
-
"RawParseTree" => [:defn, :x,
|
3798
|
-
[:scope,
|
3799
|
-
[:block,
|
3800
|
-
[:args, :"*b"],
|
3801
|
-
[:fcall, :a, [:splat, [:lvar, :b]]]]]],
|
3802
2525
|
"ParseTree" => s(:defn, :x,
|
3803
2526
|
s(:args, :"*b"),
|
3804
2527
|
s(:scope,
|
@@ -3808,137 +2531,104 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3808
2531
|
|
3809
2532
|
add_tests("splat_array",
|
3810
2533
|
"Ruby" => "[*[1]]",
|
3811
|
-
"RawParseTree" => [:splat, [:array, [:lit, 1]]],
|
3812
2534
|
"ParseTree" => s(:array, s(:splat, s(:array, s(:lit, 1)))))
|
3813
2535
|
|
3814
2536
|
add_tests("splat_break",
|
3815
2537
|
"Ruby" => "break *[1]",
|
3816
|
-
"RawParseTree" => [:break, [:svalue, [:splat, [:array, [:lit, 1]]]]],
|
3817
2538
|
"ParseTree" => s(:break, s(:svalue, s(:splat, s(:array, s(:lit, 1))))))
|
3818
2539
|
|
3819
2540
|
add_tests("splat_break_array",
|
3820
2541
|
"Ruby" => "break [*[1]]",
|
3821
|
-
"RawParseTree" => [:break, [:splat, [:array, [:lit, 1]]]],
|
3822
2542
|
"ParseTree" => s(:break, s(:array, s(:splat, s(:array, s(:lit, 1))))))
|
3823
2543
|
|
3824
2544
|
add_tests("splat_fcall",
|
3825
2545
|
"Ruby" => "meth(*[1])",
|
3826
|
-
"RawParseTree" => [:fcall, :meth,
|
3827
|
-
[:splat, [:array, [:lit, 1]]]],
|
3828
2546
|
"ParseTree" => s(:call, nil, :meth,
|
3829
2547
|
s(:arglist, s(:splat, s(:array, s(:lit, 1))))))
|
3830
2548
|
|
3831
2549
|
add_tests("splat_fcall_array",
|
3832
2550
|
"Ruby" => "meth([*[1]])",
|
3833
|
-
"RawParseTree" => [:fcall, :meth,
|
3834
|
-
[:array, [:splat, [:array, [:lit, 1]]]]],
|
3835
2551
|
"ParseTree" => s(:call, nil, :meth,
|
3836
2552
|
s(:arglist,
|
3837
2553
|
s(:array, s(:splat, s(:array, s(:lit, 1)))))))
|
3838
2554
|
|
3839
2555
|
add_tests("splat_lasgn",
|
3840
2556
|
"Ruby" => "x = *[1]",
|
3841
|
-
"RawParseTree" => [:lasgn, :x, [:svalue, [:splat, [:array, [:lit, 1]]]]],
|
3842
2557
|
"ParseTree" => s(:lasgn, :x, s(:svalue, s(:splat, s(:array, s(:lit, 1))))))
|
3843
2558
|
|
3844
2559
|
add_tests("splat_lasgn_array",
|
3845
2560
|
"Ruby" => "x = [*[1]]",
|
3846
|
-
"RawParseTree" => [:lasgn, :x, [:splat, [:array, [:lit, 1]]]],
|
3847
2561
|
"ParseTree" => s(:lasgn, :x, s(:array, s(:splat, s(:array, s(:lit, 1))))))
|
3848
2562
|
|
3849
2563
|
add_tests("splat_lit_1",
|
3850
2564
|
"Ruby" => "[*1]",
|
3851
|
-
|
2565
|
+
# UGH - damn MRI
|
3852
2566
|
"ParseTree" => s(:array, s(:splat, s(:lit, 1))))
|
3853
2567
|
|
3854
2568
|
add_tests("splat_lit_n",
|
3855
2569
|
"Ruby" => "[1, *2]",
|
3856
|
-
"RawParseTree" => [:argscat, [:array, [:lit, 1]], [:lit, 2]],
|
3857
2570
|
"ParseTree" => s(:array, s(:lit, 1), s(:splat, s(:lit, 2))))
|
3858
2571
|
|
3859
2572
|
add_tests("splat_next",
|
3860
2573
|
"Ruby" => "next *[1]",
|
3861
|
-
"RawParseTree" => [:next, [:svalue, [:splat, [:array, [:lit, 1]]]]],
|
3862
2574
|
"ParseTree" => s(:next, s(:svalue, s(:splat, s(:array, s(:lit, 1))))))
|
3863
2575
|
|
3864
2576
|
add_tests("splat_next_array",
|
3865
2577
|
"Ruby" => "next [*[1]]",
|
3866
|
-
"RawParseTree" => [:next, [:splat, [:array, [:lit, 1]]]],
|
3867
2578
|
"ParseTree" => s(:next, s(:array, s(:splat, s(:array, s(:lit, 1))))))
|
3868
2579
|
|
3869
2580
|
add_tests("splat_return",
|
3870
2581
|
"Ruby" => "return *[1]",
|
3871
|
-
"RawParseTree" => [:return, [:svalue, [:splat, [:array, [:lit, 1]]]]],
|
3872
2582
|
"ParseTree" => s(:return, s(:svalue, s(:splat, s(:array, s(:lit, 1))))))
|
3873
2583
|
|
3874
2584
|
add_tests("splat_return_array",
|
3875
2585
|
"Ruby" => "return [*[1]]",
|
3876
|
-
"RawParseTree" => [:return, [:splat, [:array, [:lit, 1]]]],
|
3877
2586
|
"ParseTree" => s(:return, s(:array, s(:splat, s(:array, s(:lit, 1))))))
|
3878
2587
|
|
3879
2588
|
add_tests("splat_super",
|
3880
2589
|
"Ruby" => "super(*[1])",
|
3881
|
-
"RawParseTree" => [:super, [:splat, [:array, [:lit, 1]]]],
|
3882
2590
|
"ParseTree" => s(:super, s(:splat, s(:array, s(:lit, 1)))))
|
3883
2591
|
|
3884
2592
|
add_tests("splat_super_array",
|
3885
2593
|
"Ruby" => "super([*[1]])",
|
3886
|
-
"RawParseTree" => [:super, [:array, [:splat, [:array, [:lit, 1]]]]],
|
3887
2594
|
"ParseTree" => s(:super, s(:array, s(:splat, s(:array, s(:lit, 1))))))
|
3888
2595
|
|
3889
2596
|
add_tests("splat_yield",
|
3890
2597
|
"Ruby" => "yield(*[1])",
|
3891
|
-
"RawParseTree" => [:yield, [:splat, [:array, [:lit, 1]]]],
|
3892
2598
|
"ParseTree" => s(:yield, s(:splat, s(:array, s(:lit, 1)))))
|
3893
2599
|
|
3894
2600
|
add_tests("splat_yield_array",
|
3895
2601
|
"Ruby" => "yield([*[1]])",
|
3896
|
-
"RawParseTree" => [:yield, [:splat, [:array, [:lit, 1]]], true],
|
3897
2602
|
"ParseTree" => s(:yield, s(:array, s(:splat, s(:array, s(:lit, 1))))))
|
3898
2603
|
|
3899
2604
|
add_tests("str",
|
3900
2605
|
"Ruby" => '"x"',
|
3901
|
-
"RawParseTree" => [:str, "x"],
|
3902
2606
|
"ParseTree" => s(:str, "x"))
|
3903
2607
|
|
3904
2608
|
add_tests("str_concat_newline", # FIX? make prettier? possible?
|
3905
2609
|
"Ruby" => '"before" \\
|
3906
2610
|
" after"',
|
3907
|
-
"RawParseTree" => [:str, "before after"],
|
3908
2611
|
"ParseTree" => s(:str, "before after"),
|
3909
2612
|
"Ruby2Ruby" => '"before after"')
|
3910
2613
|
|
3911
2614
|
add_tests("str_concat_space",
|
3912
2615
|
"Ruby" => '"before" " after"',
|
3913
|
-
"RawParseTree" => [:str, "before after"],
|
3914
2616
|
"ParseTree" => s(:str, "before after"),
|
3915
2617
|
"Ruby2Ruby" => '"before after"')
|
3916
2618
|
|
3917
2619
|
add_tests("str_heredoc",
|
3918
2620
|
"Ruby" => "<<'EOM'\n blah\nblah\nEOM",
|
3919
|
-
"RawParseTree" => [:str, " blah\nblah\n"],
|
3920
2621
|
"ParseTree" => s(:str, " blah\nblah\n"),
|
3921
2622
|
"Ruby2Ruby" => "\" blah\\nblah\\n\"")
|
3922
2623
|
|
3923
2624
|
add_tests("str_heredoc_call",
|
3924
2625
|
"Ruby" => "<<'EOM'.strip\n blah\nblah\nEOM",
|
3925
|
-
"RawParseTree" => [:call, [:str, " blah\nblah\n"], :strip],
|
3926
2626
|
"ParseTree" => s(:call, s(:str, " blah\nblah\n"),
|
3927
2627
|
:strip, s(:arglist)),
|
3928
2628
|
"Ruby2Ruby" => "\" blah\\nblah\\n\".strip")
|
3929
2629
|
|
3930
2630
|
add_tests("str_heredoc_double",
|
3931
2631
|
"Ruby" => "a += <<-H1 + b + <<-H2\n first\nH1\n second\nH2",
|
3932
|
-
"RawParseTree" => [:lasgn, :a,
|
3933
|
-
[:call,
|
3934
|
-
[:lvar, :a],
|
3935
|
-
:+,
|
3936
|
-
[:array,
|
3937
|
-
[:call,
|
3938
|
-
[:call, [:str, " first\n"], :+,
|
3939
|
-
[:array, [:vcall, :b]]],
|
3940
|
-
:+,
|
3941
|
-
[:array, [:str, " second\n"]]]]]],
|
3942
2632
|
"ParseTree" => s(:lasgn, :a,
|
3943
2633
|
s(:call,
|
3944
2634
|
s(:lvar, :a),
|
@@ -3954,41 +2644,21 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3954
2644
|
|
3955
2645
|
add_tests("str_heredoc_empty", # yes... tarded
|
3956
2646
|
"Ruby" => "<<'EOM'\nEOM",
|
3957
|
-
"RawParseTree" => [:str, ""],
|
3958
2647
|
"ParseTree" => s(:str, ""),
|
3959
2648
|
"Ruby2Ruby" => '""')
|
3960
2649
|
|
3961
2650
|
add_tests("str_heredoc_indent",
|
3962
2651
|
"Ruby" => "<<-EOM\n blah\nblah\n\n EOM",
|
3963
|
-
"RawParseTree" => [:str, " blah\nblah\n\n"],
|
3964
2652
|
"ParseTree" => s(:str, " blah\nblah\n\n"),
|
3965
2653
|
"Ruby2Ruby" => "\" blah\\nblah\\n\\n\"")
|
3966
2654
|
|
3967
2655
|
add_tests("str_interp_file",
|
3968
2656
|
"Ruby" => '"file = #{__FILE__}\n"',
|
3969
|
-
"RawParseTree" => [:str, "file = (string)\n"],
|
3970
2657
|
"ParseTree" => s(:str, "file = (string)\n"),
|
3971
2658
|
"Ruby2Ruby" => '"file = (string)\\n"')
|
3972
2659
|
|
3973
2660
|
add_tests("structure_extra_block_for_dvar_scoping",
|
3974
2661
|
"Ruby" => "a.b do |c, d|\n unless e.f(c) then\n g = false\n d.h { |x, i| g = true }\n end\nend",
|
3975
|
-
"RawParseTree" => [:iter,
|
3976
|
-
[:call, [:vcall, :a], :b],
|
3977
|
-
[:masgn, [:array,
|
3978
|
-
[:dasgn_curr, :c],
|
3979
|
-
[:dasgn_curr, :d]], nil, nil],
|
3980
|
-
[:if,
|
3981
|
-
[:call, [:vcall, :e], :f,
|
3982
|
-
[:array, [:dvar, :c]]],
|
3983
|
-
nil,
|
3984
|
-
[:block,
|
3985
|
-
[:dasgn_curr, :g, [:false]],
|
3986
|
-
[:iter,
|
3987
|
-
[:call, [:dvar, :d], :h],
|
3988
|
-
[:masgn, [:array,
|
3989
|
-
[:dasgn_curr, :x],
|
3990
|
-
[:dasgn_curr, :i]], nil, nil],
|
3991
|
-
[:dasgn, :g, [:true]]]]]],
|
3992
2662
|
"ParseTree" => s(:iter,
|
3993
2663
|
s(:call,
|
3994
2664
|
s(:call, nil, :a, s(:arglist)),
|
@@ -4011,9 +2681,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4011
2681
|
|
4012
2682
|
add_tests("structure_remove_begin_1",
|
4013
2683
|
"Ruby" => "a << begin\n b\n rescue\n c\n end",
|
4014
|
-
"RawParseTree" => [:call, [:vcall, :a], :<<,
|
4015
|
-
[:array, [:rescue, [:vcall, :b],
|
4016
|
-
[:resbody, nil, [:vcall, :c]]]]],
|
4017
2684
|
"ParseTree" => s(:call, s(:call, nil, :a, s(:arglist)), :<<,
|
4018
2685
|
s(:arglist,
|
4019
2686
|
s(:rescue,
|
@@ -4024,15 +2691,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4024
2691
|
|
4025
2692
|
add_tests("structure_remove_begin_2",
|
4026
2693
|
"Ruby" => "a = if c\n begin\n b\n rescue\n nil\n end\n end\na",
|
4027
|
-
"RawParseTree" => [:block,
|
4028
|
-
[:lasgn,
|
4029
|
-
:a,
|
4030
|
-
[:if, [:vcall, :c],
|
4031
|
-
[:rescue,
|
4032
|
-
[:vcall, :b],
|
4033
|
-
[:resbody, nil, [:nil]]],
|
4034
|
-
nil]],
|
4035
|
-
[:lvar, :a]],
|
4036
2694
|
"ParseTree" => s(:block,
|
4037
2695
|
s(:lasgn,
|
4038
2696
|
:a,
|
@@ -4046,26 +2704,17 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4046
2704
|
|
4047
2705
|
add_tests("structure_unused_literal_wwtt",
|
4048
2706
|
"Ruby" => "\"prevent the above from infecting rdoc\"\n\nmodule Graffle\nend",
|
4049
|
-
"RawParseTree" => [:module, :Graffle, [:scope]],
|
4050
2707
|
"ParseTree" => s(:module, :Graffle, s(:scope)),
|
4051
2708
|
"Ruby2Ruby" => "module Graffle\nend")
|
4052
2709
|
|
4053
2710
|
add_tests("super_0",
|
4054
2711
|
"Ruby" => "def x\n super()\nend",
|
4055
|
-
"RawParseTree" => [:defn, :x,
|
4056
|
-
[:scope,
|
4057
|
-
[:block, [:args], [:super]]]],
|
4058
2712
|
"ParseTree" => s(:defn, :x,
|
4059
2713
|
s(:args),
|
4060
2714
|
s(:scope, s(:block, s(:super)))))
|
4061
2715
|
|
4062
2716
|
add_tests("super_1",
|
4063
2717
|
"Ruby" => "def x\n super(4)\nend",
|
4064
|
-
"RawParseTree" => [:defn, :x,
|
4065
|
-
[:scope,
|
4066
|
-
[:block,
|
4067
|
-
[:args],
|
4068
|
-
[:super, [:array, [:lit, 4]]]]]],
|
4069
2718
|
"ParseTree" => s(:defn, :x,
|
4070
2719
|
s(:args),
|
4071
2720
|
s(:scope,
|
@@ -4074,13 +2723,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4074
2723
|
|
4075
2724
|
add_tests("super_1_array",
|
4076
2725
|
"Ruby" => "def x\n super([24, 42])\nend",
|
4077
|
-
"RawParseTree" => [:defn, :x,
|
4078
|
-
[:scope,
|
4079
|
-
[:block,
|
4080
|
-
[:args],
|
4081
|
-
[:super,
|
4082
|
-
[:array,
|
4083
|
-
[:array, [:lit, 24], [:lit, 42]]]]]]],
|
4084
2726
|
"ParseTree" => s(:defn, :x,
|
4085
2727
|
s(:args),
|
4086
2728
|
s(:scope,
|
@@ -4091,8 +2733,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4091
2733
|
|
4092
2734
|
add_tests("super_block_pass",
|
4093
2735
|
"Ruby" => "super(a, &b)",
|
4094
|
-
"RawParseTree" => [:block_pass,
|
4095
|
-
[:vcall, :b], [:super, [:array, [:vcall, :a]]]],
|
4096
2736
|
"ParseTree" => s(:super,
|
4097
2737
|
s(:call, nil, :a, s(:arglist)),
|
4098
2738
|
s(:block_pass,
|
@@ -4100,21 +2740,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4100
2740
|
|
4101
2741
|
add_tests("super_block_splat",
|
4102
2742
|
"Ruby" => "super(a, *b)",
|
4103
|
-
"RawParseTree" => [:super,
|
4104
|
-
[:argscat,
|
4105
|
-
[:array, [:vcall, :a]],
|
4106
|
-
[:vcall, :b]]],
|
4107
2743
|
"ParseTree" => s(:super,
|
4108
2744
|
s(:call, nil, :a, s(:arglist)),
|
4109
2745
|
s(:splat, s(:call, nil, :b, s(:arglist)))))
|
4110
2746
|
|
4111
2747
|
add_tests("super_n",
|
4112
2748
|
"Ruby" => "def x\n super(24, 42)\nend",
|
4113
|
-
"RawParseTree" => [:defn, :x,
|
4114
|
-
[:scope,
|
4115
|
-
[:block,
|
4116
|
-
[:args],
|
4117
|
-
[:super, [:array, [:lit, 24], [:lit, 42]]]]]],
|
4118
2749
|
"ParseTree" => s(:defn, :x,
|
4119
2750
|
s(:args),
|
4120
2751
|
s(:scope,
|
@@ -4123,35 +2754,26 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4123
2754
|
|
4124
2755
|
add_tests("svalue",
|
4125
2756
|
"Ruby" => "a = *b",
|
4126
|
-
"RawParseTree" => [:lasgn, :a, [:svalue, [:splat, [:vcall, :b]]]],
|
4127
2757
|
"ParseTree" => s(:lasgn, :a,
|
4128
2758
|
s(:svalue,
|
4129
2759
|
s(:splat, s(:call, nil, :b, s(:arglist))))))
|
4130
2760
|
|
4131
2761
|
add_tests("to_ary",
|
4132
2762
|
"Ruby" => "a, b = c",
|
4133
|
-
"RawParseTree" => [:masgn,
|
4134
|
-
[:array, [:lasgn, :a], [:lasgn, :b]], nil,
|
4135
|
-
[:to_ary, [:vcall, :c]]],
|
4136
2763
|
"ParseTree" => s(:masgn,
|
4137
2764
|
s(:array, s(:lasgn, :a), s(:lasgn, :b)),
|
4138
2765
|
s(:to_ary, s(:call, nil, :c, s(:arglist)))))
|
4139
2766
|
|
4140
2767
|
add_tests("true",
|
4141
2768
|
"Ruby" => "true",
|
4142
|
-
"RawParseTree" => [:true],
|
4143
2769
|
"ParseTree" => s(:true))
|
4144
2770
|
|
4145
2771
|
add_tests("undef",
|
4146
2772
|
"Ruby" => "undef :x",
|
4147
|
-
"RawParseTree" => [:undef, [:lit, :x]],
|
4148
2773
|
"ParseTree" => s(:undef, s(:lit, :x)))
|
4149
2774
|
|
4150
2775
|
add_tests("undef_2",
|
4151
2776
|
"Ruby" => "undef :x, :y",
|
4152
|
-
"RawParseTree" => [:block,
|
4153
|
-
[:undef, [:lit, :x]],
|
4154
|
-
[:undef, [:lit, :y]]],
|
4155
2777
|
"ParseTree" => s(:block,
|
4156
2778
|
s(:undef, s(:lit, :x)),
|
4157
2779
|
s(:undef, s(:lit, :y))),
|
@@ -4159,10 +2781,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4159
2781
|
|
4160
2782
|
add_tests("undef_3",
|
4161
2783
|
"Ruby" => "undef :x, :y, :z",
|
4162
|
-
"RawParseTree" => [:block,
|
4163
|
-
[:undef, [:lit, :x]],
|
4164
|
-
[:undef, [:lit, :y]],
|
4165
|
-
[:undef, [:lit, :z]]],
|
4166
2784
|
"ParseTree" => s(:block,
|
4167
2785
|
s(:undef, s(:lit, :x)),
|
4168
2786
|
s(:undef, s(:lit, :y)),
|
@@ -4171,21 +2789,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4171
2789
|
|
4172
2790
|
add_tests("undef_block_1",
|
4173
2791
|
"Ruby" => "f1\nundef :x\n", # TODO: don't like the extra return
|
4174
|
-
"RawParseTree" => [:block,
|
4175
|
-
[:vcall, :f1],
|
4176
|
-
[:undef, [:lit, :x]]],
|
4177
2792
|
"ParseTree" => s(:block,
|
4178
2793
|
s(:call, nil, :f1, s(:arglist)),
|
4179
2794
|
s(:undef, s(:lit, :x))))
|
4180
2795
|
|
4181
2796
|
add_tests("undef_block_2",
|
4182
2797
|
"Ruby" => "f1\nundef :x, :y",
|
4183
|
-
"RawParseTree" => [:block,
|
4184
|
-
[:vcall, :f1],
|
4185
|
-
[:block,
|
4186
|
-
[:undef, [:lit, :x]],
|
4187
|
-
[:undef, [:lit, :y]],
|
4188
|
-
]],
|
4189
2798
|
"ParseTree" => s(:block,
|
4190
2799
|
s(:call, nil, :f1, s(:arglist)),
|
4191
2800
|
s(:block,
|
@@ -4195,13 +2804,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4195
2804
|
|
4196
2805
|
add_tests("undef_block_3",
|
4197
2806
|
"Ruby" => "f1\nundef :x, :y, :z",
|
4198
|
-
"RawParseTree" => [:block,
|
4199
|
-
[:vcall, :f1],
|
4200
|
-
[:block,
|
4201
|
-
[:undef, [:lit, :x]],
|
4202
|
-
[:undef, [:lit, :y]],
|
4203
|
-
[:undef, [:lit, :z]],
|
4204
|
-
]],
|
4205
2807
|
"ParseTree" => s(:block,
|
4206
2808
|
s(:call, nil, :f1, s(:arglist)),
|
4207
2809
|
s(:block,
|
@@ -4212,11 +2814,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4212
2814
|
|
4213
2815
|
add_tests("undef_block_3_post",
|
4214
2816
|
"Ruby" => "undef :x, :y, :z\nf2",
|
4215
|
-
"RawParseTree" => [:block,
|
4216
|
-
[:undef, [:lit, :x]],
|
4217
|
-
[:undef, [:lit, :y]],
|
4218
|
-
[:undef, [:lit, :z]],
|
4219
|
-
[:vcall, :f2]],
|
4220
2817
|
"ParseTree" => s(:block,
|
4221
2818
|
s(:undef, s(:lit, :x)),
|
4222
2819
|
s(:undef, s(:lit, :y)),
|
@@ -4226,13 +2823,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4226
2823
|
|
4227
2824
|
add_tests("undef_block_wtf",
|
4228
2825
|
"Ruby" => "f1\nundef :x, :y, :z\nf2",
|
4229
|
-
"RawParseTree" => [:block,
|
4230
|
-
[:vcall, :f1],
|
4231
|
-
[:block,
|
4232
|
-
[:undef, [:lit, :x]],
|
4233
|
-
[:undef, [:lit, :y]],
|
4234
|
-
[:undef, [:lit, :z]]],
|
4235
|
-
[:vcall, :f2]],
|
4236
2826
|
"ParseTree" => s(:block,
|
4237
2827
|
s(:call, nil, :f1, s(:arglist)),
|
4238
2828
|
s(:block,
|
@@ -4245,45 +2835,35 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4245
2835
|
|
4246
2836
|
add_tests("unless_post",
|
4247
2837
|
"Ruby" => "a unless b",
|
4248
|
-
"RawParseTree" => [:if, [:vcall, :b], nil, [:vcall, :a]],
|
4249
2838
|
"ParseTree" => s(:if, s(:call, nil, :b, s(:arglist)), nil,
|
4250
2839
|
s(:call, nil, :a, s(:arglist))))
|
4251
2840
|
|
4252
2841
|
add_tests("unless_post_not",
|
4253
2842
|
"Ruby" => "a unless not b",
|
4254
|
-
"RawParseTree" => [:if, [:vcall, :b], [:vcall, :a], nil],
|
4255
2843
|
"ParseTree" => s(:if, s(:call, nil, :b, s(:arglist)),
|
4256
2844
|
s(:call, nil, :a, s(:arglist)), nil),
|
4257
2845
|
"Ruby2Ruby" => "a if b")
|
4258
2846
|
|
4259
2847
|
add_tests("unless_pre",
|
4260
2848
|
"Ruby" => "unless b then a end",
|
4261
|
-
"RawParseTree" => [:if, [:vcall, :b], nil, [:vcall, :a]],
|
4262
2849
|
"ParseTree" => s(:if, s(:call, nil, :b, s(:arglist)), nil,
|
4263
2850
|
s(:call, nil, :a, s(:arglist))),
|
4264
2851
|
"Ruby2Ruby" => "a unless b")
|
4265
2852
|
|
4266
2853
|
add_tests("unless_pre_not",
|
4267
2854
|
"Ruby" => "unless not b then a end",
|
4268
|
-
"RawParseTree" => [:if, [:vcall, :b], [:vcall, :a], nil],
|
4269
2855
|
"ParseTree" => s(:if, s(:call, nil, :b, s(:arglist)),
|
4270
2856
|
s(:call, nil, :a, s(:arglist)), nil),
|
4271
2857
|
"Ruby2Ruby" => "a if b")
|
4272
2858
|
|
4273
2859
|
add_tests("until_post",
|
4274
2860
|
"Ruby" => "begin\n (1 + 1)\nend until false",
|
4275
|
-
"RawParseTree" => [:until, [:false],
|
4276
|
-
[:call, [:lit, 1], :+,
|
4277
|
-
[:array, [:lit, 1]]], false],
|
4278
2861
|
"ParseTree" => s(:until, s(:false),
|
4279
2862
|
s(:call, s(:lit, 1), :+,
|
4280
2863
|
s(:arglist, s(:lit, 1))), false))
|
4281
2864
|
|
4282
2865
|
add_tests("until_post_not",
|
4283
2866
|
"Ruby" => "begin\n (1 + 1)\nend until not true",
|
4284
|
-
"RawParseTree" => [:while, [:true],
|
4285
|
-
[:call, [:lit, 1], :+,
|
4286
|
-
[:array, [:lit, 1]]], false],
|
4287
2867
|
"ParseTree" => s(:while, s(:true),
|
4288
2868
|
s(:call, s(:lit, 1), :+,
|
4289
2869
|
s(:arglist, s(:lit, 1))), false),
|
@@ -4291,18 +2871,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4291
2871
|
|
4292
2872
|
add_tests("until_pre",
|
4293
2873
|
"Ruby" => "until false do\n (1 + 1)\nend",
|
4294
|
-
"RawParseTree" => [:until, [:false],
|
4295
|
-
[:call, [:lit, 1], :+,
|
4296
|
-
[:array, [:lit, 1]]], true],
|
4297
2874
|
"ParseTree" => s(:until, s(:false),
|
4298
2875
|
s(:call, s(:lit, 1), :+,
|
4299
2876
|
s(:arglist, s(:lit, 1))), true))
|
4300
2877
|
|
4301
2878
|
add_tests("until_pre_mod",
|
4302
2879
|
"Ruby" => "(1 + 1) until false",
|
4303
|
-
"RawParseTree" => [:until, [:false],
|
4304
|
-
[:call, [:lit, 1], :+,
|
4305
|
-
[:array, [:lit, 1]]], true],
|
4306
2880
|
"ParseTree" => s(:until, s(:false),
|
4307
2881
|
s(:call, s(:lit, 1), :+,
|
4308
2882
|
s(:arglist, s(:lit, 1))), true),
|
@@ -4310,9 +2884,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4310
2884
|
|
4311
2885
|
add_tests("until_pre_not",
|
4312
2886
|
"Ruby" => "until not true do\n (1 + 1)\nend",
|
4313
|
-
"RawParseTree" => [:while, [:true],
|
4314
|
-
[:call, [:lit, 1], :+,
|
4315
|
-
[:array, [:lit, 1]]], true],
|
4316
2887
|
"ParseTree" => s(:while, s(:true),
|
4317
2888
|
s(:call, s(:lit, 1), :+,
|
4318
2889
|
s(:arglist, s(:lit, 1))), true),
|
@@ -4320,9 +2891,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4320
2891
|
|
4321
2892
|
add_tests("until_pre_not_mod",
|
4322
2893
|
"Ruby" => "(1 + 1) until not true",
|
4323
|
-
"RawParseTree" => [:while, [:true],
|
4324
|
-
[:call, [:lit, 1], :+,
|
4325
|
-
[:array, [:lit, 1]]], true],
|
4326
2894
|
"ParseTree" => s(:while, s(:true),
|
4327
2895
|
s(:call, s(:lit, 1), :+,
|
4328
2896
|
s(:arglist, s(:lit, 1))), true),
|
@@ -4330,30 +2898,20 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4330
2898
|
|
4331
2899
|
add_tests("valias",
|
4332
2900
|
"Ruby" => "alias $y $x",
|
4333
|
-
"RawParseTree" => [:valias, :$y, :$x],
|
4334
2901
|
"ParseTree" => s(:valias, :$y, :$x))
|
4335
2902
|
|
4336
2903
|
add_tests("vcall",
|
4337
2904
|
"Ruby" => "method",
|
4338
|
-
"RawParseTree" => [:vcall, :method],
|
4339
2905
|
"ParseTree" => s(:call, nil, :method, s(:arglist)))
|
4340
2906
|
|
4341
2907
|
add_tests("while_post",
|
4342
2908
|
"Ruby" => "begin\n (1 + 1)\nend while false",
|
4343
|
-
"RawParseTree" => [:while, [:false],
|
4344
|
-
[:call, [:lit, 1], :+,
|
4345
|
-
[:array, [:lit, 1]]], false],
|
4346
2909
|
"ParseTree" => s(:while, s(:false),
|
4347
2910
|
s(:call, s(:lit, 1), :+,
|
4348
2911
|
s(:arglist, s(:lit, 1))), false))
|
4349
2912
|
|
4350
2913
|
add_tests("while_post2",
|
4351
2914
|
"Ruby" => "begin\n (1 + 2)\n (3 + 4)\nend while false",
|
4352
|
-
"RawParseTree" => [:while, [:false],
|
4353
|
-
[:block,
|
4354
|
-
[:call, [:lit, 1], :+, [:array, [:lit, 2]]],
|
4355
|
-
[:call, [:lit, 3], :+, [:array, [:lit, 4]]]],
|
4356
|
-
false],
|
4357
2915
|
"ParseTree" => s(:while, s(:false),
|
4358
2916
|
s(:block,
|
4359
2917
|
s(:call, s(:lit, 1), :+,
|
@@ -4364,9 +2922,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4364
2922
|
|
4365
2923
|
add_tests("while_post_not",
|
4366
2924
|
"Ruby" => "begin\n (1 + 1)\nend while not true",
|
4367
|
-
"RawParseTree" => [:until, [:true],
|
4368
|
-
[:call, [:lit, 1], :+,
|
4369
|
-
[:array, [:lit, 1]]], false],
|
4370
2925
|
"ParseTree" => s(:until, s(:true),
|
4371
2926
|
s(:call, s(:lit, 1), :+,
|
4372
2927
|
s(:arglist, s(:lit, 1))), false),
|
@@ -4374,18 +2929,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4374
2929
|
|
4375
2930
|
add_tests("while_pre",
|
4376
2931
|
"Ruby" => "while false do\n (1 + 1)\nend",
|
4377
|
-
"RawParseTree" => [:while, [:false],
|
4378
|
-
[:call, [:lit, 1], :+,
|
4379
|
-
[:array, [:lit, 1]]], true],
|
4380
2932
|
"ParseTree" => s(:while, s(:false),
|
4381
2933
|
s(:call, s(:lit, 1), :+,
|
4382
2934
|
s(:arglist, s(:lit, 1))), true))
|
4383
2935
|
|
4384
2936
|
add_tests("while_pre_mod",
|
4385
2937
|
"Ruby" => "(1 + 1) while false",
|
4386
|
-
"RawParseTree" => [:while, [:false],
|
4387
|
-
[:call, [:lit, 1], :+,
|
4388
|
-
[:array, [:lit, 1]]], true],
|
4389
2938
|
"ParseTree" => s(:while, s(:false),
|
4390
2939
|
s(:call, s(:lit, 1), :+,
|
4391
2940
|
s(:arglist, s(:lit, 1))), true),
|
@@ -4393,14 +2942,10 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4393
2942
|
|
4394
2943
|
add_tests("while_pre_nil",
|
4395
2944
|
"Ruby" => "while false do\nend",
|
4396
|
-
"RawParseTree" => [:while, [:false], nil, true],
|
4397
2945
|
"ParseTree" => s(:while, s(:false), nil, true))
|
4398
2946
|
|
4399
2947
|
add_tests("while_pre_not",
|
4400
2948
|
"Ruby" => "while not true do\n (1 + 1)\nend",
|
4401
|
-
"RawParseTree" => [:until, [:true],
|
4402
|
-
[:call, [:lit, 1], :+,
|
4403
|
-
[:array, [:lit, 1]]], true],
|
4404
2949
|
"ParseTree" => s(:until, s(:true),
|
4405
2950
|
s(:call, s(:lit, 1), :+,
|
4406
2951
|
s(:arglist, s(:lit, 1))), true),
|
@@ -4408,9 +2953,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4408
2953
|
|
4409
2954
|
add_tests("while_pre_not_mod",
|
4410
2955
|
"Ruby" => "(1 + 1) while not true",
|
4411
|
-
"RawParseTree" => [:until, [:true],
|
4412
|
-
[:call, [:lit, 1], :+,
|
4413
|
-
[:array, [:lit, 1]]], true],
|
4414
2956
|
"ParseTree" => s(:until, s(:true),
|
4415
2957
|
s(:call, s(:lit, 1), :+,
|
4416
2958
|
s(:arglist, s(:lit, 1))), true),
|
@@ -4418,48 +2960,38 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4418
2960
|
|
4419
2961
|
add_tests("xstr",
|
4420
2962
|
"Ruby" => "`touch 5`",
|
4421
|
-
"RawParseTree" => [:xstr, 'touch 5'],
|
4422
2963
|
"ParseTree" => s(:xstr, 'touch 5'))
|
4423
2964
|
|
4424
2965
|
add_tests("yield_0",
|
4425
2966
|
"Ruby" => "yield",
|
4426
|
-
"RawParseTree" => [:yield],
|
4427
2967
|
"ParseTree" => s(:yield))
|
4428
2968
|
|
4429
2969
|
add_tests("yield_1",
|
4430
2970
|
"Ruby" => "yield(42)",
|
4431
|
-
"RawParseTree" => [:yield, [:lit, 42]],
|
4432
2971
|
"ParseTree" => s(:yield, s(:lit, 42)))
|
4433
2972
|
|
4434
2973
|
add_tests("yield_array_0",
|
4435
2974
|
"Ruby" => "yield([])",
|
4436
|
-
"RawParseTree" => [:yield, [:zarray], true],
|
4437
2975
|
"ParseTree" => s(:yield, s(:array)))
|
4438
2976
|
|
4439
2977
|
add_tests("yield_array_1",
|
4440
2978
|
"Ruby" => "yield([42])",
|
4441
|
-
"RawParseTree" => [:yield, [:array, [:lit, 42]], true],
|
4442
2979
|
"ParseTree" => s(:yield, s(:array, s(:lit, 42))))
|
4443
2980
|
|
4444
2981
|
add_tests("yield_array_n",
|
4445
2982
|
"Ruby" => "yield([42, 24])",
|
4446
|
-
"RawParseTree" => [:yield, [:array, [:lit, 42], [:lit, 24]], true],
|
4447
2983
|
"ParseTree" => s(:yield, s(:array, s(:lit, 42), s(:lit, 24))))
|
4448
2984
|
|
4449
2985
|
add_tests("yield_n",
|
4450
2986
|
"Ruby" => "yield(42, 24)",
|
4451
|
-
"RawParseTree" => [:yield, [:array, [:lit, 42], [:lit, 24]]],
|
4452
2987
|
"ParseTree" => s(:yield, s(:lit, 42), s(:lit, 24)))
|
4453
2988
|
|
4454
2989
|
add_tests("zarray",
|
4455
2990
|
"Ruby" => "a = []",
|
4456
|
-
"RawParseTree" => [:lasgn, :a, [:zarray]],
|
4457
2991
|
"ParseTree" => s(:lasgn, :a, s(:array)))
|
4458
2992
|
|
4459
2993
|
add_tests("zsuper",
|
4460
2994
|
"Ruby" => "def x\n super\nend",
|
4461
|
-
"RawParseTree" => [:defn, :x,
|
4462
|
-
[:scope, [:block, [:args], [:zsuper]]]],
|
4463
2995
|
"ParseTree" => s(:defn, :x, s(:args),
|
4464
2996
|
s(:scope, s(:block, s(:zsuper)))))
|
4465
2997
|
|
@@ -4468,14 +3000,11 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4468
3000
|
"ParseTree" => s(:if,
|
4469
3001
|
s(:call, nil, :y, s(:arglist, s(:lit, :z))),
|
4470
3002
|
s(:call, nil, :x, s(:arglist)),
|
4471
|
-
nil)
|
3003
|
+
nil),
|
3004
|
+
"Ruby2Ruby" => "x if y(:z)")
|
4472
3005
|
|
4473
3006
|
add_18tests("iter_args_ivar",
|
4474
3007
|
"Ruby" => "a { |@a| 42 }",
|
4475
|
-
"RawParseTree" => [:iter,
|
4476
|
-
[:fcall, :a],
|
4477
|
-
[:iasgn, :@a],
|
4478
|
-
[:lit, 42]],
|
4479
3008
|
"ParseTree" => s(:iter,
|
4480
3009
|
s(:call, nil, :a, s(:arglist)),
|
4481
3010
|
s(:iasgn, :@a),
|
@@ -4483,12 +3012,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4483
3012
|
|
4484
3013
|
add_18tests("iter_masgn_args_ivar",
|
4485
3014
|
"Ruby" => "a { |a, @b| 42 }",
|
4486
|
-
"RawParseTree" => [:iter,
|
4487
|
-
[:fcall, :a],
|
4488
|
-
[:masgn,
|
4489
|
-
[:array, [:dasgn_curr, :a], [:iasgn, :@b]],
|
4490
|
-
nil, nil],
|
4491
|
-
[:lit, 42]],
|
4492
3015
|
"ParseTree" => s(:iter,
|
4493
3016
|
s(:call, nil, :a, s(:arglist)),
|
4494
3017
|
s(:masgn,
|
@@ -4497,19 +3020,16 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4497
3020
|
|
4498
3021
|
add_18tests("str_question_control",
|
4499
3022
|
"Ruby" => '?\M-\C-a',
|
4500
|
-
"RawParseTree" => [:lit, 129],
|
4501
3023
|
"ParseTree" => s(:lit, 129),
|
4502
3024
|
"Ruby2Ruby" => "129")
|
4503
3025
|
|
4504
3026
|
add_18tests("str_question_escape",
|
4505
3027
|
"Ruby" => '?\n',
|
4506
|
-
"RawParseTree" => [:lit, 10],
|
4507
3028
|
"ParseTree" => s(:lit, 10),
|
4508
3029
|
"Ruby2Ruby" => "10")
|
4509
3030
|
|
4510
3031
|
add_18tests("str_question_literal",
|
4511
3032
|
"Ruby" => '?a',
|
4512
|
-
"RawParseTree" => [:lit, 97],
|
4513
3033
|
"ParseTree" => s(:lit, 97),
|
4514
3034
|
"Ruby2Ruby" => "97")
|
4515
3035
|
|
@@ -4531,13 +3051,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4531
3051
|
|
4532
3052
|
add_19tests("call_arglist_norm_hash_colons",
|
4533
3053
|
"Ruby" => "o.m(42, a: 1, b: 2)",
|
4534
|
-
"RawParseTree" => [:call,
|
4535
|
-
[:vcall, :o], :m,
|
4536
|
-
[:array,
|
4537
|
-
[:lit, 42],
|
4538
|
-
[:hash,
|
4539
|
-
[:lit, :a], [:lit, 1],
|
4540
|
-
[:lit, :b], [:lit, 2]]]],
|
4541
3054
|
"ParseTree" => s(:call,
|
4542
3055
|
s(:call, nil, :o, s(:arglist)),
|
4543
3056
|
:m,
|
@@ -4555,8 +3068,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4555
3068
|
|
4556
3069
|
add_19tests("call_not_equal",
|
4557
3070
|
"Ruby" => "a != b",
|
4558
|
-
"RawParseTree" => [:call, [:vcall, :a], :"!=",
|
4559
|
-
[:array, [:vcall, :b]]],
|
4560
3071
|
"ParseTree" => s(:call,
|
4561
3072
|
s(:call, nil, :a, s(:arglist)),
|
4562
3073
|
:"!=",
|
@@ -4564,7 +3075,6 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4564
3075
|
|
4565
3076
|
add_19tests("call_unary_not",
|
4566
3077
|
"Ruby" => "!a",
|
4567
|
-
"RawParseTree" => [:call, [:vcall, :a], :"!@"],
|
4568
3078
|
"ParseTree" => s(:call,
|
4569
3079
|
s(:call, nil, :a, s(:arglist)),
|
4570
3080
|
:"!@", s(:arglist)))
|
@@ -4609,22 +3119,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4609
3119
|
|
4610
3120
|
add_19tests("defn_args_splat_middle",
|
4611
3121
|
"Ruby" => "def f(first, *middle, last)\n # do nothing\nend",
|
4612
|
-
"RawParseTree" => [:defn, :f,
|
4613
|
-
[:scope,
|
4614
|
-
[:block,
|
4615
|
-
[:args, :first, :"*middle", :last],
|
4616
|
-
[:nil]]]],
|
4617
3122
|
"ParseTree" => s(:defn, :f,
|
4618
3123
|
s(:args, :first, :"*middle", :last),
|
4619
3124
|
s(:scope, s(:block, s(:nil)))))
|
4620
3125
|
|
4621
3126
|
add_19tests("fcall_arglist_hash_colons",
|
4622
3127
|
"Ruby" => "m(a: 1, b: 2)",
|
4623
|
-
"RawParseTree" => [:fcall, :m,
|
4624
|
-
[:array,
|
4625
|
-
[:hash,
|
4626
|
-
[:lit, :a], [:lit, 1],
|
4627
|
-
[:lit, :b], [:lit, 2]]]],
|
4628
3128
|
"ParseTree" => s(:call, nil, :m,
|
4629
3129
|
s(:arglist,
|
4630
3130
|
s(:hash,
|
@@ -4633,196 +3133,172 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4633
3133
|
|
4634
3134
|
add_19tests("hash_new",
|
4635
3135
|
"Ruby" => "{ a: 1, b: 2 }",
|
4636
|
-
"RawParseTree" => [:hash,
|
4637
|
-
[:lit, :a], [:lit, 1],
|
4638
|
-
[:lit, :b], [:lit, 2]],
|
4639
3136
|
"ParseTree" => s(:hash,
|
4640
3137
|
s(:lit, :a), s(:lit, 1),
|
4641
3138
|
s(:lit, :b), s(:lit, 2)))
|
4642
3139
|
|
4643
3140
|
add_19tests("hash_new_no_space",
|
4644
3141
|
"Ruby" => "{a:1,b:2}",
|
4645
|
-
"RawParseTree" => [:hash,
|
4646
|
-
[:lit, :a], [:lit, 1],
|
4647
|
-
[:lit, :b], [:lit, 2]],
|
4648
3142
|
"ParseTree" => s(:hash,
|
4649
3143
|
s(:lit, :a), s(:lit, 1),
|
4650
3144
|
s(:lit, :b), s(:lit, 2)))
|
4651
3145
|
|
4652
|
-
|
4653
|
-
|
4654
|
-
|
4655
|
-
|
4656
|
-
|
4657
|
-
|
4658
|
-
|
4659
|
-
|
4660
|
-
|
4661
|
-
|
4662
|
-
|
4663
|
-
|
4664
|
-
|
4665
|
-
|
4666
|
-
|
4667
|
-
|
4668
|
-
|
4669
|
-
|
4670
|
-
|
4671
|
-
|
4672
|
-
|
4673
|
-
|
4674
|
-
|
4675
|
-
|
4676
|
-
|
4677
|
-
|
4678
|
-
|
4679
|
-
|
4680
|
-
|
4681
|
-
|
4682
|
-
|
4683
|
-
|
4684
|
-
|
4685
|
-
|
4686
|
-
|
4687
|
-
|
4688
|
-
|
4689
|
-
|
4690
|
-
|
4691
|
-
|
4692
|
-
|
4693
|
-
|
4694
|
-
|
4695
|
-
|
4696
|
-
|
4697
|
-
|
4698
|
-
|
4699
|
-
|
4700
|
-
|
4701
|
-
|
4702
|
-
|
4703
|
-
|
4704
|
-
|
4705
|
-
|
4706
|
-
|
4707
|
-
|
4708
|
-
|
4709
|
-
|
4710
|
-
|
4711
|
-
|
4712
|
-
|
4713
|
-
|
4714
|
-
|
4715
|
-
|
4716
|
-
|
4717
|
-
|
4718
|
-
|
4719
|
-
|
4720
|
-
|
4721
|
-
|
4722
|
-
|
4723
|
-
|
4724
|
-
|
4725
|
-
|
4726
|
-
|
4727
|
-
|
4728
|
-
|
4729
|
-
|
4730
|
-
|
4731
|
-
|
4732
|
-
|
4733
|
-
|
4734
|
-
|
4735
|
-
|
4736
|
-
|
4737
|
-
|
4738
|
-
|
4739
|
-
|
4740
|
-
|
4741
|
-
|
4742
|
-
|
4743
|
-
|
4744
|
-
|
4745
|
-
|
4746
|
-
|
4747
|
-
|
4748
|
-
|
4749
|
-
|
4750
|
-
|
4751
|
-
|
4752
|
-
|
4753
|
-
|
4754
|
-
|
4755
|
-
|
4756
|
-
|
4757
|
-
|
4758
|
-
|
4759
|
-
|
4760
|
-
|
4761
|
-
|
4762
|
-
|
4763
|
-
|
4764
|
-
|
4765
|
-
|
4766
|
-
|
4767
|
-
|
4768
|
-
|
4769
|
-
|
4770
|
-
|
4771
|
-
|
4772
|
-
|
4773
|
-
|
4774
|
-
|
4775
|
-
|
4776
|
-
|
4777
|
-
|
4778
|
-
|
4779
|
-
|
4780
|
-
|
4781
|
-
|
4782
|
-
|
4783
|
-
|
4784
|
-
|
4785
|
-
|
4786
|
-
|
4787
|
-
|
4788
|
-
|
4789
|
-
|
4790
|
-
|
4791
|
-
|
4792
|
-
|
4793
|
-
|
4794
|
-
|
4795
|
-
|
4796
|
-
|
4797
|
-
|
4798
|
-
|
4799
|
-
[:dasgn_curr, :y]], nil, nil],
|
4800
|
-
[:call, [:dvar, :x], :+,
|
4801
|
-
[:array, [:dvar, :y]]]],
|
4802
|
-
"ParseTree" => s(:iter,
|
4803
|
-
s(:call, nil, :lambda, s(:arglist)),
|
4804
|
-
s(:masgn,
|
4805
|
-
s(:array,
|
4806
|
-
s(:lasgn, :x),
|
4807
|
-
s(:lasgn, :y))),
|
4808
|
-
s(:call, s(:lvar, :x), :+,
|
4809
|
-
s(:arglist, s(:lvar, :y)))))
|
3146
|
+
add_tests("lambda_args_anon_star",
|
3147
|
+
"Ruby" => "lambda { |*| nil }",
|
3148
|
+
"ParseTree" => s(:iter,
|
3149
|
+
s(:call, nil, :lambda, s(:arglist)),
|
3150
|
+
s(:masgn, s(:array, s(:splat))),
|
3151
|
+
s(:nil)))
|
3152
|
+
|
3153
|
+
add_tests("lambda_args_anon_star_block",
|
3154
|
+
"Ruby" => "lambda { |*, &block| block }",
|
3155
|
+
"ParseTree" => s(:iter,
|
3156
|
+
s(:call, nil, :lambda, s(:arglist)),
|
3157
|
+
s(:masgn, s(:array,
|
3158
|
+
s(:splat),
|
3159
|
+
s(:lasgn, :"&block"))),
|
3160
|
+
s(:lvar, :block)))
|
3161
|
+
|
3162
|
+
add_tests("lambda_args_block",
|
3163
|
+
"Ruby" => "lambda { |&block| block }",
|
3164
|
+
"ParseTree" => s(:iter,
|
3165
|
+
s(:call, nil, :lambda, s(:arglist)),
|
3166
|
+
s(:lasgn, :"&block"),
|
3167
|
+
s(:lvar, :block)))
|
3168
|
+
|
3169
|
+
add_tests("lambda_args_norm_anon_star",
|
3170
|
+
"Ruby" => "lambda { |a, *| a }",
|
3171
|
+
"ParseTree" => s(:iter,
|
3172
|
+
s(:call, nil, :lambda, s(:arglist)),
|
3173
|
+
s(:masgn, s(:array,
|
3174
|
+
s(:lasgn, :a),
|
3175
|
+
s(:splat))),
|
3176
|
+
s(:lvar, :a)))
|
3177
|
+
|
3178
|
+
add_tests("lambda_args_norm_anon_star_block",
|
3179
|
+
"Ruby" => "lambda { |a, *, &block| block }",
|
3180
|
+
"ParseTree" => s(:iter,
|
3181
|
+
s(:call, nil, :lambda, s(:arglist)),
|
3182
|
+
s(:masgn, s(:array,
|
3183
|
+
s(:lasgn, :a),
|
3184
|
+
s(:splat),
|
3185
|
+
s(:lasgn, :"&block"))),
|
3186
|
+
s(:lvar, :block)))
|
3187
|
+
|
3188
|
+
add_tests("lambda_args_norm_block",
|
3189
|
+
"Ruby" => "lambda { |a, &block| block }",
|
3190
|
+
"ParseTree" => s(:iter,
|
3191
|
+
s(:call, nil, :lambda, s(:arglist)),
|
3192
|
+
s(:masgn, s(:array,
|
3193
|
+
s(:lasgn, :a),
|
3194
|
+
s(:lasgn, :"&block"))),
|
3195
|
+
s(:lvar, :block)))
|
3196
|
+
|
3197
|
+
add_tests("lambda_args_norm_comma",
|
3198
|
+
"Ruby" => "lambda { |a,| a }",
|
3199
|
+
"ParseTree" => s(:iter,
|
3200
|
+
s(:call, nil, :lambda, s(:arglist)),
|
3201
|
+
s(:lasgn, :a),
|
3202
|
+
s(:lvar, :a)),
|
3203
|
+
"Ruby2Ruby" => "lambda { |a| a }")
|
3204
|
+
|
3205
|
+
add_tests("lambda_args_norm_comma2",
|
3206
|
+
"Ruby" => "lambda { |a,b,| a }",
|
3207
|
+
"ParseTree" => s(:iter,
|
3208
|
+
s(:call, nil, :lambda, s(:arglist)),
|
3209
|
+
s(:masgn,
|
3210
|
+
s(:array, s(:lasgn, :a), s(:lasgn, :b))),
|
3211
|
+
s(:lvar, :a)),
|
3212
|
+
"Ruby2Ruby" => "lambda { |a, b| a }")
|
3213
|
+
|
3214
|
+
add_tests("lambda_args_norm_star",
|
3215
|
+
"Ruby" => "lambda { |a, *star| star }",
|
3216
|
+
"ParseTree" => s(:iter,
|
3217
|
+
s(:call, nil, :lambda, s(:arglist)),
|
3218
|
+
s(:masgn, s(:array,
|
3219
|
+
s(:lasgn, :a),
|
3220
|
+
s(:splat, s(:lasgn, :star)))),
|
3221
|
+
s(:lvar, :star)))
|
3222
|
+
|
3223
|
+
add_tests("lambda_args_norm_star_block",
|
3224
|
+
"Ruby" => "lambda { |a, *star, &block| block }",
|
3225
|
+
"ParseTree" => s(:iter,
|
3226
|
+
s(:call, nil, :lambda, s(:arglist)),
|
3227
|
+
s(:masgn, s(:array,
|
3228
|
+
s(:lasgn, :a),
|
3229
|
+
s(:splat, s(:lasgn, :star)),
|
3230
|
+
s(:lasgn, :"&block"))),
|
3231
|
+
s(:lvar, :block)))
|
3232
|
+
|
3233
|
+
add_tests("lambda_args_star",
|
3234
|
+
"Ruby" => "lambda { |*star| star }",
|
3235
|
+
"ParseTree" => s(:iter,
|
3236
|
+
s(:call, nil, :lambda, s(:arglist)),
|
3237
|
+
s(:masgn, s(:array,
|
3238
|
+
s(:splat, s(:lasgn, :star)))),
|
3239
|
+
s(:lvar, :star)))
|
3240
|
+
|
3241
|
+
add_tests("lambda_args_star_block",
|
3242
|
+
"Ruby" => "lambda { |*star, &block| block }",
|
3243
|
+
"ParseTree" => s(:iter,
|
3244
|
+
s(:call, nil, :lambda, s(:arglist)),
|
3245
|
+
s(:masgn, s(:array,
|
3246
|
+
s(:splat, s(:lasgn, :star)),
|
3247
|
+
s(:lasgn, :"&block"))),
|
3248
|
+
s(:lvar, :block)))
|
3249
|
+
|
3250
|
+
# REFACTOR: we've got 4 sets of edge cases w/ the same output
|
3251
|
+
|
3252
|
+
def self.add19_edgecases ruby, sexp, cases
|
3253
|
+
cases.each do |name, code|
|
3254
|
+
add_19tests name, "Ruby" => code, "ParseTree" => sexp, "Ruby2Ruby" => ruby
|
3255
|
+
end
|
3256
|
+
end
|
3257
|
+
|
3258
|
+
add19_edgecases("lambda { (x + 1) }",
|
3259
|
+
s(:iter,
|
3260
|
+
s(:call, nil, :lambda, s(:arglist)),
|
3261
|
+
0,
|
3262
|
+
s(:call, s(:call, nil, :x, s(:arglist)),
|
3263
|
+
:+, s(:arglist, s(:lit, 1)))),
|
3264
|
+
"stabby_args_0" => "->() { (x + 1) }",
|
3265
|
+
"stabby_args_0_doend" => "->() do (x + 1) end",
|
3266
|
+
"stabby_args_0_no_parens" => "-> { (x + 1) }",
|
3267
|
+
"stabby_args_0_no_parens_doend" => "-> do (x + 1) end",
|
3268
|
+
"stabby_args_0_spacebar_broken" => "->{x+1}") # I hate you
|
3269
|
+
|
3270
|
+
add19_edgecases("lambda { |x| (x + 1) }",
|
3271
|
+
s(:iter,
|
3272
|
+
s(:call, nil, :lambda, s(:arglist)),
|
3273
|
+
s(:lasgn, :x),
|
3274
|
+
s(:call, s(:lvar, :x), :+, s(:arglist, s(:lit, 1)))),
|
3275
|
+
"stabby_args_1" => "->(x) { (x + 1) }",
|
3276
|
+
"stabby_args_1_doend" => "->(x) do (x + 1) end",
|
3277
|
+
"stabby_args_1_no_parens" => "-> x { (x + 1) }",
|
3278
|
+
"stabby_args_1_no_parens_doend" => "-> x do (x + 1) end")
|
3279
|
+
|
3280
|
+
add19_edgecases("lambda { |x, y| (x + y) }",
|
3281
|
+
s(:iter,
|
3282
|
+
s(:call, nil, :lambda, s(:arglist)),
|
3283
|
+
s(:masgn,
|
3284
|
+
s(:array,
|
3285
|
+
s(:lasgn, :x),
|
3286
|
+
s(:lasgn, :y))),
|
3287
|
+
s(:call, s(:lvar, :x), :+,
|
3288
|
+
s(:arglist, s(:lvar, :y)))),
|
3289
|
+
"stabby_args_2" => "->(x, y) { (x + y) }",
|
3290
|
+
"stabby_args_2_doend" => "->(x, y) do (x + y) end",
|
3291
|
+
"stabby_args_2_no_parens" => "-> x, y { (x + y) }",
|
3292
|
+
"stabby_args_2_no_parens_doend" => "-> x, y do (x + y) end")
|
4810
3293
|
|
4811
3294
|
add_19tests("hash_new_with_keyword",
|
4812
3295
|
"Ruby" => "{ true: 1, b: 2 }",
|
4813
|
-
"RawParseTree" => [:hash,
|
4814
|
-
[:lit, :true], [:lit, 1],
|
4815
|
-
[:lit, :b], [:lit, 2]],
|
4816
3296
|
"ParseTree" => s(:hash,
|
4817
3297
|
s(:lit, :true), s(:lit, 1),
|
4818
3298
|
s(:lit, :b), s(:lit, 2)))
|
4819
3299
|
|
4820
3300
|
add_19tests("splat_fcall_middle",
|
4821
3301
|
"Ruby" => "meth(1, *[2], 3)",
|
4822
|
-
"RawParseTree" => [:fcall, :meth,
|
4823
|
-
[:lit, 1],
|
4824
|
-
[:splat, [:array, [:lit, 2]]],
|
4825
|
-
[:lit, 3]],
|
4826
3302
|
"ParseTree" => s(:call, nil, :meth,
|
4827
3303
|
s(:arglist,
|
4828
3304
|
s(:lit, 1),
|
@@ -4831,17 +3307,13 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
4831
3307
|
|
4832
3308
|
add_19tests("str_question_control",
|
4833
3309
|
"Ruby" => '?\M-\C-a',
|
4834
|
-
"RawParseTree" => [:str, "\x81"],
|
4835
3310
|
"ParseTree" => s(:str, "\x81"))
|
4836
3311
|
|
4837
3312
|
add_19tests("str_question_escape",
|
4838
3313
|
"Ruby" => '?\n',
|
4839
|
-
"RawParseTree" => [:str, "\n"],
|
4840
3314
|
"ParseTree" => s(:str, "\n"))
|
4841
3315
|
|
4842
3316
|
add_19tests("str_question_literal",
|
4843
3317
|
"Ruby" => '?a',
|
4844
|
-
"RawParseTree" => [:str, "a"],
|
4845
3318
|
"ParseTree" => s(:str, "a"))
|
4846
|
-
|
4847
3319
|
end
|