sexp_processor 3.2.0 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/History.txt +14 -0
- data/README.txt +1 -2
- data/lib/pt_testcase.rb +561 -808
- data/lib/sexp.rb +23 -1
- data/lib/sexp_processor.rb +1 -1
- metadata +9 -9
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/History.txt
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
=== 4.0.0 / 2012-06-07
|
2
|
+
|
3
|
+
* 5 major enhancements:
|
4
|
+
|
5
|
+
* Removed :arglist from everything except :op_asgn1.
|
6
|
+
* Removed block from resbody
|
7
|
+
* Removed block from when node
|
8
|
+
* Removed block nodes inside of scope nodes (defn/defs/class/sclass).
|
9
|
+
* Removed scope nodes in defn/defs/class/sclass nodes.
|
10
|
+
|
11
|
+
* 1 minor enhancement:
|
12
|
+
|
13
|
+
* Added Sexp#deep_each and Sexp#each_sexp. Refactored from Flay
|
14
|
+
|
1
15
|
=== 3.2.0 / 2012-04-15
|
2
16
|
|
3
17
|
* 5 minor enhancements:
|
data/README.txt
CHANGED
data/lib/pt_testcase.rb
CHANGED
@@ -219,46 +219,45 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
219
219
|
add_tests("alias",
|
220
220
|
"Ruby" => "class X\n alias :y :x\nend",
|
221
221
|
"ParseTree" => s(:class, :X, nil,
|
222
|
-
s(:
|
222
|
+
s(:alias, s(:lit, :y), s(:lit, :x))))
|
223
223
|
|
224
224
|
add_tests("alias_ugh",
|
225
225
|
"Ruby" => "class X\n alias y x\nend",
|
226
226
|
"ParseTree" => s(:class, :X, nil,
|
227
|
-
s(:
|
227
|
+
s(:alias, s(:lit, :y), s(:lit, :x))),
|
228
228
|
"Ruby2Ruby" => "class X\n alias :y :x\nend")
|
229
229
|
|
230
230
|
add_tests("and",
|
231
231
|
"Ruby" => "a and b",
|
232
232
|
"ParseTree" => s(:and,
|
233
|
-
s(:call, nil, :a
|
234
|
-
s(:call, nil, :b
|
233
|
+
s(:call, nil, :a),
|
234
|
+
s(:call, nil, :b)))
|
235
235
|
|
236
236
|
add_tests("argscat_inside",
|
237
237
|
"Ruby" => "a = [b, *c]",
|
238
238
|
"ParseTree" => s(:lasgn, :a,
|
239
239
|
s(:array,
|
240
|
-
s(:call, nil, :b
|
241
|
-
s(:splat, s(:call, nil, :c
|
240
|
+
s(:call, nil, :b),
|
241
|
+
s(:splat, s(:call, nil, :c)))))
|
242
242
|
|
243
243
|
add_tests("argscat_svalue",
|
244
244
|
"Ruby" => "a = b, c, *d",
|
245
245
|
"ParseTree" => s(:lasgn, :a,
|
246
246
|
s(:svalue,
|
247
247
|
s(:array,
|
248
|
-
s(:call, nil, :b
|
249
|
-
s(:call, nil, :c
|
248
|
+
s(:call, nil, :b),
|
249
|
+
s(:call, nil, :c),
|
250
250
|
s(:splat,
|
251
|
-
s(:call, nil, :d
|
251
|
+
s(:call, nil, :d))))))
|
252
252
|
|
253
253
|
add_tests("argspush",
|
254
254
|
"Ruby" => "a[*b] = c",
|
255
255
|
"ParseTree" => s(:attrasgn,
|
256
|
-
s(:call, nil, :a
|
256
|
+
s(:call, nil, :a),
|
257
257
|
:[]=,
|
258
|
-
s(:
|
259
|
-
s(:
|
260
|
-
|
261
|
-
s(:call, nil, :c, s(:arglist)))))
|
258
|
+
s(:splat,
|
259
|
+
s(:call, nil, :b)),
|
260
|
+
s(:call, nil, :c)))
|
262
261
|
|
263
262
|
add_tests("array",
|
264
263
|
"Ruby" => "[1, :b, \"c\"]",
|
@@ -296,22 +295,22 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
296
295
|
"Ruby" => "y = 0\n42.method = y\n",
|
297
296
|
"ParseTree" => s(:block,
|
298
297
|
s(:lasgn, :y, s(:lit, 0)),
|
299
|
-
s(:attrasgn,
|
300
|
-
s(:
|
298
|
+
s(:attrasgn,
|
299
|
+
s(:lit, 42), :method=, s(:lvar, :y))))
|
301
300
|
|
302
301
|
add_tests("attrasgn_index_equals",
|
303
302
|
"Ruby" => "a[42] = 24",
|
304
303
|
"ParseTree" => s(:attrasgn,
|
305
|
-
s(:call, nil, :a
|
304
|
+
s(:call, nil, :a),
|
306
305
|
:[]=,
|
307
|
-
s(:
|
306
|
+
s(:lit, 42), s(:lit, 24)))
|
308
307
|
|
309
308
|
add_tests("attrasgn_index_equals_space",
|
310
309
|
"Ruby" => "a = []; a [42] = 24",
|
311
310
|
"ParseTree" => s(:block,
|
312
311
|
s(:lasgn, :a, s(:array)),
|
313
312
|
s(:attrasgn, s(:lvar, :a), :[]=,
|
314
|
-
s(:
|
313
|
+
s(:lit, 42), s(:lit, 24))),
|
315
314
|
"Ruby2Ruby" => "a = []\na[42] = 24\n")
|
316
315
|
|
317
316
|
add_tests("attrset",
|
@@ -331,21 +330,19 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
331
330
|
|
332
331
|
add_tests("begin",
|
333
332
|
"Ruby" => "begin\n (1 + 1)\nend",
|
334
|
-
"ParseTree" => s(:call, s(:lit, 1), :+,
|
335
|
-
s(:arglist, s(:lit, 1))),
|
333
|
+
"ParseTree" => s(:call, s(:lit, 1), :+, s(:lit, 1)),
|
336
334
|
"Ruby2Ruby" => "(1 + 1)")
|
337
335
|
|
338
336
|
add_tests("begin_def",
|
339
337
|
"Ruby" => "def m\n begin\n\n end\nend",
|
340
|
-
"ParseTree" => s(:defn, :m, s(:args),
|
341
|
-
s(:scope, s(:block, s(:nil)))),
|
338
|
+
"ParseTree" => s(:defn, :m, s(:args), s(:nil)),
|
342
339
|
"Ruby2Ruby" => "def m\n # do nothing\nend")
|
343
340
|
|
344
341
|
add_tests("begin_rescue_ensure",
|
345
342
|
"Ruby" => "begin\n a\nrescue\n # do nothing\nensure\n # do nothing\nend",
|
346
343
|
"ParseTree" => s(:ensure,
|
347
344
|
s(:rescue,
|
348
|
-
s(:call, nil, :a
|
345
|
+
s(:call, nil, :a),
|
349
346
|
s(:resbody, s(:array), nil)),
|
350
347
|
s(:nil)))
|
351
348
|
|
@@ -360,12 +357,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
360
357
|
"Ruby" => "begin\n a\nrescue => mes\n # do nothing\nend\nbegin\n b\nrescue => mes\n # do nothing\nend\n",
|
361
358
|
"ParseTree" => s(:block,
|
362
359
|
s(:rescue,
|
363
|
-
s(:call, nil, :a
|
360
|
+
s(:call, nil, :a),
|
364
361
|
s(:resbody,
|
365
362
|
s(:array, s(:lasgn, :mes, s(:gvar, :$!))),
|
366
363
|
nil)),
|
367
364
|
s(:rescue,
|
368
|
-
s(:call, nil, :b
|
365
|
+
s(:call, nil, :b),
|
369
366
|
s(:resbody,
|
370
367
|
s(:array,
|
371
368
|
s(:lasgn, :mes, s(:gvar, :$!))),
|
@@ -378,13 +375,10 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
378
375
|
"Ruby" => "def self.setup(ctx)\n bind = allocate\n bind.context = ctx\n return bind\nend",
|
379
376
|
"ParseTree" => s(:defs, s(:self), :setup,
|
380
377
|
s(:args, :ctx),
|
381
|
-
s(:
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
s(:attrasgn, s(:lvar, :bind), :context=,
|
386
|
-
s(:arglist, s(:lvar, :ctx))),
|
387
|
-
s(:return, s(:lvar, :bind))))))
|
378
|
+
s(:lasgn, :bind, s(:call, nil, :allocate)),
|
379
|
+
s(:attrasgn,
|
380
|
+
s(:lvar, :bind), :context=, s(:lvar, :ctx)),
|
381
|
+
s(:return, s(:lvar, :bind))))
|
388
382
|
|
389
383
|
|
390
384
|
add_tests("block_lasgn",
|
@@ -392,137 +386,109 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
392
386
|
"ParseTree" => s(:lasgn, :x,
|
393
387
|
s(:block,
|
394
388
|
s(:lasgn, :y, s(:lit, 1)),
|
395
|
-
s(:call, s(:lvar, :y), :+,
|
396
|
-
s(:arglist, s(:lit, 2))))))
|
389
|
+
s(:call, s(:lvar, :y), :+, s(:lit, 2)))))
|
397
390
|
|
398
391
|
add_tests("block_mystery_block",
|
399
392
|
"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",
|
400
393
|
"ParseTree" => s(:iter,
|
401
|
-
s(:call, nil, :a,
|
402
|
-
s(:arglist, s(:call, nil, :b, s(:arglist)))),
|
394
|
+
s(:call, nil, :a, s(:call, nil, :b)),
|
403
395
|
nil,
|
404
396
|
s(:if,
|
405
|
-
s(:call, nil, :b
|
397
|
+
s(:call, nil, :b),
|
406
398
|
s(:true),
|
407
399
|
s(:block,
|
408
400
|
s(:lasgn, :c, s(:false)),
|
409
401
|
s(:iter,
|
410
|
-
s(:call, nil, :d
|
402
|
+
s(:call, nil, :d),
|
411
403
|
s(:lasgn, :x),
|
412
404
|
s(:lasgn, :c, s(:true))),
|
413
405
|
s(:lvar, :c)))))
|
414
406
|
|
415
407
|
add_tests("block_pass_args_and_splat",
|
416
408
|
"Ruby" => "def blah(*args, &block)\n other(42, *args, &block)\nend",
|
417
|
-
"ParseTree" => s(:defn, :blah,
|
418
|
-
s(:
|
419
|
-
|
420
|
-
s(:
|
421
|
-
|
422
|
-
s(:arglist,
|
423
|
-
s(:lit, 42),
|
424
|
-
s(:splat, s(:lvar, :args)),
|
425
|
-
s(:block_pass, s(:lvar, :block))))))))
|
409
|
+
"ParseTree" => s(:defn, :blah, s(:args, :"*args", :"&block"),
|
410
|
+
s(:call, nil, :other,
|
411
|
+
s(:lit, 42),
|
412
|
+
s(:splat, s(:lvar, :args)),
|
413
|
+
s(:block_pass, s(:lvar, :block)))))
|
426
414
|
|
427
415
|
add_tests("block_pass_call_0",
|
428
416
|
"Ruby" => "a.b(&c)",
|
429
417
|
"ParseTree" => s(:call,
|
430
|
-
s(:call, nil, :a
|
418
|
+
s(:call, nil, :a),
|
431
419
|
:b,
|
432
|
-
s(:
|
433
|
-
s(:block_pass,
|
434
|
-
s(:call, nil, :c, s(:arglist))))))
|
420
|
+
s(:block_pass, s(:call, nil, :c))))
|
435
421
|
|
436
422
|
add_tests("block_pass_call_1",
|
437
423
|
"Ruby" => "a.b(4, &c)",
|
438
424
|
"ParseTree" => s(:call,
|
439
|
-
s(:call, nil, :a
|
425
|
+
s(:call, nil, :a),
|
440
426
|
:b,
|
441
|
-
s(:
|
442
|
-
|
443
|
-
s(:block_pass,
|
444
|
-
s(:call, nil, :c, s(:arglist))))))
|
427
|
+
s(:lit, 4),
|
428
|
+
s(:block_pass, s(:call, nil, :c))))
|
445
429
|
|
446
430
|
add_tests("block_pass_call_n",
|
447
431
|
"Ruby" => "a.b(1, 2, 3, &c)",
|
448
432
|
"ParseTree" => s(:call,
|
449
|
-
s(:call, nil, :a
|
433
|
+
s(:call, nil, :a),
|
450
434
|
:b,
|
451
|
-
s(:
|
452
|
-
|
453
|
-
s(:block_pass,
|
454
|
-
s(:call, nil, :c, s(:arglist))))))
|
435
|
+
s(:lit, 1), s(:lit, 2), s(:lit, 3),
|
436
|
+
s(:block_pass, s(:call, nil, :c))))
|
455
437
|
|
456
438
|
add_tests("block_pass_fcall_0",
|
457
439
|
"Ruby" => "a(&b)",
|
458
440
|
"ParseTree" => s(:call, nil, :a,
|
459
|
-
s(:
|
460
|
-
s(:block_pass,
|
461
|
-
s(:call, nil, :b, s(:arglist))))))
|
441
|
+
s(:block_pass, s(:call, nil, :b))))
|
462
442
|
|
463
443
|
add_tests("block_pass_fcall_1",
|
464
444
|
"Ruby" => "a(4, &b)",
|
465
445
|
"ParseTree" => s(:call, nil, :a,
|
466
|
-
s(:
|
467
|
-
|
468
|
-
s(:block_pass,
|
469
|
-
s(:call, nil, :b, s(:arglist))))))
|
446
|
+
s(:lit, 4),
|
447
|
+
s(:block_pass, s(:call, nil, :b))))
|
470
448
|
|
471
449
|
add_tests("block_pass_fcall_n",
|
472
450
|
"Ruby" => "a(1, 2, 3, &b)",
|
473
451
|
"ParseTree" => s(:call, nil, :a,
|
474
|
-
s(:
|
475
|
-
|
476
|
-
s(:block_pass,
|
477
|
-
s(:call, nil, :b, s(:arglist))))))
|
452
|
+
s(:lit, 1), s(:lit, 2), s(:lit, 3),
|
453
|
+
s(:block_pass, s(:call, nil, :b))))
|
478
454
|
|
479
455
|
add_tests("block_pass_omgwtf",
|
480
456
|
"Ruby" => "define_attr_method(:x, :sequence_name, &Proc.new { |*args| nil })",
|
481
457
|
"ParseTree" => s(:call, nil, :define_attr_method,
|
482
|
-
s(:
|
483
|
-
|
484
|
-
|
485
|
-
s(:
|
486
|
-
s(:
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
s(:array, s(:splat, s(:lasgn, :args)))),
|
491
|
-
s(:nil))))))
|
458
|
+
s(:lit, :x),
|
459
|
+
s(:lit, :sequence_name),
|
460
|
+
s(:block_pass,
|
461
|
+
s(:iter,
|
462
|
+
s(:call, s(:const, :Proc), :new),
|
463
|
+
s(:masgn,
|
464
|
+
s(:array, s(:splat, s(:lasgn, :args)))),
|
465
|
+
s(:nil)))))
|
492
466
|
|
493
467
|
add_tests("block_pass_splat",
|
494
468
|
"Ruby" => "def blah(*args, &block)\n other(*args, &block)\nend",
|
495
469
|
"ParseTree" => s(:defn, :blah,
|
496
470
|
s(:args, :"*args", :"&block"),
|
497
|
-
s(:
|
498
|
-
s(:
|
499
|
-
|
500
|
-
s(:arglist,
|
501
|
-
s(:splat, s(:lvar, :args)),
|
502
|
-
s(:block_pass, s(:lvar, :block))))))))
|
471
|
+
s(:call, nil, :other,
|
472
|
+
s(:splat, s(:lvar, :args)),
|
473
|
+
s(:block_pass, s(:lvar, :block)))))
|
503
474
|
|
504
475
|
add_tests("block_pass_thingy",
|
505
476
|
"Ruby" => "r.read_body(dest, &block)",
|
506
477
|
"ParseTree" => s(:call,
|
507
|
-
s(:call, nil, :r
|
478
|
+
s(:call, nil, :r),
|
508
479
|
:read_body,
|
509
|
-
s(:
|
510
|
-
|
511
|
-
s(:block_pass,
|
512
|
-
s(:call, nil, :block, s(:arglist))))))
|
480
|
+
s(:call, nil, :dest),
|
481
|
+
s(:block_pass, s(:call, nil, :block))))
|
513
482
|
|
514
483
|
add_tests("block_stmt_after",
|
515
484
|
"Ruby" => "def f\n begin\n b\n rescue\n c\n end\n\n d\nend",
|
516
|
-
"ParseTree" => s(:defn, :f,
|
517
|
-
s(:
|
518
|
-
|
519
|
-
s(:
|
520
|
-
s(:
|
521
|
-
|
522
|
-
|
523
|
-
s(:array),
|
524
|
-
s(:call, nil, :c, s(:arglist)))),
|
525
|
-
s(:call, nil, :d, s(:arglist))))),
|
485
|
+
"ParseTree" => s(:defn, :f, s(:args),
|
486
|
+
s(:rescue,
|
487
|
+
s(:call, nil, :b),
|
488
|
+
s(:resbody,
|
489
|
+
s(:array),
|
490
|
+
s(:call, nil, :c))),
|
491
|
+
s(:call, nil, :d)),
|
526
492
|
"Ruby2Ruby" => "def f\n b rescue c\n d\nend")
|
527
493
|
|
528
494
|
copy_test_case "block_stmt_after", "Ruby"
|
@@ -531,15 +497,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
531
497
|
|
532
498
|
add_tests("block_stmt_before",
|
533
499
|
"Ruby" => "def f\n a\n begin\n b\n rescue\n c\n end\nend",
|
534
|
-
"ParseTree" => s(:defn, :f,
|
535
|
-
s(:
|
536
|
-
s(:
|
537
|
-
s(:
|
538
|
-
s(:
|
539
|
-
s(:
|
540
|
-
s(:resbody,
|
541
|
-
s(:array),
|
542
|
-
s(:call, nil, :c, s(:arglist))))))),
|
500
|
+
"ParseTree" => s(:defn, :f, s(:args),
|
501
|
+
s(:call, nil, :a),
|
502
|
+
s(:rescue, s(:call, nil, :b),
|
503
|
+
s(:resbody,
|
504
|
+
s(:array),
|
505
|
+
s(:call, nil, :c)))),
|
543
506
|
"Ruby2Ruby" => "def f\n a\n b rescue c\nend")
|
544
507
|
|
545
508
|
# oddly... this one doesn't HAVE any differences when verbose... new?
|
@@ -550,15 +513,13 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
550
513
|
add_tests("block_stmt_both",
|
551
514
|
"Ruby" => "def f\n a\n begin\n b\n rescue\n c\n end\n d\nend",
|
552
515
|
"ParseTree" => s(:defn, :f, s(:args),
|
553
|
-
s(:
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
s(:call, nil, :c, s(:arglist)))),
|
561
|
-
s(:call, nil, :d, s(:arglist))))),
|
516
|
+
s(:call, nil, :a),
|
517
|
+
s(:rescue,
|
518
|
+
s(:call, nil, :b),
|
519
|
+
s(:resbody,
|
520
|
+
s(:array),
|
521
|
+
s(:call, nil, :c))),
|
522
|
+
s(:call, nil, :d)),
|
562
523
|
"Ruby2Ruby" => "def f\n a\n b rescue c\n d\nend")
|
563
524
|
|
564
525
|
copy_test_case "block_stmt_both", "Ruby"
|
@@ -567,65 +528,50 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
567
528
|
|
568
529
|
add_tests("bmethod",
|
569
530
|
"Ruby" => [Examples, :unsplatted],
|
570
|
-
"ParseTree" => s(:defn, :unsplatted,
|
571
|
-
s(:
|
572
|
-
s(:scope,
|
573
|
-
s(:block,
|
574
|
-
s(:call,
|
575
|
-
s(:lvar, :x),
|
576
|
-
:+,
|
577
|
-
s(:arglist, s(:lit, 1)))))),
|
531
|
+
"ParseTree" => s(:defn, :unsplatted, s(:args, :x),
|
532
|
+
s(:call, s(:lvar, :x), :+, s(:lit, 1))),
|
578
533
|
"Ruby2Ruby" => "def unsplatted(x)\n (x + 1)\nend")
|
579
534
|
|
580
535
|
add_tests("bmethod_noargs",
|
581
536
|
"Ruby" => [Examples, :bmethod_noargs],
|
582
|
-
"ParseTree" => s(:defn, :bmethod_noargs,
|
583
|
-
s(:
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
s(:call, nil, :x, s(:arglist)),
|
588
|
-
:"+",
|
589
|
-
s(:arglist, s(:lit, 1)))))),
|
537
|
+
"ParseTree" => s(:defn, :bmethod_noargs, s(:args),
|
538
|
+
s(:call,
|
539
|
+
s(:call, nil, :x),
|
540
|
+
:"+",
|
541
|
+
s(:lit, 1))),
|
590
542
|
"Ruby2Ruby" => "def bmethod_noargs\n (x + 1)\nend")
|
591
543
|
|
592
544
|
add_tests("bmethod_splat",
|
593
545
|
"Ruby" => [Examples, :splatted],
|
594
|
-
"ParseTree" => s(:defn, :splatted,
|
595
|
-
s(:
|
596
|
-
|
597
|
-
|
598
|
-
s(:lasgn, :y,
|
599
|
-
s(:call, s(:lvar, :args), :first,
|
600
|
-
s(:arglist))),
|
601
|
-
s(:call, s(:lvar, :y), :+,
|
602
|
-
s(:arglist, s(:lit, 42)))))),
|
546
|
+
"ParseTree" => s(:defn, :splatted, s(:args, :"*args"),
|
547
|
+
s(:lasgn, :y,
|
548
|
+
s(:call, s(:lvar, :args), :first)),
|
549
|
+
s(:call, s(:lvar, :y), :+, s(:lit, 42))),
|
603
550
|
"Ruby2Ruby" => "def splatted(*args)\n y = args.first\n (y + 42)\nend")
|
604
551
|
|
605
552
|
add_tests("break",
|
606
553
|
"Ruby" => "loop { break if true }",
|
607
554
|
"ParseTree" => s(:iter,
|
608
|
-
s(:call, nil, :loop
|
555
|
+
s(:call, nil, :loop), nil,
|
609
556
|
s(:if, s(:true), s(:break), nil)))
|
610
557
|
|
611
558
|
add_tests("break_arg",
|
612
559
|
"Ruby" => "loop { break 42 if true }",
|
613
560
|
"ParseTree" => s(:iter,
|
614
|
-
s(:call, nil, :loop
|
561
|
+
s(:call, nil, :loop), nil,
|
615
562
|
s(:if, s(:true), s(:break, s(:lit, 42)), nil)))
|
616
563
|
|
617
564
|
add_tests("call",
|
618
565
|
"Ruby" => "self.method",
|
619
|
-
"ParseTree" => s(:call, s(:self), :method
|
566
|
+
"ParseTree" => s(:call, s(:self), :method))
|
620
567
|
|
621
568
|
add_tests("call_arglist",
|
622
569
|
"Ruby" => "o.puts(42)",
|
623
|
-
"ParseTree" => s(:call, s(:call, nil, :o, s(:
|
624
|
-
s(:arglist, s(:lit, 42))))
|
570
|
+
"ParseTree" => s(:call, s(:call, nil, :o), :puts, s(:lit, 42)))
|
625
571
|
|
626
572
|
add_tests("call_no_space_symbol",
|
627
573
|
"Ruby" => "foo:bar",
|
628
|
-
"ParseTree" => s(:call, nil, :foo, s(:
|
574
|
+
"ParseTree" => s(:call, nil, :foo, s(:lit, :bar)),
|
629
575
|
"Ruby2Ruby" => "foo(:bar)")
|
630
576
|
|
631
577
|
add_tests("ternary_symbol_no_spaces",
|
@@ -637,13 +583,16 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
637
583
|
"Ruby" => "1 ? m(a: 2) : 1",
|
638
584
|
"ParseTree" => s(:if, s(:lit, 1),
|
639
585
|
s(:call, nil, :m,
|
640
|
-
s(:
|
641
|
-
s(:hash, s(:lit, :a), s(:lit, 2)))),
|
586
|
+
s(:hash, s(:lit, :a), s(:lit, 2))),
|
642
587
|
s(:lit, 1)))
|
643
588
|
|
644
589
|
add_19tests("label_in_bare_hash_in_array_in_ternary",
|
645
590
|
"Ruby" => "1 ? [:a, b: 2] : 1",
|
646
|
-
|
591
|
+
"ParseTree" => s(:if, s(:lit, 1),
|
592
|
+
s(:array,
|
593
|
+
s(:lit, :a),
|
594
|
+
s(:hash, s(:lit, :b), s(:lit, 2))),
|
595
|
+
s(:lit, 1)))
|
647
596
|
|
648
597
|
add_tests("ternary_nil_no_space",
|
649
598
|
"Ruby" => "1 ? nil: 1",
|
@@ -653,38 +602,34 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
653
602
|
add_tests("call_arglist_hash",
|
654
603
|
"Ruby" => "o.m(:a => 1, :b => 2)",
|
655
604
|
"ParseTree" => s(:call,
|
656
|
-
s(:call, nil, :o
|
657
|
-
s(:
|
658
|
-
s(:
|
659
|
-
|
660
|
-
s(:lit, :b), s(:lit, 2)))))
|
605
|
+
s(:call, nil, :o), :m,
|
606
|
+
s(:hash,
|
607
|
+
s(:lit, :a), s(:lit, 1),
|
608
|
+
s(:lit, :b), s(:lit, 2))))
|
661
609
|
|
662
610
|
add_tests("call_arglist_norm_hash",
|
663
611
|
"Ruby" => "o.m(42, :a => 1, :b => 2)",
|
664
612
|
"ParseTree" => s(:call,
|
665
|
-
s(:call, nil, :o
|
666
|
-
s(:
|
667
|
-
|
668
|
-
s(:
|
669
|
-
|
670
|
-
s(:lit, :b), s(:lit, 2)))))
|
613
|
+
s(:call, nil, :o), :m,
|
614
|
+
s(:lit, 42),
|
615
|
+
s(:hash,
|
616
|
+
s(:lit, :a), s(:lit, 1),
|
617
|
+
s(:lit, :b), s(:lit, 2))))
|
671
618
|
|
672
619
|
add_tests("call_arglist_norm_hash_splat",
|
673
620
|
"Ruby" => "o.m(42, :a => 1, :b => 2, *c)",
|
674
621
|
"ParseTree" => s(:call,
|
675
|
-
s(:call, nil, :o
|
676
|
-
s(:
|
677
|
-
|
678
|
-
s(:
|
679
|
-
|
680
|
-
|
681
|
-
s(:splat, s(:call, nil, :c, s(:arglist))))))
|
622
|
+
s(:call, nil, :o), :m,
|
623
|
+
s(:lit, 42),
|
624
|
+
s(:hash,
|
625
|
+
s(:lit, :a), s(:lit, 1),
|
626
|
+
s(:lit, :b), s(:lit, 2)),
|
627
|
+
s(:splat, s(:call, nil, :c))))
|
682
628
|
|
683
629
|
add_tests("call_arglist_space",
|
684
630
|
"Ruby" => "a (1,2,3)",
|
685
631
|
"ParseTree" => s(:call, nil, :a,
|
686
|
-
s(:
|
687
|
-
s(:lit, 1), s(:lit, 2), s(:lit, 3))),
|
632
|
+
s(:lit, 1), s(:lit, 2), s(:lit, 3)),
|
688
633
|
"Ruby2Ruby" => "a(1, 2, 3)")
|
689
634
|
|
690
635
|
add_tests("call_command",
|
@@ -692,44 +637,38 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
692
637
|
"ParseTree" => s(:call,
|
693
638
|
s(:lit, 1),
|
694
639
|
:b,
|
695
|
-
s(:
|
640
|
+
s(:call, nil, :c)))
|
696
641
|
|
697
642
|
add_tests("call_expr",
|
698
643
|
"Ruby" => "(v = (1 + 1)).zero?",
|
699
644
|
"ParseTree" => s(:call,
|
700
645
|
s(:lasgn, :v,
|
701
|
-
s(:call, s(:lit, 1), :+,
|
702
|
-
|
703
|
-
:zero?, s(:arglist)))
|
646
|
+
s(:call, s(:lit, 1), :+, s(:lit, 1))),
|
647
|
+
:zero?))
|
704
648
|
|
705
649
|
add_tests("call_index",
|
706
650
|
"Ruby" => "a = []\na[42]\n",
|
707
651
|
"ParseTree" => s(:block,
|
708
652
|
s(:lasgn, :a, s(:array)),
|
709
|
-
s(:call, s(:lvar, :a), :[],
|
710
|
-
s(:arglist, s(:lit, 42)))))
|
653
|
+
s(:call, s(:lvar, :a), :[], s(:lit, 42))))
|
711
654
|
|
712
655
|
add_tests("call_index_no_args",
|
713
656
|
"Ruby" => "a[]",
|
714
|
-
"ParseTree" => s(:call, s(:call, nil, :a
|
715
|
-
:[]
|
657
|
+
"ParseTree" => s(:call, s(:call, nil, :a),
|
658
|
+
:[]))
|
716
659
|
|
717
660
|
add_tests("call_index_space",
|
718
661
|
"Ruby" => "a = []\na [42]\n",
|
719
662
|
"ParseTree" => s(:block,
|
720
663
|
s(:lasgn, :a, s(:array)),
|
721
|
-
s(:call, s(:lvar, :a), :[],
|
722
|
-
s(:arglist, s(:lit, 42)))),
|
664
|
+
s(:call, s(:lvar, :a), :[], s(:lit, 42))),
|
723
665
|
"Ruby2Ruby" => "a = []\na[42]\n")
|
724
666
|
|
725
667
|
add_tests("call_unary_neg",
|
726
668
|
"Ruby" => "-2**31",
|
727
669
|
"ParseTree" => s(:call,
|
728
|
-
s(:call,
|
729
|
-
|
730
|
-
:**,
|
731
|
-
s(:arglist, s(:lit, 31))),
|
732
|
-
:-@, s(:arglist)),
|
670
|
+
s(:call, s(:lit, 2), :**, s(:lit, 31)),
|
671
|
+
:-@),
|
733
672
|
"Ruby2Ruby" => "-(2 ** 31)")
|
734
673
|
|
735
674
|
add_tests("case",
|
@@ -741,10 +680,8 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
741
680
|
s(:lvar, :var),
|
742
681
|
s(:when,
|
743
682
|
s(:array, s(:lit, 1)),
|
744
|
-
s(:
|
745
|
-
|
746
|
-
s(:arglist, s(:str, "something"))),
|
747
|
-
s(:lasgn, :result, s(:str, "red")))),
|
683
|
+
s(:call, nil, :puts, s(:str, "something")),
|
684
|
+
s(:lasgn, :result, s(:str, "red"))),
|
748
685
|
s(:when,
|
749
686
|
s(:array, s(:lit, 2), s(:lit, 3)),
|
750
687
|
s(:lasgn, :result, s(:str, "yellow"))),
|
@@ -788,16 +725,16 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
788
725
|
|
789
726
|
add_tests("case_nested_inner_no_expr",
|
790
727
|
"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",
|
791
|
-
"ParseTree" => s(:case, s(:call, nil, :a
|
728
|
+
"ParseTree" => s(:case, s(:call, nil, :a),
|
792
729
|
s(:when,
|
793
|
-
s(:array, s(:call, nil, :b
|
730
|
+
s(:array, s(:call, nil, :b)),
|
794
731
|
s(:case, nil,
|
795
732
|
s(:when,
|
796
733
|
s(:array,
|
797
734
|
s(:and,
|
798
|
-
s(:call, nil, :d
|
799
|
-
s(:call, nil, :e
|
800
|
-
s(:call, nil, :f
|
735
|
+
s(:call, nil, :d),
|
736
|
+
s(:call, nil, :e))),
|
737
|
+
s(:call, nil, :f)),
|
801
738
|
nil)),
|
802
739
|
nil))
|
803
740
|
|
@@ -807,84 +744,64 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
807
744
|
s(:when,
|
808
745
|
s(:array,
|
809
746
|
s(:call,
|
810
|
-
s(:call, nil, :a
|
747
|
+
s(:call, nil, :a),
|
811
748
|
:==,
|
812
|
-
s(:
|
749
|
+
s(:lit, 1))),
|
813
750
|
s(:lit, :a)),
|
814
751
|
s(:when,
|
815
752
|
s(:array,
|
816
753
|
s(:call,
|
817
|
-
s(:call, nil, :a
|
754
|
+
s(:call, nil, :a),
|
818
755
|
:==,
|
819
|
-
s(:
|
756
|
+
s(:lit, 2))),
|
820
757
|
s(:lit, :b)),
|
821
758
|
s(:lit, :c)))
|
822
759
|
|
823
760
|
add_tests("case_splat",
|
824
761
|
"Ruby" => "case a\nwhen :b, *c then\n d\nelse\n e\nend",
|
825
|
-
"ParseTree" => s(:case, s(:call, nil, :a
|
762
|
+
"ParseTree" => s(:case, s(:call, nil, :a),
|
826
763
|
s(:when,
|
827
764
|
s(:array,
|
828
765
|
s(:lit, :b),
|
829
766
|
s(:when,
|
830
|
-
s(:call, nil, :c
|
767
|
+
s(:call, nil, :c),
|
831
768
|
nil)), # wtf?
|
832
|
-
s(:call, nil, :d
|
833
|
-
s(:call, nil, :e
|
769
|
+
s(:call, nil, :d)),
|
770
|
+
s(:call, nil, :e)))
|
834
771
|
|
835
772
|
add_tests("cdecl",
|
836
773
|
"Ruby" => "X = 42",
|
837
774
|
"ParseTree" => s(:cdecl, :X, s(:lit, 42)))
|
838
775
|
|
839
776
|
add_tests("class_plain",
|
840
|
-
"Ruby" => "class X\n puts((1 + 1))\n def blah\n puts(\"hello\")\n end\nend",
|
841
|
-
"ParseTree" => s(:class,
|
842
|
-
:
|
843
|
-
|
844
|
-
s(:
|
845
|
-
s(:
|
846
|
-
s(:call, nil, :puts,
|
847
|
-
s(:arglist,
|
848
|
-
s(:call, s(:lit, 1), :+,
|
849
|
-
s(:arglist, s(:lit, 1))))),
|
850
|
-
s(:defn, :blah,
|
851
|
-
s(:args),
|
852
|
-
s(:scope,
|
853
|
-
s(:block,
|
854
|
-
s(:call, nil, :puts,
|
855
|
-
s(:arglist,
|
856
|
-
s(:str, "hello"))))))))))
|
777
|
+
"Ruby" => "class X\n puts((1 + 1))\n \n def blah\n puts(\"hello\")\n end\nend",
|
778
|
+
"ParseTree" => s(:class, :X, nil,
|
779
|
+
s(:call, nil, :puts,
|
780
|
+
s(:call, s(:lit, 1), :+, s(:lit, 1))),
|
781
|
+
s(:defn, :blah, s(:args),
|
782
|
+
s(:call, nil, :puts, s(:str, "hello")))))
|
857
783
|
|
858
784
|
add_tests("class_scoped",
|
859
785
|
"Ruby" => "class X::Y\n c\nend",
|
860
786
|
"ParseTree" => s(:class, s(:colon2, s(:const, :X), :Y), nil,
|
861
|
-
s(:
|
787
|
+
s(:call, nil, :c)))
|
862
788
|
|
863
789
|
add_tests("class_scoped3",
|
864
790
|
"Ruby" => "class ::Y\n c\nend",
|
865
791
|
"ParseTree" => s(:class, s(:colon3, :Y), nil,
|
866
|
-
s(:
|
792
|
+
s(:call, nil, :c)))
|
867
793
|
|
868
794
|
add_tests("class_super_array",
|
869
795
|
"Ruby" => "class X < Array\nend",
|
870
|
-
"ParseTree" => s(:class,
|
871
|
-
:X,
|
872
|
-
s(:const, :Array),
|
873
|
-
s(:scope)))
|
796
|
+
"ParseTree" => s(:class, :X, s(:const, :Array)))
|
874
797
|
|
875
798
|
add_tests("class_super_expr",
|
876
799
|
"Ruby" => "class X < expr\nend",
|
877
|
-
"ParseTree" => s(:class,
|
878
|
-
:X,
|
879
|
-
s(:call, nil, :expr, s(:arglist)),
|
880
|
-
s(:scope)))
|
800
|
+
"ParseTree" => s(:class, :X, s(:call, nil, :expr)))
|
881
801
|
|
882
802
|
add_tests("class_super_object",
|
883
803
|
"Ruby" => "class X < Object\nend",
|
884
|
-
"ParseTree" => s(:class,
|
885
|
-
:X,
|
886
|
-
s(:const, :Object),
|
887
|
-
s(:scope)))
|
804
|
+
"ParseTree" => s(:class, :X, s(:const, :Object)))
|
888
805
|
|
889
806
|
add_tests("colon2",
|
890
807
|
"Ruby" => "X::Y",
|
@@ -918,84 +835,67 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
918
835
|
|
919
836
|
add_tests("cvasgn",
|
920
837
|
"Ruby" => "def x\n @@blah = 1\nend",
|
921
|
-
"ParseTree" => s(:defn, :x,
|
922
|
-
s(:
|
923
|
-
s(:scope,
|
924
|
-
s(:block,
|
925
|
-
s(:cvasgn, :@@blah, s(:lit, 1))))))
|
838
|
+
"ParseTree" => s(:defn, :x, s(:args),
|
839
|
+
s(:cvasgn, :@@blah, s(:lit, 1))))
|
926
840
|
|
927
841
|
add_tests("cvasgn_cls_method",
|
928
842
|
"Ruby" => "def self.quiet_mode=(boolean)\n @@quiet_mode = boolean\nend",
|
929
843
|
"ParseTree" => s(:defs, s(:self), :quiet_mode=,
|
930
844
|
s(:args, :boolean),
|
931
|
-
s(:
|
932
|
-
s(:
|
933
|
-
s(:cvasgn, :@@quiet_mode,
|
934
|
-
s(:lvar, :boolean))))))
|
845
|
+
s(:cvasgn, :@@quiet_mode,
|
846
|
+
s(:lvar, :boolean))))
|
935
847
|
|
936
848
|
add_tests("cvdecl",
|
937
849
|
"Ruby" => "class X\n @@blah = 1\nend",
|
938
850
|
"ParseTree" => s(:class, :X, nil,
|
939
|
-
s(:
|
851
|
+
s(:cvdecl, :@@blah, s(:lit, 1))))
|
940
852
|
|
941
853
|
add_tests("dasgn_0",
|
942
854
|
"Ruby" => "a.each { |x| b.each { |y| x = (x + 1) } if true }",
|
943
855
|
"ParseTree" => s(:iter,
|
944
|
-
s(:call, s(:call, nil, :a
|
945
|
-
s(:arglist)),
|
856
|
+
s(:call, s(:call, nil, :a), :each),
|
946
857
|
s(:lasgn, :x),
|
947
858
|
s(:if, s(:true),
|
948
859
|
s(:iter,
|
949
|
-
s(:call, s(:call, nil, :b,
|
950
|
-
:each,
|
951
|
-
s(:arglist)),
|
860
|
+
s(:call, s(:call, nil, :b), :each),
|
952
861
|
s(:lasgn, :y),
|
953
862
|
s(:lasgn, :x,
|
954
|
-
s(:call, s(:lvar, :x), :+,
|
955
|
-
s(:arglist, s(:lit, 1))))),
|
863
|
+
s(:call, s(:lvar, :x), :+, s(:lit, 1)))),
|
956
864
|
nil)))
|
957
865
|
|
958
866
|
add_tests("dasgn_1",
|
959
867
|
"Ruby" => "a.each { |x| b.each { |y| c = (c + 1) } if true }",
|
960
868
|
"ParseTree" => s(:iter,
|
961
|
-
s(:call, s(:call, nil, :a
|
962
|
-
s(:arglist)),
|
869
|
+
s(:call, s(:call, nil, :a), :each),
|
963
870
|
s(:lasgn, :x),
|
964
871
|
s(:if, s(:true),
|
965
872
|
s(:iter,
|
966
|
-
s(:call, s(:call, nil, :b,
|
967
|
-
:each,
|
968
|
-
s(:arglist)),
|
873
|
+
s(:call, s(:call, nil, :b), :each),
|
969
874
|
s(:lasgn, :y),
|
970
875
|
s(:lasgn, :c,
|
971
|
-
s(:call, s(:lvar, :c), :+,
|
972
|
-
s(:arglist, s(:lit, 1))))),
|
876
|
+
s(:call, s(:lvar, :c), :+, s(:lit, 1)))),
|
973
877
|
nil)))
|
974
878
|
|
975
879
|
add_tests("dasgn_2",
|
976
880
|
"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!
|
977
881
|
"ParseTree" => s(:iter,
|
978
|
-
s(:call, s(:call, nil, :a
|
979
|
-
s(:arglist)),
|
882
|
+
s(:call, s(:call, nil, :a), :each),
|
980
883
|
s(:lasgn, :x),
|
981
884
|
s(:if, s(:true),
|
982
885
|
s(:block,
|
983
886
|
s(:lasgn, :c, s(:lit, 0)),
|
984
887
|
s(:iter,
|
985
|
-
s(:call, s(:call, nil, :b,
|
986
|
-
:each,
|
987
|
-
s(:arglist)),
|
888
|
+
s(:call, s(:call, nil, :b), :each),
|
988
889
|
s(:lasgn, :y),
|
989
890
|
s(:lasgn, :c,
|
990
891
|
s(:call, s(:lvar, :c), :+,
|
991
|
-
s(:
|
892
|
+
s(:lit, 1))))),
|
992
893
|
nil)))
|
993
894
|
|
994
895
|
add_tests("dasgn_curr",
|
995
896
|
"Ruby" => "data.each do |x, y|\n a = 1\n b = a\n b = a = x\nend",
|
996
897
|
"ParseTree" => s(:iter,
|
997
|
-
s(:call, s(:call, nil, :data,
|
998
|
-
s(:arglist)), :each, s(:arglist)),
|
898
|
+
s(:call, s(:call, nil, :data), :each),
|
999
899
|
s(:masgn,
|
1000
900
|
s(:array, s(:lasgn, :x), s(:lasgn, :y))),
|
1001
901
|
s(:block,
|
@@ -1006,15 +906,13 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1006
906
|
add_tests("dasgn_icky",
|
1007
907
|
"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",
|
1008
908
|
"ParseTree" => s(:iter,
|
1009
|
-
s(:call, nil, :a
|
909
|
+
s(:call, nil, :a),
|
1010
910
|
nil,
|
1011
911
|
s(:block,
|
1012
912
|
s(:lasgn, :v, s(:nil)),
|
1013
913
|
s(:iter,
|
1014
914
|
s(:call, nil, :assert_block,
|
1015
|
-
s(:
|
1016
|
-
s(:call, nil, :full_message,
|
1017
|
-
s(:arglist)))),
|
915
|
+
s(:call, nil, :full_message)),
|
1018
916
|
nil,
|
1019
917
|
s(:rescue,
|
1020
918
|
s(:yield),
|
@@ -1029,12 +927,10 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1029
927
|
"ParseTree" => s(:block,
|
1030
928
|
s(:lasgn, :t, s(:lit, 0)),
|
1031
929
|
s(:iter,
|
1032
|
-
s(:call, s(:call, nil, :ns,
|
1033
|
-
s(:arglist)), :each, s(:arglist)),
|
930
|
+
s(:call, s(:call, nil, :ns), :each),
|
1034
931
|
s(:lasgn, :n),
|
1035
932
|
s(:lasgn, :t,
|
1036
|
-
s(:call, s(:lvar, :t), :+,
|
1037
|
-
s(:arglist, s(:lvar, :n)))))),
|
933
|
+
s(:call, s(:lvar, :t), :+, s(:lvar, :n))))),
|
1038
934
|
"Ruby2Ruby" => "t = 0\nns.each { |n| t = (t + n) }\n")
|
1039
935
|
|
1040
936
|
add_tests("defined",
|
@@ -1044,21 +940,18 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1044
940
|
# TODO: make all the defn_args* p their arglist
|
1045
941
|
add_tests("defn_args_block",
|
1046
942
|
"Ruby" => "def f(&block)\n # do nothing\nend",
|
1047
|
-
"ParseTree" => s(:defn, :f,
|
1048
|
-
s(:
|
1049
|
-
s(:scope, s(:block, s(:nil)))))
|
943
|
+
"ParseTree" => s(:defn, :f, s(:args, :"&block"),
|
944
|
+
s(:nil)))
|
1050
945
|
|
1051
946
|
add_tests("defn_args_mand",
|
1052
947
|
"Ruby" => "def f(mand)\n # do nothing\nend",
|
1053
|
-
"ParseTree" => s(:defn, :f,
|
1054
|
-
s(:
|
1055
|
-
s(:scope, s(:block, s(:nil)))))
|
948
|
+
"ParseTree" => s(:defn, :f, s(:args, :mand),
|
949
|
+
s(:nil)))
|
1056
950
|
|
1057
951
|
add_tests("defn_args_mand_block",
|
1058
952
|
"Ruby" => "def f(mand, &block)\n # do nothing\nend",
|
1059
|
-
"ParseTree" => s(:defn, :f,
|
1060
|
-
|
1061
|
-
s(:scope, s(:block, s(:nil)))))
|
953
|
+
"ParseTree" => s(:defn, :f, s(:args, :mand, :"&block"),
|
954
|
+
s(:nil)))
|
1062
955
|
|
1063
956
|
add_tests("defn_args_mand_opt",
|
1064
957
|
"Ruby" => "def f(mand, opt = 42)\n # do nothing\nend",
|
@@ -1066,7 +959,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1066
959
|
s(:args, :mand, :opt,
|
1067
960
|
s(:block,
|
1068
961
|
s(:lasgn, :opt, s(:lit, 42)))),
|
1069
|
-
s(:
|
962
|
+
s(:nil)))
|
1070
963
|
|
1071
964
|
add_tests("defn_args_mand_opt_block",
|
1072
965
|
"Ruby" => "def f(mand, opt = 42, &block)\n # do nothing\nend",
|
@@ -1074,7 +967,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1074
967
|
s(:args, :mand, :opt, :"&block",
|
1075
968
|
s(:block,
|
1076
969
|
s(:lasgn, :opt, s(:lit, 42)))),
|
1077
|
-
s(:
|
970
|
+
s(:nil)))
|
1078
971
|
|
1079
972
|
add_tests("defn_args_mand_opt_splat",
|
1080
973
|
"Ruby" => "def f(mand, opt = 42, *rest)\n # do nothing\nend",
|
@@ -1082,7 +975,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1082
975
|
s(:args, :mand, :opt, :"*rest",
|
1083
976
|
s(:block,
|
1084
977
|
s(:lasgn, :opt, s(:lit, 42)))),
|
1085
|
-
s(:
|
978
|
+
s(:nil)))
|
1086
979
|
|
1087
980
|
add_tests("defn_args_mand_opt_splat_block",
|
1088
981
|
"Ruby" => "def f(mand, opt = 42, *rest, &block)\n # do nothing\nend",
|
@@ -1090,43 +983,37 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1090
983
|
s(:args, :mand, :opt, :"*rest", :"&block",
|
1091
984
|
s(:block,
|
1092
985
|
s(:lasgn, :opt, s(:lit, 42)))),
|
1093
|
-
s(:
|
986
|
+
s(:nil)))
|
1094
987
|
|
1095
988
|
add_tests("defn_args_mand_opt_splat_no_name",
|
1096
989
|
"Ruby" => "def x(a, b = 42, *)\n # do nothing\nend",
|
1097
990
|
"ParseTree" => s(:defn, :x,
|
1098
991
|
s(:args, :a, :b, :"*",
|
1099
992
|
s(:block, s(:lasgn, :b, s(:lit, 42)))),
|
1100
|
-
s(:
|
1101
|
-
s(:block,
|
1102
|
-
s(:nil)))))
|
993
|
+
s(:nil)))
|
1103
994
|
|
1104
995
|
add_tests("defn_args_mand_splat",
|
1105
996
|
"Ruby" => "def f(mand, *rest)\n # do nothing\nend",
|
1106
997
|
"ParseTree" => s(:defn, :f,
|
1107
998
|
s(:args, :mand, :"*rest"),
|
1108
|
-
s(:
|
1109
|
-
|
999
|
+
s(:nil)))
|
1000
|
+
|
1110
1001
|
add_tests("defn_args_mand_splat_block",
|
1111
1002
|
"Ruby" => "def f(mand, *rest, &block)\n # do nothing\nend",
|
1112
1003
|
"ParseTree" => s(:defn, :f,
|
1113
1004
|
s(:args, :mand, :"*rest", :"&block"),
|
1114
|
-
s(:
|
1005
|
+
s(:nil)))
|
1115
1006
|
|
1116
1007
|
add_tests("defn_args_mand_splat_no_name",
|
1117
1008
|
"Ruby" => "def x(a, *args)\n p(a, args)\nend",
|
1118
|
-
"ParseTree" => s(:defn, :x,
|
1119
|
-
s(:
|
1120
|
-
|
1121
|
-
s(:block,
|
1122
|
-
s(:call, nil, :p,
|
1123
|
-
s(:arglist, s(:lvar, :a), s(:lvar, :args)))))))
|
1009
|
+
"ParseTree" => s(:defn, :x, s(:args, :a, :"*args"),
|
1010
|
+
s(:call, nil, :p,
|
1011
|
+
s(:lvar, :a), s(:lvar, :args))))
|
1124
1012
|
|
1125
1013
|
add_tests("defn_args_none",
|
1126
1014
|
"Ruby" => "def empty\n # do nothing\nend",
|
1127
|
-
"ParseTree" => s(:defn, :empty,
|
1128
|
-
s(:
|
1129
|
-
s(:scope, s(:block, s(:nil)))))
|
1015
|
+
"ParseTree" => s(:defn, :empty, s(:args),
|
1016
|
+
s(:nil)))
|
1130
1017
|
|
1131
1018
|
add_tests("defn_args_opt",
|
1132
1019
|
"Ruby" => "def f(opt = 42)\n # do nothing\nend",
|
@@ -1134,7 +1021,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1134
1021
|
s(:args, :opt,
|
1135
1022
|
s(:block,
|
1136
1023
|
s(:lasgn, :opt, s(:lit, 42)))),
|
1137
|
-
s(:
|
1024
|
+
s(:nil)))
|
1138
1025
|
|
1139
1026
|
add_tests("defn_args_opt_block",
|
1140
1027
|
"Ruby" => "def f(opt = 42, &block)\n # do nothing\nend",
|
@@ -1142,7 +1029,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1142
1029
|
s(:args, :opt, :"&block",
|
1143
1030
|
s(:block,
|
1144
1031
|
s(:lasgn, :opt, s(:lit, 42)))),
|
1145
|
-
|
1032
|
+
s(:nil)))
|
1146
1033
|
|
1147
1034
|
add_tests("defn_args_opt_splat",
|
1148
1035
|
"Ruby" => "def f(opt = 42, *rest)\n # do nothing\nend",
|
@@ -1150,7 +1037,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1150
1037
|
s(:args, :opt, :"*rest",
|
1151
1038
|
s(:block,
|
1152
1039
|
s(:lasgn, :opt, s(:lit, 42)))),
|
1153
|
-
s(:
|
1040
|
+
s(:nil)))
|
1154
1041
|
|
1155
1042
|
add_tests("defn_args_opt_splat_block",
|
1156
1043
|
"Ruby" => "def f(opt = 42, *rest, &block)\n # do nothing\nend",
|
@@ -1158,152 +1045,119 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1158
1045
|
s(:args, :opt, :"*rest", :"&block",
|
1159
1046
|
s(:block,
|
1160
1047
|
s(:lasgn, :opt, s(:lit, 42)))),
|
1161
|
-
s(:
|
1048
|
+
s(:nil)))
|
1162
1049
|
|
1163
1050
|
add_tests("defn_args_opt_splat_no_name",
|
1164
1051
|
"Ruby" => "def x(b = 42, *)\n # do nothing\nend",
|
1165
1052
|
"ParseTree" => s(:defn, :x,
|
1166
1053
|
s(:args, :b, :"*",
|
1167
1054
|
s(:block, s(:lasgn, :b, s(:lit, 42)))),
|
1168
|
-
s(:
|
1169
|
-
s(:block,
|
1170
|
-
s(:nil)))))
|
1055
|
+
s(:nil)))
|
1171
1056
|
|
1172
1057
|
add_tests("defn_args_splat",
|
1173
1058
|
"Ruby" => "def f(*rest)\n # do nothing\nend",
|
1174
|
-
"ParseTree" => s(:defn, :f,
|
1175
|
-
s(:
|
1176
|
-
s(:scope, s(:block, s(:nil)))))
|
1059
|
+
"ParseTree" => s(:defn, :f, s(:args, :"*rest"),
|
1060
|
+
s(:nil)))
|
1177
1061
|
|
1178
1062
|
add_tests("defn_args_splat_no_name",
|
1179
1063
|
"Ruby" => "def x(*)\n # do nothing\nend",
|
1180
|
-
"ParseTree" => s(:defn, :x,
|
1181
|
-
s(:
|
1182
|
-
s(:scope,
|
1183
|
-
s(:block,
|
1184
|
-
s(:nil)))))
|
1064
|
+
"ParseTree" => s(:defn, :x, s(:args, :"*"),
|
1065
|
+
s(:nil)))
|
1185
1066
|
|
1186
1067
|
add_tests("defn_or",
|
1187
1068
|
"Ruby" => "def |(o)\n # do nothing\nend",
|
1188
|
-
"ParseTree" => s(:defn, :|,
|
1189
|
-
s(:
|
1190
|
-
s(:scope, s(:block, s(:nil)))))
|
1069
|
+
"ParseTree" => s(:defn, :|, s(:args, :o),
|
1070
|
+
s(:nil)))
|
1191
1071
|
|
1192
1072
|
add_tests("defn_rescue",
|
1193
1073
|
"Ruby" => "def eql?(resource)\n (self.uuid == resource.uuid)\nrescue\n false\nend",
|
1194
1074
|
"ParseTree" => s(:defn, :eql?,
|
1195
1075
|
s(:args, :resource),
|
1196
|
-
s(:
|
1197
|
-
s(:
|
1198
|
-
s(:
|
1199
|
-
|
1200
|
-
|
1201
|
-
|
1202
|
-
s(:arglist,
|
1203
|
-
s(:call, s(:lvar, :resource),
|
1204
|
-
:uuid, s(:arglist)))),
|
1205
|
-
s(:resbody, s(:array), s(:false)))))),
|
1076
|
+
s(:rescue,
|
1077
|
+
s(:call,
|
1078
|
+
s(:call, s(:self), :uuid),
|
1079
|
+
:==,
|
1080
|
+
s(:call, s(:lvar, :resource), :uuid)),
|
1081
|
+
s(:resbody, s(:array), s(:false)))),
|
1206
1082
|
"Ruby2Ruby" => "def eql?(resource)\n (self.uuid == resource.uuid) rescue false\nend")
|
1207
1083
|
|
1208
1084
|
add_tests("defn_rescue_mri_verbose_flag",
|
1209
1085
|
"Ruby" => "def eql?(resource)\n (self.uuid == resource.uuid)\nrescue\n false\nend",
|
1210
1086
|
"ParseTree" => s(:defn, :eql?,
|
1211
1087
|
s(:args, :resource),
|
1212
|
-
s(:
|
1213
|
-
s(:
|
1214
|
-
s(:
|
1215
|
-
|
1216
|
-
|
1217
|
-
|
1218
|
-
s(:arglist,
|
1219
|
-
s(:call, s(:lvar, :resource),
|
1220
|
-
:uuid, s(:arglist)))),
|
1221
|
-
s(:resbody, s(:array), s(:false)))))),
|
1088
|
+
s(:rescue,
|
1089
|
+
s(:call,
|
1090
|
+
s(:call, s(:self), :uuid),
|
1091
|
+
:==,
|
1092
|
+
s(:call, s(:lvar, :resource), :uuid)),
|
1093
|
+
s(:resbody, s(:array), s(:false)))),
|
1222
1094
|
"Ruby2Ruby" => "def eql?(resource)\n (self.uuid == resource.uuid) rescue false\nend")
|
1223
1095
|
|
1224
1096
|
add_tests("defn_something_eh",
|
1225
1097
|
"Ruby" => "def something?\n # do nothing\nend",
|
1226
1098
|
"ParseTree" => s(:defn, :something?,
|
1227
1099
|
s(:args),
|
1228
|
-
s(:
|
1100
|
+
s(:nil)))
|
1229
1101
|
|
1230
1102
|
add_tests("defn_splat_no_name",
|
1231
1103
|
"Ruby" => "def x(a, *)\n p(a)\nend",
|
1232
1104
|
"ParseTree" => s(:defn, :x,
|
1233
1105
|
s(:args, :a, :"*"),
|
1234
|
-
s(:
|
1235
|
-
s(:block,
|
1236
|
-
s(:call, nil, :p,
|
1237
|
-
s(:arglist, s(:lvar, :a)))))))
|
1106
|
+
s(:call, nil, :p, s(:lvar, :a))))
|
1238
1107
|
|
1239
1108
|
add_tests("defn_zarray",
|
1240
1109
|
"Ruby" => "def zarray\n a = []\n return a\nend",
|
1241
1110
|
"ParseTree" => s(:defn, :zarray,
|
1242
1111
|
s(:args),
|
1243
|
-
s(:
|
1244
|
-
|
1245
|
-
s(:lasgn, :a, s(:array)),
|
1246
|
-
s(:return, s(:lvar, :a))))))
|
1112
|
+
s(:lasgn, :a, s(:array)),
|
1113
|
+
s(:return, s(:lvar, :a))))
|
1247
1114
|
|
1248
1115
|
add_tests("defs",
|
1249
1116
|
"Ruby" => "def self.x(y)\n (y + 1)\nend",
|
1250
1117
|
"ParseTree" => s(:defs, s(:self), :x,
|
1251
1118
|
s(:args, :y),
|
1252
|
-
s(:
|
1253
|
-
s(:block,
|
1254
|
-
s(:call, s(:lvar, :y), :+,
|
1255
|
-
s(:arglist, s(:lit, 1)))))))
|
1119
|
+
s(:call, s(:lvar, :y), :+, s(:lit, 1))))
|
1256
1120
|
|
1257
1121
|
add_tests("defs_empty",
|
1258
1122
|
"Ruby" => "def self.empty\n # do nothing\nend",
|
1259
|
-
"ParseTree" => s(:defs, s(:self), :empty,
|
1260
|
-
s(:args),
|
1261
|
-
s(:scope, s(:block))))
|
1123
|
+
"ParseTree" => s(:defs, s(:self), :empty, s(:args)))
|
1262
1124
|
|
1263
1125
|
add_tests("defs_empty_args",
|
1264
1126
|
"Ruby" => "def self.empty(*)\n # do nothing\nend",
|
1265
1127
|
"ParseTree" => s(:defs, s(:self), :empty,
|
1266
|
-
s(:args, :*)
|
1267
|
-
s(:scope, s(:block))))
|
1128
|
+
s(:args, :*)))
|
1268
1129
|
|
1269
1130
|
add_tests("defs_expr_wtf",
|
1270
1131
|
"Ruby" => "def (a.b).empty(*)\n # do nothing\nend",
|
1271
1132
|
"ParseTree" => s(:defs,
|
1272
|
-
s(:call,
|
1273
|
-
s(:call, nil, :a, s(:arglist)),
|
1274
|
-
:b, s(:arglist)),
|
1133
|
+
s(:call, s(:call, nil, :a), :b),
|
1275
1134
|
:empty,
|
1276
|
-
s(:args, :*)
|
1277
|
-
s(:scope, s(:block))))
|
1135
|
+
s(:args, :*)))
|
1278
1136
|
|
1279
1137
|
add_tests("dmethod",
|
1280
1138
|
"Ruby" => [Examples, :dmethod_added],
|
1281
1139
|
"ParseTree" => s(:defn, :dmethod_added,
|
1282
1140
|
s(:args, :x),
|
1283
|
-
s(:
|
1284
|
-
s(:block,
|
1285
|
-
s(:call, s(:lvar, :x), :+,
|
1286
|
-
s(:arglist, s(:lit, 1)))))),
|
1141
|
+
s(:call, s(:lvar, :x), :+, s(:lit, 1))),
|
1287
1142
|
"Ruby2Ruby" => "def dmethod_added(x)\n (x + 1)\nend")
|
1288
1143
|
|
1289
1144
|
add_tests("dot2",
|
1290
1145
|
"Ruby" => "(a..b)",
|
1291
1146
|
"ParseTree" => s(:dot2,
|
1292
|
-
s(:call, nil, :a
|
1293
|
-
s(:call, nil, :b
|
1147
|
+
s(:call, nil, :a),
|
1148
|
+
s(:call, nil, :b)))
|
1294
1149
|
|
1295
1150
|
add_tests("dot3",
|
1296
1151
|
"Ruby" => "(a...b)",
|
1297
1152
|
"ParseTree" => s(:dot3,
|
1298
|
-
s(:call, nil, :a
|
1299
|
-
s(:call, nil, :b
|
1153
|
+
s(:call, nil, :a),
|
1154
|
+
s(:call, nil, :b)))
|
1300
1155
|
|
1301
1156
|
add_tests("dregx",
|
1302
1157
|
"Ruby" => "/x#\{(1 + 1)}y/",
|
1303
1158
|
"ParseTree" => s(:dregx, "x",
|
1304
1159
|
s(:evstr,
|
1305
|
-
s(:call, s(:lit, 1), :+,
|
1306
|
-
s(:arglist, s(:lit, 1)))),
|
1160
|
+
s(:call, s(:lit, 1), :+, s(:lit, 1))),
|
1307
1161
|
s(:str, "y")))
|
1308
1162
|
|
1309
1163
|
add_tests("dregx_interp",
|
@@ -1323,8 +1177,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1323
1177
|
"Ruby" => "/x#\{(1 + 1)}y/o",
|
1324
1178
|
"ParseTree" => s(:dregx_once, "x",
|
1325
1179
|
s(:evstr,
|
1326
|
-
s(:call, s(:lit, 1), :+,
|
1327
|
-
s(:arglist, s(:lit, 1)))),
|
1180
|
+
s(:call, s(:lit, 1), :+, s(:lit, 1))),
|
1328
1181
|
s(:str, "y")))
|
1329
1182
|
|
1330
1183
|
add_tests("dregx_once_n_interp",
|
@@ -1348,7 +1201,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1348
1201
|
"x",
|
1349
1202
|
s(:evstr,
|
1350
1203
|
s(:call, s(:str, "%.2f"), :%,
|
1351
|
-
s(:
|
1204
|
+
s(:lit, 3.14159))),
|
1352
1205
|
s(:str, "y"))))
|
1353
1206
|
|
1354
1207
|
add_tests("dstr_3",
|
@@ -1363,7 +1216,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1363
1216
|
s(:evstr, s(:lvar, :max)),
|
1364
1217
|
s(:str, "f")),
|
1365
1218
|
:%,
|
1366
|
-
s(:
|
1219
|
+
s(:lit, 3.14159))),
|
1367
1220
|
s(:str, "y"))))
|
1368
1221
|
|
1369
1222
|
add_tests("dstr_concat",
|
@@ -1392,8 +1245,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1392
1245
|
add_tests("dstr_heredoc_expand",
|
1393
1246
|
"Ruby" => "<<EOM\n blah\n#\{1 + 1}blah\nEOM\n",
|
1394
1247
|
"ParseTree" => s(:dstr, " blah\n",
|
1395
|
-
s(:evstr, s(:call, s(:lit, 1), :+,
|
1396
|
-
s(:arglist, s(:lit, 1)))),
|
1248
|
+
s(:evstr, s(:call, s(:lit, 1), :+, s(:lit, 1))),
|
1397
1249
|
s(:str, "blah\n")),
|
1398
1250
|
"Ruby2Ruby" => "\" blah\\n#\{(1 + 1)}blah\\n\"")
|
1399
1251
|
|
@@ -1401,7 +1253,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1401
1253
|
"Ruby" => "<<-EOF\r\ndef test_#\{action}_valid_feed\r\n EOF\r\n",
|
1402
1254
|
"ParseTree" => s(:dstr,
|
1403
1255
|
'def test_',
|
1404
|
-
s(:evstr, s(:call, nil, :action
|
1256
|
+
s(:evstr, s(:call, nil, :action)),
|
1405
1257
|
s(:str, "_valid_feed\n")),
|
1406
1258
|
"Ruby2Ruby" => "\"def test_#\{action}_valid_feed\\n\"")
|
1407
1259
|
|
@@ -1417,7 +1269,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1417
1269
|
add_tests("dstr_nest",
|
1418
1270
|
"Ruby" => "%Q[before [#\{nest}] after]",
|
1419
1271
|
"ParseTree" => s(:dstr, "before [",
|
1420
|
-
s(:evstr, s(:call, nil, :nest
|
1272
|
+
s(:evstr, s(:call, nil, :nest)),
|
1421
1273
|
s(:str, "] after")),
|
1422
1274
|
"Ruby2Ruby" => "\"before [#\{nest}] after\"")
|
1423
1275
|
|
@@ -1427,11 +1279,9 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1427
1279
|
"blah(string):",
|
1428
1280
|
s(:evstr, s(:lit, 1)),
|
1429
1281
|
s(:str, ": warning: "),
|
1430
|
-
s(:evstr, s(:call, s(:gvar, :$!), :message,
|
1431
|
-
s(:arglist))),
|
1282
|
+
s(:evstr, s(:call, s(:gvar, :$!), :message)),
|
1432
1283
|
s(:str, " ("),
|
1433
|
-
s(:evstr, s(:call, s(:gvar, :$!), :class,
|
1434
|
-
s(:arglist))),
|
1284
|
+
s(:evstr, s(:call, s(:gvar, :$!), :class)),
|
1435
1285
|
s(:str, ")")),
|
1436
1286
|
"Ruby2Ruby" => '"blah(string):#{1}: warning: #{$!.message} (#{$!.class})"')
|
1437
1287
|
|
@@ -1439,9 +1289,9 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1439
1289
|
"Ruby" => '"before #{from} middle #{to} (#{__FILE__}:#{__LINE__})"',
|
1440
1290
|
"ParseTree" => s(:dstr,
|
1441
1291
|
"before ",
|
1442
|
-
s(:evstr, s(:call, nil, :from
|
1292
|
+
s(:evstr, s(:call, nil, :from)),
|
1443
1293
|
s(:str, " middle "),
|
1444
|
-
s(:evstr, s(:call, nil, :to
|
1294
|
+
s(:evstr, s(:call, nil, :to)),
|
1445
1295
|
s(:str, " ("),
|
1446
1296
|
s(:str, "(string)"),
|
1447
1297
|
s(:str, ":"),
|
@@ -1452,8 +1302,8 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1452
1302
|
add_tests("dsym",
|
1453
1303
|
"Ruby" => ":\"x#\{(1 + 1)}y\"",
|
1454
1304
|
"ParseTree" => s(:dsym, "x",
|
1455
|
-
s(:evstr, s(:call, s(:lit, 1), :+,
|
1456
|
-
|
1305
|
+
s(:evstr, s(:call, s(:lit, 1), :+, s(:lit, 1))),
|
1306
|
+
s(:str, "y")))
|
1457
1307
|
|
1458
1308
|
add_tests("dxstr",
|
1459
1309
|
"Ruby" => "t = 5\n`touch #\{t}`\n",
|
@@ -1465,8 +1315,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1465
1315
|
"Ruby" => "begin\n (1 + 1)\nrescue SyntaxError => e1\n 2\nrescue Exception => e2\n 3\nelse\n 4\nensure\n 5\nend",
|
1466
1316
|
"ParseTree" => s(:ensure,
|
1467
1317
|
s(:rescue,
|
1468
|
-
s(:call, s(:lit, 1), :+,
|
1469
|
-
s(:arglist, s(:lit, 1))),
|
1318
|
+
s(:call, s(:lit, 1), :+, s(:lit, 1)),
|
1470
1319
|
s(:resbody,
|
1471
1320
|
s(:array,
|
1472
1321
|
s(:const, :SyntaxError),
|
@@ -1486,72 +1335,60 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1486
1335
|
|
1487
1336
|
add_tests("fbody",
|
1488
1337
|
"Ruby" => [Examples, :an_alias],
|
1489
|
-
"ParseTree" => s(:defn, :an_alias,
|
1490
|
-
s(:
|
1491
|
-
s(:scope,
|
1492
|
-
s(:block,
|
1493
|
-
s(:call, s(:lvar, :x), :+,
|
1494
|
-
s(:arglist, s(:lit, 1)))))),
|
1338
|
+
"ParseTree" => s(:defn, :an_alias, s(:args, :x),
|
1339
|
+
s(:call, s(:lvar, :x), :+, s(:lit, 1))),
|
1495
1340
|
"Ruby2Ruby" => "def an_alias(x)\n (x + 1)\nend")
|
1496
1341
|
|
1497
1342
|
add_tests("fcall_arglist",
|
1498
1343
|
"Ruby" => "m(42)",
|
1499
|
-
"ParseTree" => s(:call, nil, :m, s(:
|
1344
|
+
"ParseTree" => s(:call, nil, :m, s(:lit, 42)))
|
1500
1345
|
|
1501
1346
|
add_tests("fcall_arglist_hash",
|
1502
1347
|
"Ruby" => "m(:a => 1, :b => 2)",
|
1503
1348
|
"ParseTree" => s(:call, nil, :m,
|
1504
|
-
s(:
|
1505
|
-
s(:
|
1506
|
-
|
1507
|
-
s(:lit, :b), s(:lit, 2)))))
|
1349
|
+
s(:hash,
|
1350
|
+
s(:lit, :a), s(:lit, 1),
|
1351
|
+
s(:lit, :b), s(:lit, 2))))
|
1508
1352
|
|
1509
1353
|
add_tests("fcall_arglist_norm_hash",
|
1510
1354
|
"Ruby" => "m(42, :a => 1, :b => 2)",
|
1511
1355
|
"ParseTree" => s(:call, nil, :m,
|
1512
|
-
s(:
|
1513
|
-
|
1514
|
-
s(:
|
1515
|
-
|
1516
|
-
s(:lit, :b), s(:lit, 2)))))
|
1356
|
+
s(:lit, 42),
|
1357
|
+
s(:hash,
|
1358
|
+
s(:lit, :a), s(:lit, 1),
|
1359
|
+
s(:lit, :b), s(:lit, 2))))
|
1517
1360
|
|
1518
1361
|
add_tests("fcall_arglist_norm_hash_splat",
|
1519
1362
|
"Ruby" => "m(42, :a => 1, :b => 2, *c)",
|
1520
1363
|
"ParseTree" => s(:call, nil, :m,
|
1521
|
-
s(:
|
1522
|
-
|
1523
|
-
s(:
|
1524
|
-
|
1525
|
-
|
1526
|
-
s(:splat, s(:call, nil, :c, s(:arglist))))))
|
1364
|
+
s(:lit, 42),
|
1365
|
+
s(:hash,
|
1366
|
+
s(:lit, :a), s(:lit, 1),
|
1367
|
+
s(:lit, :b), s(:lit, 2)),
|
1368
|
+
s(:splat, s(:call, nil, :c))))
|
1527
1369
|
|
1528
1370
|
add_tests("fcall_block",
|
1529
1371
|
"Ruby" => "a(:b) { :c }",
|
1530
1372
|
"ParseTree" => s(:iter,
|
1531
|
-
s(:call, nil, :a,
|
1532
|
-
|
1373
|
+
s(:call, nil, :a, s(:lit, :b)),
|
1374
|
+
nil,
|
1533
1375
|
s(:lit, :c)))
|
1534
1376
|
|
1535
1377
|
add_tests("fcall_index_space",
|
1536
1378
|
"Ruby" => "a [42]",
|
1537
|
-
"ParseTree" => s(:call, nil, :a,
|
1538
|
-
s(:arglist, s(:array, s(:lit, 42)))),
|
1379
|
+
"ParseTree" => s(:call, nil, :a, s(:array, s(:lit, 42))),
|
1539
1380
|
"Ruby2Ruby" => "a([42])")
|
1540
1381
|
|
1541
1382
|
add_tests("fcall_keyword",
|
1542
1383
|
"Ruby" => "42 if block_given?",
|
1543
1384
|
"ParseTree" => s(:if,
|
1544
|
-
s(:call, nil, :block_given
|
1385
|
+
s(:call, nil, :block_given?),
|
1545
1386
|
s(:lit, 42), nil))
|
1546
1387
|
|
1547
1388
|
add_tests("fcall_inside_parens",
|
1548
1389
|
"Ruby" => "( a (b), c)",
|
1549
|
-
"ParseTree" => s(:call,
|
1550
|
-
nil,
|
1551
|
-
:a,
|
1552
|
-
s(:arglist,
|
1553
|
-
s(:call, nil, :b, s(:arglist)),
|
1554
|
-
s(:call, nil, :c, s(:arglist)))),
|
1390
|
+
"ParseTree" => s(:call, nil, :a,
|
1391
|
+
s(:call, nil, :b), s(:call, nil, :c)),
|
1555
1392
|
"Ruby2Ruby" => "a(b, c)")
|
1556
1393
|
|
1557
1394
|
add_tests("flip2",
|
@@ -1561,18 +1398,18 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1561
1398
|
s(:if,
|
1562
1399
|
s(:flip2,
|
1563
1400
|
s(:call,
|
1564
|
-
s(:call, s(:call, nil, :i
|
1401
|
+
s(:call, s(:call, nil, :i),
|
1565
1402
|
:%,
|
1566
|
-
s(:
|
1403
|
+
s(:lit, 4)),
|
1567
1404
|
:==,
|
1568
|
-
s(:
|
1405
|
+
s(:lit, 0)),
|
1569
1406
|
s(:call,
|
1570
|
-
s(:call, s(:call, nil, :i
|
1407
|
+
s(:call, s(:call, nil, :i),
|
1571
1408
|
:%,
|
1572
|
-
s(:
|
1409
|
+
s(:lit, 3)),
|
1573
1410
|
:==,
|
1574
|
-
s(:
|
1575
|
-
s(:call, nil, :i
|
1411
|
+
s(:lit, 0))),
|
1412
|
+
s(:call, nil, :i),
|
1576
1413
|
s(:nil))))
|
1577
1414
|
|
1578
1415
|
add_tests("flip2_method",
|
@@ -1580,9 +1417,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1580
1417
|
"ParseTree" => s(:if,
|
1581
1418
|
s(:flip2,
|
1582
1419
|
s(:lit, 1),
|
1583
|
-
s(:call, s(:lit, 2), :a?,
|
1584
|
-
s(:arglist,
|
1585
|
-
s(:call, nil, :b, s(:arglist))))),
|
1420
|
+
s(:call, s(:lit, 2), :a?, s(:call, nil, :b))),
|
1586
1421
|
s(:nil),
|
1587
1422
|
nil))
|
1588
1423
|
|
@@ -1593,34 +1428,33 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1593
1428
|
s(:if,
|
1594
1429
|
s(:flip3,
|
1595
1430
|
s(:call,
|
1596
|
-
s(:call, s(:call, nil, :i
|
1431
|
+
s(:call, s(:call, nil, :i),
|
1597
1432
|
:%,
|
1598
|
-
s(:
|
1433
|
+
s(:lit, 4)),
|
1599
1434
|
:==,
|
1600
|
-
s(:
|
1435
|
+
s(:lit, 0)),
|
1601
1436
|
s(:call,
|
1602
|
-
s(:call, s(:call, nil, :i
|
1437
|
+
s(:call, s(:call, nil, :i),
|
1603
1438
|
:%,
|
1604
|
-
s(:
|
1439
|
+
s(:lit, 3)),
|
1605
1440
|
:==,
|
1606
|
-
s(:
|
1607
|
-
s(:call, nil, :i
|
1441
|
+
s(:lit, 0))),
|
1442
|
+
s(:call, nil, :i),
|
1608
1443
|
s(:nil))))
|
1609
1444
|
|
1610
1445
|
add_tests("for",
|
1611
1446
|
"Ruby" => "for o in ary do\n puts(o)\nend",
|
1612
1447
|
"ParseTree" => s(:for,
|
1613
|
-
s(:call, nil, :ary
|
1448
|
+
s(:call, nil, :ary),
|
1614
1449
|
s(:lasgn, :o),
|
1615
|
-
s(:call, nil, :puts,
|
1616
|
-
s(:arglist, s(:lvar, :o)))))
|
1450
|
+
s(:call, nil, :puts, s(:lvar, :o))))
|
1617
1451
|
|
1618
1452
|
add_tests("for_no_body",
|
1619
1453
|
"Ruby" => "for i in (0..max) do\n # do nothing\nend",
|
1620
1454
|
"ParseTree" => s(:for,
|
1621
1455
|
s(:dot2,
|
1622
1456
|
s(:lit, 0),
|
1623
|
-
s(:call, nil, :max
|
1457
|
+
s(:call, nil, :max)),
|
1624
1458
|
s(:lasgn, :i)))
|
1625
1459
|
|
1626
1460
|
add_tests("gasgn",
|
@@ -1666,10 +1500,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1666
1500
|
"ParseTree" => s(:if,
|
1667
1501
|
s(:block,
|
1668
1502
|
s(:lasgn, :x, s(:lit, 5)),
|
1669
|
-
s(:call,
|
1670
|
-
s(:lvar, :x),
|
1671
|
-
:+,
|
1672
|
-
s(:arglist, s(:lit, 1)))),
|
1503
|
+
s(:call, s(:lvar, :x), :+, s(:lit, 1))),
|
1673
1504
|
s(:nil),
|
1674
1505
|
nil))
|
1675
1506
|
|
@@ -1678,9 +1509,9 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1678
1509
|
"ParseTree" => s(:if,
|
1679
1510
|
s(:lasgn, :x,
|
1680
1511
|
s(:call,
|
1681
|
-
s(:call, nil, :obj
|
1682
|
-
:x
|
1683
|
-
s(:call, s(:lvar, :x), :do_it
|
1512
|
+
s(:call, nil, :obj),
|
1513
|
+
:x)),
|
1514
|
+
s(:call, s(:lvar, :x), :do_it),
|
1684
1515
|
nil))
|
1685
1516
|
|
1686
1517
|
add_tests("if_nested",
|
@@ -1690,61 +1521,54 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1690
1521
|
|
1691
1522
|
add_tests("if_post",
|
1692
1523
|
"Ruby" => "a if b",
|
1693
|
-
"ParseTree" => s(:if, s(:call, nil, :b
|
1694
|
-
s(:call, nil, :a
|
1524
|
+
"ParseTree" => s(:if, s(:call, nil, :b),
|
1525
|
+
s(:call, nil, :a), nil))
|
1695
1526
|
|
1696
1527
|
add_tests("if_post_not",
|
1697
1528
|
"Ruby" => "a if not b",
|
1698
|
-
"ParseTree" => s(:if, s(:call, nil, :b
|
1699
|
-
s(:call, nil, :a
|
1529
|
+
"ParseTree" => s(:if, s(:call, nil, :b), nil,
|
1530
|
+
s(:call, nil, :a)),
|
1700
1531
|
"Ruby2Ruby" => "a unless b")
|
1701
1532
|
|
1702
1533
|
add_tests("if_pre",
|
1703
1534
|
"Ruby" => "if b then a end",
|
1704
|
-
"ParseTree" => s(:if, s(:call, nil, :b
|
1705
|
-
s(:call, nil, :a
|
1535
|
+
"ParseTree" => s(:if, s(:call, nil, :b),
|
1536
|
+
s(:call, nil, :a), nil),
|
1706
1537
|
"Ruby2Ruby" => "a if b")
|
1707
1538
|
|
1708
1539
|
add_tests("if_pre_not",
|
1709
1540
|
"Ruby" => "if not b then a end",
|
1710
|
-
"ParseTree" => s(:if, s(:call, nil, :b
|
1711
|
-
s(:call, nil, :a
|
1541
|
+
"ParseTree" => s(:if, s(:call, nil, :b), nil,
|
1542
|
+
s(:call, nil, :a)),
|
1712
1543
|
"Ruby2Ruby" => "a unless b")
|
1713
1544
|
|
1714
1545
|
add_tests("iter_call_arglist_space",
|
1715
1546
|
"Ruby" => "a (1) {|c|d}",
|
1716
1547
|
"ParseTree" => s(:iter,
|
1717
|
-
s(:call, nil, :a, s(:
|
1548
|
+
s(:call, nil, :a, s(:lit, 1)),
|
1718
1549
|
s(:lasgn, :c),
|
1719
|
-
s(:call, nil, :d
|
1550
|
+
s(:call, nil, :d)),
|
1720
1551
|
"Ruby2Ruby" => "a(1) { |c| d }")
|
1721
1552
|
|
1722
1553
|
add_tests("iter_dasgn_curr_dasgn_madness",
|
1723
1554
|
"Ruby" => "as.each { |a|\n b += a.b(false) }",
|
1724
1555
|
"ParseTree" => s(:iter,
|
1725
|
-
s(:call,
|
1726
|
-
s(:call, nil, :as, s(:arglist)),
|
1727
|
-
:each, s(:arglist)),
|
1556
|
+
s(:call, s(:call, nil, :as), :each),
|
1728
1557
|
s(:lasgn, :a),
|
1729
1558
|
s(:lasgn, :b,
|
1730
1559
|
s(:call,
|
1731
1560
|
s(:lvar, :b),
|
1732
1561
|
:+,
|
1733
|
-
s(:
|
1734
|
-
s(:call, s(:lvar, :a), :b,
|
1735
|
-
s(:arglist, s(:false))))))),
|
1562
|
+
s(:call, s(:lvar, :a), :b, s(:false))))),
|
1736
1563
|
"Ruby2Ruby" => "as.each { |a| b = (b + a.b(false)) }")
|
1737
1564
|
|
1738
1565
|
add_tests("iter_downto",
|
1739
1566
|
"Ruby" => "3.downto(1) { |n| puts(n.to_s) }",
|
1740
1567
|
"ParseTree" => s(:iter,
|
1741
|
-
s(:call, s(:lit, 3), :downto,
|
1742
|
-
s(:arglist, s(:lit, 1))),
|
1568
|
+
s(:call, s(:lit, 3), :downto, s(:lit, 1)),
|
1743
1569
|
s(:lasgn, :n),
|
1744
1570
|
s(:call, nil, :puts,
|
1745
|
-
s(:
|
1746
|
-
s(:call, s(:lvar, :n),
|
1747
|
-
:to_s, s(:arglist))))))
|
1571
|
+
s(:call, s(:lvar, :n), :to_s))))
|
1748
1572
|
|
1749
1573
|
add_tests("iter_each_lvar",
|
1750
1574
|
"Ruby" => "array = [1, 2, 3]\narray.each { |x| puts(x.to_s) }\n",
|
@@ -1753,12 +1577,10 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1753
1577
|
s(:array,
|
1754
1578
|
s(:lit, 1), s(:lit, 2), s(:lit, 3))),
|
1755
1579
|
s(:iter,
|
1756
|
-
s(:call, s(:lvar, :array), :each,
|
1757
|
-
s(:arglist)),
|
1580
|
+
s(:call, s(:lvar, :array), :each),
|
1758
1581
|
s(:lasgn, :x),
|
1759
1582
|
s(:call, nil, :puts,
|
1760
|
-
s(:
|
1761
|
-
:to_s, s(:arglist)))))))
|
1583
|
+
s(:call, s(:lvar, :x), :to_s)))))
|
1762
1584
|
|
1763
1585
|
add_tests("iter_each_nested",
|
1764
1586
|
"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",
|
@@ -1772,108 +1594,98 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1772
1594
|
s(:lit, 6), s(:lit, 7))),
|
1773
1595
|
s(:iter,
|
1774
1596
|
s(:call,
|
1775
|
-
s(:lvar, :array1), :each
|
1597
|
+
s(:lvar, :array1), :each),
|
1776
1598
|
s(:lasgn, :x),
|
1777
1599
|
s(:iter,
|
1778
1600
|
s(:call,
|
1779
|
-
s(:lvar, :array2), :each
|
1601
|
+
s(:lvar, :array2), :each),
|
1780
1602
|
s(:lasgn, :y),
|
1781
1603
|
s(:block,
|
1782
1604
|
s(:call, nil, :puts,
|
1783
|
-
s(:
|
1784
|
-
s(:call, s(:lvar, :x),
|
1785
|
-
:to_s, s(:arglist)))),
|
1605
|
+
s(:call, s(:lvar, :x), :to_s)),
|
1786
1606
|
s(:call, nil, :puts,
|
1787
|
-
s(:
|
1788
|
-
s(:call, s(:lvar, :y),
|
1789
|
-
:to_s, s(:arglist)))))))))
|
1607
|
+
s(:call, s(:lvar, :y), :to_s)))))))
|
1790
1608
|
|
1791
1609
|
add_tests("iter_loop_empty",
|
1792
1610
|
"Ruby" => "loop { }",
|
1793
|
-
"ParseTree" => s(:iter, s(:call, nil, :loop
|
1611
|
+
"ParseTree" => s(:iter, s(:call, nil, :loop), nil))
|
1794
1612
|
|
1795
1613
|
add_tests("iter_masgn_2",
|
1796
1614
|
"Ruby" => "a { |b, c| p(c) }",
|
1797
1615
|
"ParseTree" => s(:iter,
|
1798
|
-
s(:call, nil, :a
|
1616
|
+
s(:call, nil, :a),
|
1799
1617
|
s(:masgn,
|
1800
1618
|
s(:array, s(:lasgn, :b), s(:lasgn, :c))),
|
1801
|
-
s(:call, nil, :p, s(:
|
1619
|
+
s(:call, nil, :p, s(:lvar, :c))))
|
1802
1620
|
|
1803
1621
|
add_tests("iter_masgn_args_splat",
|
1804
1622
|
"Ruby" => "a { |b, c, *d| p(c) }",
|
1805
1623
|
"ParseTree" => s(:iter,
|
1806
|
-
s(:call, nil, :a
|
1624
|
+
s(:call, nil, :a),
|
1807
1625
|
s(:masgn,
|
1808
1626
|
s(:array,
|
1809
1627
|
s(:lasgn, :b),
|
1810
1628
|
s(:lasgn, :c),
|
1811
1629
|
s(:splat, s(:lasgn, :d)))),
|
1812
|
-
s(:call, nil, :p, s(:
|
1630
|
+
s(:call, nil, :p, s(:lvar, :c))))
|
1813
1631
|
|
1814
1632
|
add_tests("iter_masgn_args_splat_no_name",
|
1815
1633
|
"Ruby" => "a { |b, c, *| p(c) }",
|
1816
1634
|
"ParseTree" => s(:iter,
|
1817
|
-
s(:call, nil, :a
|
1635
|
+
s(:call, nil, :a),
|
1818
1636
|
s(:masgn,
|
1819
1637
|
s(:array,
|
1820
1638
|
s(:lasgn, :b),
|
1821
1639
|
s(:lasgn, :c),
|
1822
1640
|
s(:splat))),
|
1823
|
-
s(:call, nil, :p, s(:
|
1641
|
+
s(:call, nil, :p, s(:lvar, :c))))
|
1824
1642
|
|
1825
1643
|
add_tests("iter_masgn_splat",
|
1826
1644
|
"Ruby" => "a { |*c| p(c) }",
|
1827
1645
|
"ParseTree" => s(:iter,
|
1828
|
-
s(:call, nil, :a
|
1646
|
+
s(:call, nil, :a),
|
1829
1647
|
s(:masgn, s(:array, s(:splat, s(:lasgn, :c)))),
|
1830
|
-
s(:call, nil, :p, s(:
|
1648
|
+
s(:call, nil, :p, s(:lvar, :c))))
|
1831
1649
|
|
1832
1650
|
add_tests("iter_masgn_splat_no_name",
|
1833
1651
|
"Ruby" => "a { |*| p(c) }",
|
1834
1652
|
"ParseTree" => s(:iter,
|
1835
|
-
s(:call, nil, :a
|
1653
|
+
s(:call, nil, :a),
|
1836
1654
|
s(:masgn, s(:array, s(:splat))),
|
1837
|
-
s(:call, nil, :p,
|
1838
|
-
s(:arglist, s(:call, nil, :c, s(:arglist))))))
|
1655
|
+
s(:call, nil, :p, s(:call, nil, :c))))
|
1839
1656
|
|
1840
1657
|
add_tests("iter_shadowed_var",
|
1841
1658
|
"Ruby" => "a do |x|\n b do |x|\n puts x\n end\nend",
|
1842
1659
|
"ParseTree" => s(:iter,
|
1843
|
-
s(:call, nil, :a
|
1660
|
+
s(:call, nil, :a),
|
1844
1661
|
s(:lasgn, :x),
|
1845
1662
|
s(:iter,
|
1846
|
-
s(:call, nil, :b
|
1663
|
+
s(:call, nil, :b),
|
1847
1664
|
s(:lasgn, :x),
|
1848
|
-
s(:call, nil, :puts,
|
1849
|
-
s(:arglist, s(:lvar, :x))))),
|
1665
|
+
s(:call, nil, :puts, s(:lvar, :x)))),
|
1850
1666
|
"Ruby2Ruby" => "a { |x| b { |x| puts(x) } }")
|
1851
1667
|
|
1852
1668
|
add_tests("iter_upto",
|
1853
1669
|
"Ruby" => "1.upto(3) { |n| puts(n.to_s) }",
|
1854
1670
|
"ParseTree" => s(:iter,
|
1855
|
-
s(:call, s(:lit, 1), :upto,
|
1856
|
-
s(:arglist, s(:lit, 3))),
|
1671
|
+
s(:call, s(:lit, 1), :upto, s(:lit, 3)),
|
1857
1672
|
s(:lasgn, :n),
|
1858
1673
|
s(:call, nil, :puts,
|
1859
|
-
s(:
|
1860
|
-
s(:call, s(:lvar, :n), :to_s,
|
1861
|
-
s(:arglist))))))
|
1674
|
+
s(:call, s(:lvar, :n), :to_s))))
|
1862
1675
|
|
1863
1676
|
add_tests("iter_while",
|
1864
1677
|
"Ruby" => "argl = 10\nwhile (argl >= 1) do\n puts(\"hello\")\n argl = (argl - 1)\nend\n",
|
1865
1678
|
"ParseTree" => s(:block,
|
1866
1679
|
s(:lasgn, :argl, s(:lit, 10)),
|
1867
1680
|
s(:while,
|
1868
|
-
s(:call, s(:lvar, :argl), :">=",
|
1869
|
-
s(:arglist, s(:lit, 1))),
|
1681
|
+
s(:call, s(:lvar, :argl), :">=", s(:lit, 1)),
|
1870
1682
|
s(:block,
|
1871
|
-
s(:call, nil, :puts,
|
1872
|
-
s(:arglist, s(:str, "hello"))),
|
1683
|
+
s(:call, nil, :puts, s(:str, "hello")),
|
1873
1684
|
s(:lasgn,
|
1874
1685
|
:argl,
|
1875
1686
|
s(:call, s(:lvar, :argl), :"-",
|
1876
|
-
s(:
|
1687
|
+
s(:lit, 1)))),
|
1688
|
+
true)))
|
1877
1689
|
|
1878
1690
|
add_tests("ivar",
|
1879
1691
|
"Ruby" => [Examples, :reader],
|
@@ -1891,8 +1703,8 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1891
1703
|
|
1892
1704
|
add_tests("lasgn_call",
|
1893
1705
|
"Ruby" => "c = (2 + 3)",
|
1894
|
-
"ParseTree" => s(:lasgn, :c,
|
1895
|
-
|
1706
|
+
"ParseTree" => s(:lasgn, :c,
|
1707
|
+
s(:call, s(:lit, 2), :+, s(:lit, 3))))
|
1896
1708
|
|
1897
1709
|
add_tests("lit_bool_false",
|
1898
1710
|
"Ruby" => "false",
|
@@ -1935,8 +1747,10 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1935
1747
|
|
1936
1748
|
add_tests("lit_regexp_i_wwtt",
|
1937
1749
|
"Ruby" => 'str.split(//i)',
|
1938
|
-
"ParseTree" => s(:call,
|
1939
|
-
s(:
|
1750
|
+
"ParseTree" => s(:call,
|
1751
|
+
s(:call, nil, :str),
|
1752
|
+
:split,
|
1753
|
+
s(:lit, //i)))
|
1940
1754
|
|
1941
1755
|
add_tests("lit_regexp_n",
|
1942
1756
|
"Ruby" => "/x/n", # HACK differs on 1.9 - this is easiest
|
@@ -1960,29 +1774,25 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
1960
1774
|
"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",
|
1961
1775
|
"ParseTree" => s(:block,
|
1962
1776
|
s(:lasgn, :b, s(:lit, 42)),
|
1963
|
-
s(:defn, :a,
|
1964
|
-
s(:
|
1965
|
-
|
1966
|
-
|
1967
|
-
|
1968
|
-
|
1969
|
-
|
1970
|
-
s(:
|
1971
|
-
s(:
|
1972
|
-
s(:
|
1973
|
-
|
1974
|
-
|
1975
|
-
s(:lasgn, :b, s(:gvar, :$!))),
|
1976
|
-
s(:call, nil, :puts,
|
1977
|
-
s(:arglist,
|
1978
|
-
s(:lvar, :b)))))))))))
|
1777
|
+
s(:defn, :a, s(:args),
|
1778
|
+
s(:iter,
|
1779
|
+
s(:call, nil, :c),
|
1780
|
+
nil,
|
1781
|
+
s(:rescue,
|
1782
|
+
s(:call, nil, :do_stuff),
|
1783
|
+
s(:resbody,
|
1784
|
+
s(:array,
|
1785
|
+
s(:const, :RuntimeError),
|
1786
|
+
s(:lasgn, :b, s(:gvar, :$!))),
|
1787
|
+
s(:call, nil, :puts,
|
1788
|
+
s(:lvar, :b))))))))
|
1979
1789
|
|
1980
1790
|
add_tests("masgn",
|
1981
1791
|
"Ruby" => "a, b = c, d",
|
1982
1792
|
"ParseTree" => s(:masgn,
|
1983
1793
|
s(:array, s(:lasgn, :a), s(:lasgn, :b)),
|
1984
|
-
s(:array, s(:call, nil, :c
|
1985
|
-
s(:call, nil, :d
|
1794
|
+
s(:array, s(:call, nil, :c),
|
1795
|
+
s(:call, nil, :d))))
|
1986
1796
|
|
1987
1797
|
add_tests("masgn_argscat",
|
1988
1798
|
"Ruby" => "a, b, *c = 1, 2, *[3, 4]",
|
@@ -2002,25 +1812,25 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2002
1812
|
s(:array,
|
2003
1813
|
s(:lasgn, :a),
|
2004
1814
|
s(:attrasgn,
|
2005
|
-
s(:call, nil, :b
|
2006
|
-
:c
|
1815
|
+
s(:call, nil, :b),
|
1816
|
+
:c=)),
|
2007
1817
|
s(:array,
|
2008
|
-
s(:call, nil, :d
|
2009
|
-
s(:call, nil, :e
|
1818
|
+
s(:call, nil, :d),
|
1819
|
+
s(:call, nil, :e))))
|
2010
1820
|
|
2011
1821
|
add_tests("masgn_attrasgn_array_rhs",
|
2012
1822
|
"Ruby" => "a.b, a.c, _ = q",
|
2013
1823
|
"ParseTree" => s(:masgn,
|
2014
1824
|
s(:array,
|
2015
1825
|
s(:attrasgn,
|
2016
|
-
s(:call, nil, :a
|
2017
|
-
:b
|
1826
|
+
s(:call, nil, :a),
|
1827
|
+
:b=),
|
2018
1828
|
s(:attrasgn,
|
2019
|
-
s(:call, nil, :a
|
2020
|
-
:c
|
1829
|
+
s(:call, nil, :a),
|
1830
|
+
:c=),
|
2021
1831
|
s(:lasgn, :_)),
|
2022
1832
|
s(:to_ary,
|
2023
|
-
s(:call, nil, :q
|
1833
|
+
s(:call, nil, :q))))
|
2024
1834
|
|
2025
1835
|
add_tests("masgn_attrasgn_idx",
|
2026
1836
|
"Ruby" => "a, i, j = [], 1, 2\na[i], a[j] = a[j], a[i]\n",
|
@@ -2032,15 +1842,15 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2032
1842
|
s(:array, s(:array), s(:lit, 1), s(:lit, 2))),
|
2033
1843
|
s(:masgn,
|
2034
1844
|
s(:array,
|
2035
|
-
s(:attrasgn,
|
2036
|
-
s(:
|
2037
|
-
s(:attrasgn,
|
2038
|
-
s(:
|
1845
|
+
s(:attrasgn,
|
1846
|
+
s(:lvar, :a), :[]=, s(:lvar, :i)),
|
1847
|
+
s(:attrasgn,
|
1848
|
+
s(:lvar, :a), :[]=, s(:lvar, :j))),
|
2039
1849
|
s(:array,
|
2040
|
-
s(:call,
|
2041
|
-
s(:
|
2042
|
-
s(:call,
|
2043
|
-
s(:
|
1850
|
+
s(:call,
|
1851
|
+
s(:lvar, :a), :[], s(:lvar, :j)),
|
1852
|
+
s(:call,
|
1853
|
+
s(:lvar, :a), :[], s(:lvar, :i))))))
|
2044
1854
|
|
2045
1855
|
add_tests("masgn_cdecl",
|
2046
1856
|
"Ruby" => "A, B, C = 1, 2, 3",
|
@@ -2055,8 +1865,8 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2055
1865
|
"ParseTree" => s(:masgn,
|
2056
1866
|
s(:array, s(:lasgn, :a), s(:iasgn, :"@b")),
|
2057
1867
|
s(:array,
|
2058
|
-
s(:call, nil, :c
|
2059
|
-
s(:call, nil, :d
|
1868
|
+
s(:call, nil, :c),
|
1869
|
+
s(:call, nil, :d))))
|
2060
1870
|
|
2061
1871
|
add_tests("masgn_masgn",
|
2062
1872
|
"Ruby" => "a, (b, c) = [1, [2, 3]]",
|
@@ -2082,10 +1892,10 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2082
1892
|
s(:lasgn, :b),
|
2083
1893
|
s(:splat, s(:lasgn, :c))),
|
2084
1894
|
s(:array,
|
2085
|
-
s(:call, nil, :d
|
2086
|
-
s(:call, nil, :e
|
2087
|
-
s(:call, nil, :f
|
2088
|
-
s(:call, nil, :g
|
1895
|
+
s(:call, nil, :d),
|
1896
|
+
s(:call, nil, :e),
|
1897
|
+
s(:call, nil, :f),
|
1898
|
+
s(:call, nil, :g))))
|
2089
1899
|
|
2090
1900
|
add_tests("masgn_splat_rhs_1",
|
2091
1901
|
"Ruby" => "a, b = *c",
|
@@ -2093,7 +1903,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2093
1903
|
s(:array,
|
2094
1904
|
s(:lasgn, :a),
|
2095
1905
|
s(:lasgn, :b)),
|
2096
|
-
s(:splat, s(:call, nil, :c
|
1906
|
+
s(:splat, s(:call, nil, :c))))
|
2097
1907
|
|
2098
1908
|
add_tests("masgn_splat_rhs_n",
|
2099
1909
|
"Ruby" => "a, b = c, d, *e",
|
@@ -2102,9 +1912,9 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2102
1912
|
s(:lasgn, :a),
|
2103
1913
|
s(:lasgn, :b)),
|
2104
1914
|
s(:array,
|
2105
|
-
s(:call, nil, :c
|
2106
|
-
s(:call, nil, :d
|
2107
|
-
s(:splat, s(:call, nil, :e
|
1915
|
+
s(:call, nil, :c),
|
1916
|
+
s(:call, nil, :d),
|
1917
|
+
s(:splat, s(:call, nil, :e)))))
|
2108
1918
|
|
2109
1919
|
add_tests("masgn_splat_no_name_to_ary",
|
2110
1920
|
"Ruby" => "a, b, * = c",
|
@@ -2113,13 +1923,13 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2113
1923
|
s(:lasgn, :a),
|
2114
1924
|
s(:lasgn, :b),
|
2115
1925
|
s(:splat)),
|
2116
|
-
s(:to_ary, s(:call, nil, :c
|
1926
|
+
s(:to_ary, s(:call, nil, :c))))
|
2117
1927
|
|
2118
1928
|
add_tests("masgn_splat_no_name_trailing",
|
2119
1929
|
"Ruby" => "a, b, = c",
|
2120
1930
|
"ParseTree" => s(:masgn,
|
2121
1931
|
s(:array, s(:lasgn, :a), s(:lasgn, :b)),
|
2122
|
-
s(:to_ary, s(:call, nil, :c
|
1932
|
+
s(:to_ary, s(:call, nil, :c))),
|
2123
1933
|
"Ruby2Ruby" => "a, b = c") # TODO: check this is right
|
2124
1934
|
|
2125
1935
|
add_tests("masgn_splat_to_ary",
|
@@ -2129,7 +1939,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2129
1939
|
s(:lasgn, :a),
|
2130
1940
|
s(:lasgn, :b),
|
2131
1941
|
s(:splat, s(:lasgn, :c))),
|
2132
|
-
s(:to_ary, s(:call, nil, :d
|
1942
|
+
s(:to_ary, s(:call, nil, :d))))
|
2133
1943
|
|
2134
1944
|
add_tests("masgn_splat_to_ary2",
|
2135
1945
|
"Ruby" => "a, b, *c = d.e(\"f\")",
|
@@ -2140,9 +1950,9 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2140
1950
|
s(:splat, s(:lasgn, :c))),
|
2141
1951
|
s(:to_ary,
|
2142
1952
|
s(:call,
|
2143
|
-
s(:call, nil, :d
|
1953
|
+
s(:call, nil, :d),
|
2144
1954
|
:e,
|
2145
|
-
s(:
|
1955
|
+
s(:str, 'f')))))
|
2146
1956
|
|
2147
1957
|
add_tests("match",
|
2148
1958
|
"Ruby" => "1 if /x/",
|
@@ -2159,33 +1969,29 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2159
1969
|
add_tests("module",
|
2160
1970
|
"Ruby" => "module X\n def y\n # do nothing\n end\nend",
|
2161
1971
|
"ParseTree" => s(:module, :X,
|
2162
|
-
s(:
|
2163
|
-
s(:defn, :y,
|
2164
|
-
s(:args),
|
2165
|
-
s(:scope, s(:block, s(:nil)))))))
|
1972
|
+
s(:defn, :y, s(:args), s(:nil))))
|
2166
1973
|
|
2167
1974
|
add_tests("module_scoped",
|
2168
1975
|
"Ruby" => "module X::Y\n c\nend",
|
2169
1976
|
"ParseTree" => s(:module, s(:colon2, s(:const, :X), :Y),
|
2170
|
-
s(:
|
1977
|
+
s(:call, nil, :c)))
|
2171
1978
|
|
2172
1979
|
add_tests("module_scoped3",
|
2173
1980
|
"Ruby" => "module ::Y\n c\nend",
|
2174
|
-
"ParseTree" => s(:module,
|
2175
|
-
s(:
|
2176
|
-
s(:scope, s(:call, nil, :c, s(:arglist)))))
|
1981
|
+
"ParseTree" => s(:module, s(:colon3, :Y),
|
1982
|
+
s(:call, nil, :c)))
|
2177
1983
|
|
2178
1984
|
add_tests("next",
|
2179
1985
|
"Ruby" => "loop { next if false }",
|
2180
1986
|
"ParseTree" => s(:iter,
|
2181
|
-
s(:call, nil, :loop
|
1987
|
+
s(:call, nil, :loop),
|
2182
1988
|
nil,
|
2183
1989
|
s(:if, s(:false), s(:next), nil)))
|
2184
1990
|
|
2185
1991
|
add_tests("next_arg",
|
2186
1992
|
"Ruby" => "loop { next 42 if false }",
|
2187
1993
|
"ParseTree" => s(:iter,
|
2188
|
-
s(:call, nil, :loop
|
1994
|
+
s(:call, nil, :loop),
|
2189
1995
|
nil,
|
2190
1996
|
s(:if, s(:false), s(:next, s(:lit, 42)), nil)))
|
2191
1997
|
|
@@ -2223,11 +2029,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2223
2029
|
"Ruby" => "s = Struct.new(:var)\nc = s.new(nil)\nc.var ||= 20\nc.var &&= 21\nc.var += 22\nc.d.e.f ||= 42\n",
|
2224
2030
|
"ParseTree" => s(:block,
|
2225
2031
|
s(:lasgn, :s,
|
2226
|
-
s(:call,
|
2227
|
-
|
2032
|
+
s(:call,
|
2033
|
+
s(:const, :Struct),
|
2034
|
+
:new,
|
2035
|
+
s(:lit, :var))),
|
2228
2036
|
s(:lasgn, :c,
|
2229
|
-
s(:call, s(:lvar, :s),
|
2230
|
-
:new, s(:arglist, s(:nil)))),
|
2037
|
+
s(:call, s(:lvar, :s), :new, s(:nil))),
|
2231
2038
|
s(:op_asgn2, s(:lvar, :c),
|
2232
2039
|
:var=, :"||", s(:lit, 20)),
|
2233
2040
|
s(:op_asgn2, s(:lvar, :c),
|
@@ -2236,14 +2043,14 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2236
2043
|
:var=, :+, s(:lit, 22)),
|
2237
2044
|
s(:op_asgn2,
|
2238
2045
|
s(:call,
|
2239
|
-
s(:call, s(:lvar, :c), :d
|
2240
|
-
:e
|
2046
|
+
s(:call, s(:lvar, :c), :d),
|
2047
|
+
:e),
|
2241
2048
|
:f=, :"||", s(:lit, 42))))
|
2242
2049
|
|
2243
2050
|
add_tests("op_asgn2_self",
|
2244
2051
|
"Ruby" => "self.Bag ||= Bag.new",
|
2245
2052
|
"ParseTree" => s(:op_asgn2, s(:self), :"Bag=", :"||",
|
2246
|
-
s(:call, s(:const, :Bag), :new
|
2053
|
+
s(:call, s(:const, :Bag), :new)))
|
2247
2054
|
|
2248
2055
|
add_tests("op_asgn_and",
|
2249
2056
|
"Ruby" => "a = 0\na &&= 2\n",
|
@@ -2260,13 +2067,10 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2260
2067
|
:@fetcher,
|
2261
2068
|
s(:call, nil,
|
2262
2069
|
:new,
|
2263
|
-
s(:
|
2264
|
-
s(:call,
|
2265
|
-
|
2266
|
-
|
2267
|
-
s(:arglist)),
|
2268
|
-
:[],
|
2269
|
-
s(:arglist, s(:lit, :http_proxy))))))))
|
2070
|
+
s(:call,
|
2071
|
+
s(:call, s(:const, :Gem), :configuration),
|
2072
|
+
:[],
|
2073
|
+
s(:lit, :http_proxy))))))
|
2270
2074
|
|
2271
2075
|
add_tests("op_asgn_or",
|
2272
2076
|
"Ruby" => "a = 0\na ||= 1\n",
|
@@ -2281,13 +2085,13 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2281
2085
|
s(:lvar, :a),
|
2282
2086
|
s(:lasgn, :a,
|
2283
2087
|
s(:rescue,
|
2284
|
-
s(:call, nil, :b
|
2088
|
+
s(:call, nil, :b),
|
2285
2089
|
s(:resbody, s(:array),
|
2286
|
-
s(:call, nil, :c
|
2090
|
+
s(:call, nil, :c))))),
|
2287
2091
|
"Ruby2Ruby" => "a ||= b rescue c")
|
2288
2092
|
|
2289
2093
|
add_tests("op_asgn_or_ivar",
|
2290
|
-
"Ruby" => "@v ||= {
|
2094
|
+
"Ruby" => "@v ||= {}",
|
2291
2095
|
"ParseTree" => s(:op_asgn_or,
|
2292
2096
|
s(:ivar, :@v),
|
2293
2097
|
s(:iasgn, :@v, s(:hash))))
|
@@ -2299,39 +2103,36 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2299
2103
|
s(:iasgn,
|
2300
2104
|
:@fetcher,
|
2301
2105
|
s(:call, nil, :new,
|
2302
|
-
s(:
|
2303
|
-
s(:call,
|
2304
|
-
|
2305
|
-
|
2306
|
-
s(:arglist)),
|
2307
|
-
:[],
|
2308
|
-
s(:arglist, s(:lit, :http_proxy))))))))
|
2106
|
+
s(:call,
|
2107
|
+
s(:call, s(:const, :Gem), :configuration),
|
2108
|
+
:[],
|
2109
|
+
s(:lit, :http_proxy))))))
|
2309
2110
|
|
2310
2111
|
add_tests("or",
|
2311
2112
|
"Ruby" => "(a or b)",
|
2312
2113
|
"ParseTree" => s(:or,
|
2313
|
-
s(:call, nil, :a
|
2314
|
-
s(:call, nil, :b
|
2114
|
+
s(:call, nil, :a),
|
2115
|
+
s(:call, nil, :b)))
|
2315
2116
|
|
2316
2117
|
add_tests("or_big",
|
2317
2118
|
"Ruby" => "((a or b) or (c and d))",
|
2318
2119
|
"ParseTree" => s(:or,
|
2319
2120
|
s(:or,
|
2320
|
-
s(:call, nil, :a
|
2321
|
-
s(:call, nil, :b
|
2121
|
+
s(:call, nil, :a),
|
2122
|
+
s(:call, nil, :b)),
|
2322
2123
|
s(:and,
|
2323
|
-
s(:call, nil, :c
|
2324
|
-
s(:call, nil, :d
|
2124
|
+
s(:call, nil, :c),
|
2125
|
+
s(:call, nil, :d))))
|
2325
2126
|
|
2326
2127
|
add_tests("or_big2",
|
2327
2128
|
"Ruby" => "((a || b) || (c && d))",
|
2328
2129
|
"ParseTree" => s(:or,
|
2329
2130
|
s(:or,
|
2330
|
-
s(:call, nil, :a
|
2331
|
-
s(:call, nil, :b
|
2131
|
+
s(:call, nil, :a),
|
2132
|
+
s(:call, nil, :b)),
|
2332
2133
|
s(:and,
|
2333
|
-
s(:call, nil, :c
|
2334
|
-
s(:call, nil, :d
|
2134
|
+
s(:call, nil, :c),
|
2135
|
+
s(:call, nil, :d))),
|
2335
2136
|
"Ruby2Ruby" => "((a or b) or (c and d))")
|
2336
2137
|
|
2337
2138
|
add_tests("parse_floats_as_args",
|
@@ -2341,10 +2142,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2341
2142
|
s(:block,
|
2342
2143
|
s(:lasgn, :a, s(:lit, 0.0)),
|
2343
2144
|
s(:lasgn, :b, s(:lit, 0.0)))),
|
2344
|
-
s(:
|
2345
|
-
s(:block,
|
2346
|
-
s(:call, s(:lvar, :a), :+,
|
2347
|
-
s(:arglist, s(:lvar, :b)))))),
|
2145
|
+
s(:call, s(:lvar, :a), :+, s(:lvar, :b))),
|
2348
2146
|
"Ruby2Ruby" => "def x(a = 0.0, b = 0.0)\n (a + b)\nend")
|
2349
2147
|
|
2350
2148
|
add_tests("postexe",
|
@@ -2354,44 +2152,38 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2354
2152
|
add_tests("proc_args_0",
|
2355
2153
|
"Ruby" => "proc { || (x + 1) }",
|
2356
2154
|
"ParseTree" => s(:iter,
|
2357
|
-
s(:call, nil, :proc
|
2155
|
+
s(:call, nil, :proc),
|
2358
2156
|
0,
|
2359
|
-
s(:call,
|
2360
|
-
s(:call, nil, :x, s(:arglist)),
|
2361
|
-
:+,
|
2362
|
-
s(:arglist, s(:lit, 1)))))
|
2157
|
+
s(:call, s(:call, nil, :x), :+, s(:lit, 1))))
|
2363
2158
|
|
2364
2159
|
add_tests("proc_args_1",
|
2365
2160
|
"Ruby" => "proc { |x| (x + 1) }",
|
2366
2161
|
"ParseTree" => s(:iter,
|
2367
|
-
s(:call, nil, :proc
|
2162
|
+
s(:call, nil, :proc),
|
2368
2163
|
s(:lasgn, :x),
|
2369
|
-
s(:call, s(:lvar, :x), :+,
|
2370
|
-
s(:arglist, s(:lit, 1)))))
|
2164
|
+
s(:call, s(:lvar, :x), :+, s(:lit, 1))))
|
2371
2165
|
|
2372
2166
|
add_tests("proc_args_2",
|
2373
2167
|
"Ruby" => "proc { |x, y| (x + y) }",
|
2374
2168
|
"ParseTree" => s(:iter,
|
2375
|
-
s(:call, nil, :proc
|
2169
|
+
s(:call, nil, :proc),
|
2376
2170
|
s(:masgn,
|
2377
2171
|
s(:array,
|
2378
2172
|
s(:lasgn, :x),
|
2379
2173
|
s(:lasgn, :y))),
|
2380
|
-
s(:call, s(:lvar, :x), :+,
|
2381
|
-
s(:arglist, s(:lvar, :y)))))
|
2174
|
+
s(:call, s(:lvar, :x), :+, s(:lvar, :y))))
|
2382
2175
|
|
2383
2176
|
add_tests("proc_args_no",
|
2384
2177
|
"Ruby" => "proc { (x + 1) }",
|
2385
2178
|
"ParseTree" => s(:iter,
|
2386
|
-
s(:call, nil, :proc
|
2179
|
+
s(:call, nil, :proc),
|
2387
2180
|
nil,
|
2388
|
-
s(:call, s(:call, nil, :x, s(:
|
2389
|
-
:+, s(:arglist, s(:lit, 1)))))
|
2181
|
+
s(:call, s(:call, nil, :x), :+, s(:lit, 1))))
|
2390
2182
|
|
2391
2183
|
add_tests("redo",
|
2392
2184
|
"Ruby" => "loop { redo if false }",
|
2393
2185
|
"ParseTree" => s(:iter,
|
2394
|
-
s(:call, nil, :loop
|
2186
|
+
s(:call, nil, :loop),
|
2395
2187
|
nil,
|
2396
2188
|
s(:if, s(:false), s(:redo), nil)))
|
2397
2189
|
|
@@ -2400,50 +2192,48 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2400
2192
|
add_tests("rescue",
|
2401
2193
|
"Ruby" => "blah rescue nil",
|
2402
2194
|
"ParseTree" => s(:rescue,
|
2403
|
-
s(:call, nil, :blah
|
2195
|
+
s(:call, nil, :blah),
|
2404
2196
|
s(:resbody, s(:array), s(:nil))))
|
2405
2197
|
|
2406
2198
|
add_tests("rescue_block_body",
|
2407
2199
|
"Ruby" => "begin\n a\nrescue => e\n c\n d\nend",
|
2408
2200
|
"ParseTree" => s(:rescue,
|
2409
|
-
s(:call, nil, :a
|
2201
|
+
s(:call, nil, :a),
|
2410
2202
|
s(:resbody,
|
2411
2203
|
s(:array, s(:lasgn, :e, s(:gvar, :$!))),
|
2412
|
-
s(:
|
2413
|
-
|
2414
|
-
s(:call, nil, :d, s(:arglist))))))
|
2204
|
+
s(:call, nil, :c),
|
2205
|
+
s(:call, nil, :d))))
|
2415
2206
|
|
2416
2207
|
add_tests("rescue_block_body_3",
|
2417
2208
|
"Ruby" => "begin\n a\nrescue A\n b\nrescue B\n c\nrescue C\n d\nend",
|
2418
2209
|
"ParseTree" => s(:rescue,
|
2419
|
-
s(:call, nil, :a
|
2210
|
+
s(:call, nil, :a),
|
2420
2211
|
s(:resbody, s(:array, s(:const, :A)),
|
2421
|
-
s(:call, nil, :b
|
2212
|
+
s(:call, nil, :b)),
|
2422
2213
|
s(:resbody, s(:array, s(:const, :B)),
|
2423
|
-
s(:call, nil, :c
|
2214
|
+
s(:call, nil, :c)),
|
2424
2215
|
s(:resbody, s(:array, s(:const, :C)),
|
2425
|
-
s(:call, nil, :d
|
2216
|
+
s(:call, nil, :d))))
|
2426
2217
|
|
2427
2218
|
add_tests("rescue_block_body_ivar",
|
2428
2219
|
"Ruby" => "begin\n a\nrescue => @e\n c\n d\nend",
|
2429
2220
|
"ParseTree" => s(:rescue,
|
2430
|
-
s(:call, nil, :a
|
2221
|
+
s(:call, nil, :a),
|
2431
2222
|
s(:resbody,
|
2432
2223
|
s(:array, s(:iasgn, :@e, s(:gvar, :$!))),
|
2433
|
-
s(:
|
2434
|
-
|
2435
|
-
s(:call, nil, :d, s(:arglist))))))
|
2224
|
+
s(:call, nil, :c),
|
2225
|
+
s(:call, nil, :d))))
|
2436
2226
|
|
2437
2227
|
add_tests("rescue_block_nada",
|
2438
2228
|
"Ruby" => "begin\n blah\nrescue\n # do nothing\nend",
|
2439
2229
|
"ParseTree" => s(:rescue,
|
2440
|
-
s(:call, nil, :blah
|
2230
|
+
s(:call, nil, :blah),
|
2441
2231
|
s(:resbody, s(:array), nil)))
|
2442
2232
|
|
2443
2233
|
add_tests("rescue_exceptions",
|
2444
2234
|
"Ruby" => "begin\n blah\nrescue RuntimeError => r\n # do nothing\nend",
|
2445
2235
|
"ParseTree" => s(:rescue,
|
2446
|
-
s(:call, nil, :blah
|
2236
|
+
s(:call, nil, :blah),
|
2447
2237
|
s(:resbody,
|
2448
2238
|
s(:array,
|
2449
2239
|
s(:const, :RuntimeError),
|
@@ -2508,26 +2298,20 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2508
2298
|
|
2509
2299
|
add_tests("sclass",
|
2510
2300
|
"Ruby" => "class << self\n 42\nend",
|
2511
|
-
"ParseTree" => s(:sclass, s(:self), s(:
|
2301
|
+
"ParseTree" => s(:sclass, s(:self), s(:lit, 42)))
|
2512
2302
|
|
2513
2303
|
add_tests("sclass_trailing_class",
|
2514
|
-
"Ruby" => "class A\n class << self\n a\n end\n class B\n end\nend",
|
2304
|
+
"Ruby" => "class A\n class << self\n a\n end\n \n class B\n end\nend",
|
2515
2305
|
"ParseTree" => s(:class, :A, nil,
|
2516
|
-
s(:
|
2517
|
-
s(:
|
2518
|
-
|
2519
|
-
s(:scope,
|
2520
|
-
s(:call, nil, :a, s(:arglist)))),
|
2521
|
-
s(:class, :B, nil, s(:scope))))))
|
2306
|
+
s(:sclass, s(:self),
|
2307
|
+
s(:call, nil, :a)),
|
2308
|
+
s(:class, :B, nil)))
|
2522
2309
|
|
2523
2310
|
add_tests("splat",
|
2524
2311
|
"Ruby" => "def x(*b)\n a(*b)\nend",
|
2525
2312
|
"ParseTree" => s(:defn, :x,
|
2526
2313
|
s(:args, :"*b"),
|
2527
|
-
s(:
|
2528
|
-
s(:block,
|
2529
|
-
s(:call, nil, :a,
|
2530
|
-
s(:arglist, s(:splat, s(:lvar, :b))))))))
|
2314
|
+
s(:call, nil, :a, s(:splat, s(:lvar, :b)))))
|
2531
2315
|
|
2532
2316
|
add_tests("splat_array",
|
2533
2317
|
"Ruby" => "[*[1]]",
|
@@ -2543,14 +2327,15 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2543
2327
|
|
2544
2328
|
add_tests("splat_fcall",
|
2545
2329
|
"Ruby" => "meth(*[1])",
|
2546
|
-
"ParseTree" => s(:call,
|
2547
|
-
|
2330
|
+
"ParseTree" => s(:call,
|
2331
|
+
nil,
|
2332
|
+
:meth,
|
2333
|
+
s(:splat, s(:array, s(:lit, 1)))))
|
2548
2334
|
|
2549
2335
|
add_tests("splat_fcall_array",
|
2550
2336
|
"Ruby" => "meth([*[1]])",
|
2551
2337
|
"ParseTree" => s(:call, nil, :meth,
|
2552
|
-
|
2553
|
-
s(:array, s(:splat, s(:array, s(:lit, 1)))))))
|
2338
|
+
s(:array, s(:splat, s(:array, s(:lit, 1))))))
|
2554
2339
|
|
2555
2340
|
add_tests("splat_lasgn",
|
2556
2341
|
"Ruby" => "x = *[1]",
|
@@ -2624,7 +2409,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2624
2409
|
add_tests("str_heredoc_call",
|
2625
2410
|
"Ruby" => "<<'EOM'.strip\n blah\nblah\nEOM",
|
2626
2411
|
"ParseTree" => s(:call, s(:str, " blah\nblah\n"),
|
2627
|
-
:strip
|
2412
|
+
:strip),
|
2628
2413
|
"Ruby2Ruby" => "\" blah\\nblah\\n\".strip")
|
2629
2414
|
|
2630
2415
|
add_tests("str_heredoc_double",
|
@@ -2633,13 +2418,13 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2633
2418
|
s(:call,
|
2634
2419
|
s(:lvar, :a),
|
2635
2420
|
:+,
|
2636
|
-
s(:
|
2421
|
+
s(:call,
|
2637
2422
|
s(:call,
|
2638
|
-
s(:
|
2639
|
-
s(:arglist,
|
2640
|
-
s(:call, nil, :b, s(:arglist)))),
|
2423
|
+
s(:str, " first\n"),
|
2641
2424
|
:+,
|
2642
|
-
s(:
|
2425
|
+
s(:call, nil, :b)),
|
2426
|
+
:+,
|
2427
|
+
s(:str, " second\n")))),
|
2643
2428
|
"Ruby2Ruby" => "a = (a + ((\" first\\n\" + b) + \" second\\n\"))")
|
2644
2429
|
|
2645
2430
|
add_tests("str_heredoc_empty", # yes... tarded
|
@@ -2661,19 +2446,18 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2661
2446
|
"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",
|
2662
2447
|
"ParseTree" => s(:iter,
|
2663
2448
|
s(:call,
|
2664
|
-
s(:call, nil, :a
|
2665
|
-
:b
|
2449
|
+
s(:call, nil, :a),
|
2450
|
+
:b),
|
2666
2451
|
s(:masgn, s(:array,
|
2667
2452
|
s(:lasgn, :c),
|
2668
2453
|
s(:lasgn, :d))),
|
2669
2454
|
s(:if,
|
2670
|
-
s(:call, s(:call, nil, :e, s(:
|
2671
|
-
s(:arglist, s(:lvar, :c))),
|
2455
|
+
s(:call, s(:call, nil, :e), :f, s(:lvar, :c)),
|
2672
2456
|
nil,
|
2673
2457
|
s(:block,
|
2674
2458
|
s(:lasgn, :g, s(:false)),
|
2675
2459
|
s(:iter,
|
2676
|
-
s(:call, s(:lvar, :d), :h
|
2460
|
+
s(:call, s(:lvar, :d), :h),
|
2677
2461
|
s(:masgn, s(:array,
|
2678
2462
|
s(:lasgn, :x),
|
2679
2463
|
s(:lasgn, :i))),
|
@@ -2681,12 +2465,11 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2681
2465
|
|
2682
2466
|
add_tests("structure_remove_begin_1",
|
2683
2467
|
"Ruby" => "a << begin\n b\n rescue\n c\n end",
|
2684
|
-
"ParseTree" => s(:call, s(:call, nil, :a
|
2685
|
-
s(:
|
2686
|
-
s(:
|
2687
|
-
|
2688
|
-
s(:
|
2689
|
-
s(:call, nil, :c, s(:arglist)))))),
|
2468
|
+
"ParseTree" => s(:call, s(:call, nil, :a), :<<,
|
2469
|
+
s(:rescue,
|
2470
|
+
s(:call, nil, :b),
|
2471
|
+
s(:resbody, s(:array),
|
2472
|
+
s(:call, nil, :c)))),
|
2690
2473
|
"Ruby2Ruby" => "(a << b rescue c)")
|
2691
2474
|
|
2692
2475
|
add_tests("structure_remove_begin_2",
|
@@ -2694,8 +2477,8 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2694
2477
|
"ParseTree" => s(:block,
|
2695
2478
|
s(:lasgn,
|
2696
2479
|
:a,
|
2697
|
-
s(:if, s(:call, nil, :c
|
2698
|
-
s(:rescue, s(:call, nil, :b
|
2480
|
+
s(:if, s(:call, nil, :c),
|
2481
|
+
s(:rescue, s(:call, nil, :b),
|
2699
2482
|
s(:resbody,
|
2700
2483
|
s(:array), s(:nil))),
|
2701
2484
|
nil)),
|
@@ -2704,65 +2487,52 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2704
2487
|
|
2705
2488
|
add_tests("structure_unused_literal_wwtt",
|
2706
2489
|
"Ruby" => "\"prevent the above from infecting rdoc\"\n\nmodule Graffle\nend",
|
2707
|
-
"ParseTree" => s(:module, :Graffle
|
2490
|
+
"ParseTree" => s(:module, :Graffle),
|
2708
2491
|
"Ruby2Ruby" => "module Graffle\nend")
|
2709
2492
|
|
2710
2493
|
add_tests("super_0",
|
2711
2494
|
"Ruby" => "def x\n super()\nend",
|
2712
|
-
"ParseTree" => s(:defn, :x,
|
2713
|
-
s(:args),
|
2714
|
-
s(:scope, s(:block, s(:super)))))
|
2495
|
+
"ParseTree" => s(:defn, :x, s(:args), s(:super)))
|
2715
2496
|
|
2716
2497
|
add_tests("super_1",
|
2717
2498
|
"Ruby" => "def x\n super(4)\nend",
|
2718
|
-
"ParseTree" => s(:defn, :x,
|
2719
|
-
s(:
|
2720
|
-
s(:scope,
|
2721
|
-
s(:block,
|
2722
|
-
s(:super, s(:lit, 4))))))
|
2499
|
+
"ParseTree" => s(:defn, :x, s(:args),
|
2500
|
+
s(:super, s(:lit, 4))))
|
2723
2501
|
|
2724
2502
|
add_tests("super_1_array",
|
2725
2503
|
"Ruby" => "def x\n super([24, 42])\nend",
|
2726
|
-
"ParseTree" => s(:defn, :x,
|
2727
|
-
s(:
|
2728
|
-
|
2729
|
-
s(:block,
|
2730
|
-
s(:super, s(:array,
|
2731
|
-
s(:lit, 24),
|
2732
|
-
s(:lit, 42)))))))
|
2733
|
-
|
2504
|
+
"ParseTree" => s(:defn, :x, s(:args),
|
2505
|
+
s(:super, s(:array, s(:lit, 24), s(:lit, 42)))))
|
2506
|
+
|
2734
2507
|
add_tests("super_block_pass",
|
2735
2508
|
"Ruby" => "super(a, &b)",
|
2736
2509
|
"ParseTree" => s(:super,
|
2737
|
-
s(:call, nil, :a
|
2510
|
+
s(:call, nil, :a),
|
2738
2511
|
s(:block_pass,
|
2739
|
-
s(:call, nil, :b
|
2512
|
+
s(:call, nil, :b))))
|
2740
2513
|
|
2741
2514
|
add_tests("super_block_splat",
|
2742
2515
|
"Ruby" => "super(a, *b)",
|
2743
2516
|
"ParseTree" => s(:super,
|
2744
|
-
s(:call, nil, :a
|
2745
|
-
s(:splat, s(:call, nil, :b
|
2517
|
+
s(:call, nil, :a),
|
2518
|
+
s(:splat, s(:call, nil, :b))))
|
2746
2519
|
|
2747
2520
|
add_tests("super_n",
|
2748
2521
|
"Ruby" => "def x\n super(24, 42)\nend",
|
2749
|
-
"ParseTree" => s(:defn, :x,
|
2750
|
-
s(:
|
2751
|
-
s(:scope,
|
2752
|
-
s(:block,
|
2753
|
-
s(:super, s(:lit, 24), s(:lit, 42))))))
|
2522
|
+
"ParseTree" => s(:defn, :x, s(:args),
|
2523
|
+
s(:super, s(:lit, 24), s(:lit, 42))))
|
2754
2524
|
|
2755
2525
|
add_tests("svalue",
|
2756
2526
|
"Ruby" => "a = *b",
|
2757
2527
|
"ParseTree" => s(:lasgn, :a,
|
2758
2528
|
s(:svalue,
|
2759
|
-
s(:splat, s(:call, nil, :b
|
2529
|
+
s(:splat, s(:call, nil, :b)))))
|
2760
2530
|
|
2761
2531
|
add_tests("to_ary",
|
2762
2532
|
"Ruby" => "a, b = c",
|
2763
2533
|
"ParseTree" => s(:masgn,
|
2764
2534
|
s(:array, s(:lasgn, :a), s(:lasgn, :b)),
|
2765
|
-
s(:to_ary, s(:call, nil, :c
|
2535
|
+
s(:to_ary, s(:call, nil, :c))))
|
2766
2536
|
|
2767
2537
|
add_tests("true",
|
2768
2538
|
"Ruby" => "true",
|
@@ -2790,13 +2560,13 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2790
2560
|
add_tests("undef_block_1",
|
2791
2561
|
"Ruby" => "f1\nundef :x\n", # TODO: don't like the extra return
|
2792
2562
|
"ParseTree" => s(:block,
|
2793
|
-
s(:call, nil, :f1
|
2563
|
+
s(:call, nil, :f1),
|
2794
2564
|
s(:undef, s(:lit, :x))))
|
2795
2565
|
|
2796
2566
|
add_tests("undef_block_2",
|
2797
2567
|
"Ruby" => "f1\nundef :x, :y",
|
2798
2568
|
"ParseTree" => s(:block,
|
2799
|
-
s(:call, nil, :f1
|
2569
|
+
s(:call, nil, :f1),
|
2800
2570
|
s(:block,
|
2801
2571
|
s(:undef, s(:lit, :x)),
|
2802
2572
|
s(:undef, s(:lit, :y)))),
|
@@ -2805,7 +2575,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2805
2575
|
add_tests("undef_block_3",
|
2806
2576
|
"Ruby" => "f1\nundef :x, :y, :z",
|
2807
2577
|
"ParseTree" => s(:block,
|
2808
|
-
s(:call, nil, :f1
|
2578
|
+
s(:call, nil, :f1),
|
2809
2579
|
s(:block,
|
2810
2580
|
s(:undef, s(:lit, :x)),
|
2811
2581
|
s(:undef, s(:lit, :y)),
|
@@ -2818,82 +2588,76 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2818
2588
|
s(:undef, s(:lit, :x)),
|
2819
2589
|
s(:undef, s(:lit, :y)),
|
2820
2590
|
s(:undef, s(:lit, :z)),
|
2821
|
-
s(:call, nil, :f2
|
2591
|
+
s(:call, nil, :f2)),
|
2822
2592
|
"Ruby2Ruby" => "undef :x\nundef :y\nundef :z\nf2\n")
|
2823
2593
|
|
2824
2594
|
add_tests("undef_block_wtf",
|
2825
2595
|
"Ruby" => "f1\nundef :x, :y, :z\nf2",
|
2826
2596
|
"ParseTree" => s(:block,
|
2827
|
-
s(:call, nil, :f1
|
2597
|
+
s(:call, nil, :f1),
|
2828
2598
|
s(:block,
|
2829
2599
|
s(:undef, s(:lit, :x)),
|
2830
2600
|
s(:undef, s(:lit, :y)),
|
2831
2601
|
s(:undef, s(:lit, :z))),
|
2832
|
-
s(:call, nil, :f2
|
2602
|
+
s(:call, nil, :f2)),
|
2833
2603
|
"Ruby2Ruby" => "f1\n(undef :x\nundef :y\nundef :z)\nf2\n")
|
2834
2604
|
|
2835
2605
|
|
2836
2606
|
add_tests("unless_post",
|
2837
2607
|
"Ruby" => "a unless b",
|
2838
|
-
"ParseTree" => s(:if, s(:call, nil, :b
|
2839
|
-
s(:call, nil, :a
|
2608
|
+
"ParseTree" => s(:if, s(:call, nil, :b), nil,
|
2609
|
+
s(:call, nil, :a)))
|
2840
2610
|
|
2841
2611
|
add_tests("unless_post_not",
|
2842
2612
|
"Ruby" => "a unless not b",
|
2843
|
-
"ParseTree" => s(:if, s(:call, nil, :b
|
2844
|
-
s(:call, nil, :a
|
2613
|
+
"ParseTree" => s(:if, s(:call, nil, :b),
|
2614
|
+
s(:call, nil, :a), nil),
|
2845
2615
|
"Ruby2Ruby" => "a if b")
|
2846
2616
|
|
2847
2617
|
add_tests("unless_pre",
|
2848
2618
|
"Ruby" => "unless b then a end",
|
2849
|
-
"ParseTree" => s(:if, s(:call, nil, :b
|
2850
|
-
s(:call, nil, :a
|
2619
|
+
"ParseTree" => s(:if, s(:call, nil, :b), nil,
|
2620
|
+
s(:call, nil, :a)),
|
2851
2621
|
"Ruby2Ruby" => "a unless b")
|
2852
2622
|
|
2853
2623
|
add_tests("unless_pre_not",
|
2854
2624
|
"Ruby" => "unless not b then a end",
|
2855
|
-
"ParseTree" => s(:if, s(:call, nil, :b
|
2856
|
-
s(:call, nil, :a
|
2625
|
+
"ParseTree" => s(:if, s(:call, nil, :b),
|
2626
|
+
s(:call, nil, :a), nil),
|
2857
2627
|
"Ruby2Ruby" => "a if b")
|
2858
2628
|
|
2859
2629
|
add_tests("until_post",
|
2860
2630
|
"Ruby" => "begin\n (1 + 1)\nend until false",
|
2861
2631
|
"ParseTree" => s(:until, s(:false),
|
2862
|
-
s(:call, s(:lit, 1), :+,
|
2863
|
-
s(:arglist, s(:lit, 1))), false))
|
2632
|
+
s(:call, s(:lit, 1), :+, s(:lit, 1)), false))
|
2864
2633
|
|
2865
2634
|
add_tests("until_post_not",
|
2866
2635
|
"Ruby" => "begin\n (1 + 1)\nend until not true",
|
2867
2636
|
"ParseTree" => s(:while, s(:true),
|
2868
|
-
s(:call, s(:lit, 1), :+,
|
2869
|
-
s(:arglist, s(:lit, 1))), false),
|
2637
|
+
s(:call, s(:lit, 1), :+, s(:lit, 1)), false),
|
2870
2638
|
"Ruby2Ruby" => "begin\n (1 + 1)\nend while true")
|
2871
2639
|
|
2872
2640
|
add_tests("until_pre",
|
2873
2641
|
"Ruby" => "until false do\n (1 + 1)\nend",
|
2874
2642
|
"ParseTree" => s(:until, s(:false),
|
2875
|
-
s(:call, s(:lit, 1), :+,
|
2876
|
-
s(:arglist, s(:lit, 1))), true))
|
2643
|
+
s(:call, s(:lit, 1), :+, s(:lit, 1)), true))
|
2877
2644
|
|
2878
2645
|
add_tests("until_pre_mod",
|
2879
2646
|
"Ruby" => "(1 + 1) until false",
|
2880
2647
|
"ParseTree" => s(:until, s(:false),
|
2881
|
-
s(:call, s(:lit, 1), :+,
|
2882
|
-
s(:arglist, s(:lit, 1))), true),
|
2648
|
+
s(:call, s(:lit, 1), :+, s(:lit, 1)), true),
|
2883
2649
|
"Ruby2Ruby" => "until false do\n (1 + 1)\nend")
|
2884
2650
|
|
2885
2651
|
add_tests("until_pre_not",
|
2886
2652
|
"Ruby" => "until not true do\n (1 + 1)\nend",
|
2887
2653
|
"ParseTree" => s(:while, s(:true),
|
2888
|
-
s(:call, s(:lit, 1), :+,
|
2889
|
-
s(:arglist, s(:lit, 1))), true),
|
2654
|
+
s(:call, s(:lit, 1), :+, s(:lit, 1)), true),
|
2890
2655
|
"Ruby2Ruby" => "while true do\n (1 + 1)\nend")
|
2891
2656
|
|
2892
2657
|
add_tests("until_pre_not_mod",
|
2893
2658
|
"Ruby" => "(1 + 1) until not true",
|
2894
2659
|
"ParseTree" => s(:while, s(:true),
|
2895
|
-
s(:call, s(:lit, 1), :+,
|
2896
|
-
s(:arglist, s(:lit, 1))), true),
|
2660
|
+
s(:call, s(:lit, 1), :+, s(:lit, 1)), true),
|
2897
2661
|
"Ruby2Ruby" => "while true do\n (1 + 1)\nend")
|
2898
2662
|
|
2899
2663
|
add_tests("valias",
|
@@ -2902,42 +2666,36 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2902
2666
|
|
2903
2667
|
add_tests("vcall",
|
2904
2668
|
"Ruby" => "method",
|
2905
|
-
"ParseTree" => s(:call, nil, :method
|
2669
|
+
"ParseTree" => s(:call, nil, :method))
|
2906
2670
|
|
2907
2671
|
add_tests("while_post",
|
2908
2672
|
"Ruby" => "begin\n (1 + 1)\nend while false",
|
2909
2673
|
"ParseTree" => s(:while, s(:false),
|
2910
|
-
s(:call, s(:lit, 1), :+,
|
2911
|
-
s(:arglist, s(:lit, 1))), false))
|
2674
|
+
s(:call, s(:lit, 1), :+, s(:lit, 1)), false))
|
2912
2675
|
|
2913
2676
|
add_tests("while_post2",
|
2914
2677
|
"Ruby" => "begin\n (1 + 2)\n (3 + 4)\nend while false",
|
2915
2678
|
"ParseTree" => s(:while, s(:false),
|
2916
2679
|
s(:block,
|
2917
|
-
s(:call, s(:lit, 1), :+,
|
2918
|
-
|
2919
|
-
s(:call, s(:lit, 3), :+,
|
2920
|
-
s(:arglist, s(:lit, 4)))),
|
2680
|
+
s(:call, s(:lit, 1), :+, s(:lit, 2)),
|
2681
|
+
s(:call, s(:lit, 3), :+, s(:lit, 4))),
|
2921
2682
|
false))
|
2922
2683
|
|
2923
2684
|
add_tests("while_post_not",
|
2924
2685
|
"Ruby" => "begin\n (1 + 1)\nend while not true",
|
2925
2686
|
"ParseTree" => s(:until, s(:true),
|
2926
|
-
s(:call, s(:lit, 1), :+,
|
2927
|
-
s(:arglist, s(:lit, 1))), false),
|
2687
|
+
s(:call, s(:lit, 1), :+, s(:lit, 1)), false),
|
2928
2688
|
"Ruby2Ruby" => "begin\n (1 + 1)\nend until true")
|
2929
2689
|
|
2930
2690
|
add_tests("while_pre",
|
2931
2691
|
"Ruby" => "while false do\n (1 + 1)\nend",
|
2932
2692
|
"ParseTree" => s(:while, s(:false),
|
2933
|
-
s(:call, s(:lit, 1), :+,
|
2934
|
-
s(:arglist, s(:lit, 1))), true))
|
2693
|
+
s(:call, s(:lit, 1), :+, s(:lit, 1)), true))
|
2935
2694
|
|
2936
2695
|
add_tests("while_pre_mod",
|
2937
2696
|
"Ruby" => "(1 + 1) while false",
|
2938
2697
|
"ParseTree" => s(:while, s(:false),
|
2939
|
-
s(:call, s(:lit, 1), :+,
|
2940
|
-
s(:arglist, s(:lit, 1))), true),
|
2698
|
+
s(:call, s(:lit, 1), :+, s(:lit, 1)), true),
|
2941
2699
|
"Ruby2Ruby" => "while false do\n (1 + 1)\nend") # FIX can be one liner
|
2942
2700
|
|
2943
2701
|
add_tests("while_pre_nil",
|
@@ -2947,15 +2705,13 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2947
2705
|
add_tests("while_pre_not",
|
2948
2706
|
"Ruby" => "while not true do\n (1 + 1)\nend",
|
2949
2707
|
"ParseTree" => s(:until, s(:true),
|
2950
|
-
s(:call, s(:lit, 1), :+,
|
2951
|
-
s(:arglist, s(:lit, 1))), true),
|
2708
|
+
s(:call, s(:lit, 1), :+, s(:lit, 1)), true),
|
2952
2709
|
"Ruby2Ruby" => "until true do\n (1 + 1)\nend")
|
2953
2710
|
|
2954
2711
|
add_tests("while_pre_not_mod",
|
2955
2712
|
"Ruby" => "(1 + 1) while not true",
|
2956
2713
|
"ParseTree" => s(:until, s(:true),
|
2957
|
-
s(:call, s(:lit, 1), :+,
|
2958
|
-
s(:arglist, s(:lit, 1))), true),
|
2714
|
+
s(:call, s(:lit, 1), :+, s(:lit, 1)), true),
|
2959
2715
|
"Ruby2Ruby" => "until true do\n (1 + 1)\nend") # FIX
|
2960
2716
|
|
2961
2717
|
add_tests("xstr",
|
@@ -2992,28 +2748,27 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
2992
2748
|
|
2993
2749
|
add_tests("zsuper",
|
2994
2750
|
"Ruby" => "def x\n super\nend",
|
2995
|
-
"ParseTree" => s(:defn, :x, s(:args),
|
2996
|
-
s(:scope, s(:block, s(:zsuper)))))
|
2751
|
+
"ParseTree" => s(:defn, :x, s(:args), s(:zsuper)))
|
2997
2752
|
|
2998
2753
|
add_18tests("if_args_no_space_symbol",
|
2999
2754
|
"Ruby" => "x if y:z",
|
3000
2755
|
"ParseTree" => s(:if,
|
3001
|
-
s(:call, nil, :y,
|
3002
|
-
s(:call, nil, :x
|
2756
|
+
s(:call, nil, :y, s(:lit, :z)),
|
2757
|
+
s(:call, nil, :x),
|
3003
2758
|
nil),
|
3004
2759
|
"Ruby2Ruby" => "x if y(:z)")
|
3005
2760
|
|
3006
2761
|
add_18tests("iter_args_ivar",
|
3007
2762
|
"Ruby" => "a { |@a| 42 }",
|
3008
2763
|
"ParseTree" => s(:iter,
|
3009
|
-
s(:call, nil, :a
|
2764
|
+
s(:call, nil, :a),
|
3010
2765
|
s(:iasgn, :@a),
|
3011
2766
|
s(:lit, 42)))
|
3012
2767
|
|
3013
2768
|
add_18tests("iter_masgn_args_ivar",
|
3014
2769
|
"Ruby" => "a { |a, @b| 42 }",
|
3015
2770
|
"ParseTree" => s(:iter,
|
3016
|
-
s(:call, nil, :a
|
2771
|
+
s(:call, nil, :a),
|
3017
2772
|
s(:masgn,
|
3018
2773
|
s(:array, s(:lasgn, :a), s(:iasgn, :@b))),
|
3019
2774
|
s(:lit, 42)))
|
@@ -3052,38 +2807,38 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3052
2807
|
add_19tests("call_arglist_norm_hash_colons",
|
3053
2808
|
"Ruby" => "o.m(42, a: 1, b: 2)",
|
3054
2809
|
"ParseTree" => s(:call,
|
3055
|
-
s(:call, nil, :o
|
2810
|
+
s(:call, nil, :o),
|
3056
2811
|
:m,
|
3057
|
-
s(:
|
3058
|
-
|
3059
|
-
s(:
|
3060
|
-
|
3061
|
-
s(:lit, :b), s(:lit, 2)))))
|
2812
|
+
s(:lit, 42),
|
2813
|
+
s(:hash,
|
2814
|
+
s(:lit, :a), s(:lit, 1),
|
2815
|
+
s(:lit, :b), s(:lit, 2))))
|
3062
2816
|
|
3063
2817
|
add_19tests("call_arglist_trailing_comma",
|
3064
2818
|
"Ruby" => "a(1,2,3,)",
|
3065
|
-
|
3066
|
-
|
3067
|
-
|
2819
|
+
"ParseTree" => s(:call,
|
2820
|
+
nil,
|
2821
|
+
:a,
|
2822
|
+
s(:lit, 1), s(:lit, 2), s(:lit, 3)))
|
3068
2823
|
|
3069
2824
|
add_19tests("call_not_equal",
|
3070
2825
|
"Ruby" => "a != b",
|
3071
2826
|
"ParseTree" => s(:call,
|
3072
|
-
s(:call, nil, :a
|
2827
|
+
s(:call, nil, :a),
|
3073
2828
|
:"!=",
|
3074
|
-
s(:
|
2829
|
+
s(:call, nil, :b)))
|
3075
2830
|
|
3076
2831
|
add_19tests("call_unary_not",
|
3077
2832
|
"Ruby" => "!a",
|
3078
2833
|
"ParseTree" => s(:call,
|
3079
|
-
s(:call, nil, :a
|
3080
|
-
:"!@"
|
2834
|
+
s(:call, nil, :a),
|
2835
|
+
:"!@"))
|
3081
2836
|
|
3082
2837
|
add_19tests("defn_args_splat_mand",
|
3083
2838
|
"Ruby" => "def f(*rest, mand)\n # do nothing\nend",
|
3084
2839
|
"ParseTree" => s(:defn, :f,
|
3085
2840
|
s(:args, :"*rest", :mand),
|
3086
|
-
s(:
|
2841
|
+
s(:nil)))
|
3087
2842
|
|
3088
2843
|
add_19tests("defn_args_mand_opt_splat_mand",
|
3089
2844
|
"Ruby" => "def f(mand1, opt = 42, *rest, mand2)\n # do nothing\nend",
|
@@ -3091,7 +2846,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3091
2846
|
s(:args, :mand1, :opt, :"*rest", :mand2,
|
3092
2847
|
s(:block,
|
3093
2848
|
s(:lasgn, :opt, s(:lit, 42)))),
|
3094
|
-
s(:
|
2849
|
+
s(:nil)))
|
3095
2850
|
|
3096
2851
|
add_19tests("defn_args_mand_opt_mand",
|
3097
2852
|
"Ruby" => "def f(mand1, opt = 42, mand2)\n # do nothing\nend",
|
@@ -3099,7 +2854,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3099
2854
|
s(:args, :mand1, :opt, :mand2,
|
3100
2855
|
s(:block,
|
3101
2856
|
s(:lasgn, :opt, s(:lit, 42)))),
|
3102
|
-
s(:
|
2857
|
+
s(:nil)))
|
3103
2858
|
|
3104
2859
|
add_19tests("defn_args_opt_splat_mand",
|
3105
2860
|
"Ruby" => "def f(opt = 42, *rest, mand)\n # do nothing\nend",
|
@@ -3107,7 +2862,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3107
2862
|
s(:args, :opt, :"*rest", :mand,
|
3108
2863
|
s(:block,
|
3109
2864
|
s(:lasgn, :opt, s(:lit, 42)))),
|
3110
|
-
s(:
|
2865
|
+
s(:nil)))
|
3111
2866
|
|
3112
2867
|
add_19tests("defn_args_opt_mand",
|
3113
2868
|
"Ruby" => "def f(opt = 42, mand)\n # do nothing\nend",
|
@@ -3115,21 +2870,20 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3115
2870
|
s(:args, :opt, :mand,
|
3116
2871
|
s(:block,
|
3117
2872
|
s(:lasgn, :opt, s(:lit, 42)))),
|
3118
|
-
s(:
|
2873
|
+
s(:nil)))
|
3119
2874
|
|
3120
2875
|
add_19tests("defn_args_splat_middle",
|
3121
2876
|
"Ruby" => "def f(first, *middle, last)\n # do nothing\nend",
|
3122
2877
|
"ParseTree" => s(:defn, :f,
|
3123
2878
|
s(:args, :first, :"*middle", :last),
|
3124
|
-
s(:
|
2879
|
+
s(:nil)))
|
3125
2880
|
|
3126
2881
|
add_19tests("fcall_arglist_hash_colons",
|
3127
2882
|
"Ruby" => "m(a: 1, b: 2)",
|
3128
2883
|
"ParseTree" => s(:call, nil, :m,
|
3129
|
-
s(:
|
3130
|
-
s(:
|
3131
|
-
|
3132
|
-
s(:lit, :b), s(:lit, 2)))))
|
2884
|
+
s(:hash,
|
2885
|
+
s(:lit, :a), s(:lit, 1),
|
2886
|
+
s(:lit, :b), s(:lit, 2))))
|
3133
2887
|
|
3134
2888
|
add_19tests("hash_new",
|
3135
2889
|
"Ruby" => "{ a: 1, b: 2 }",
|
@@ -3146,14 +2900,14 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3146
2900
|
add_tests("lambda_args_anon_star",
|
3147
2901
|
"Ruby" => "lambda { |*| nil }",
|
3148
2902
|
"ParseTree" => s(:iter,
|
3149
|
-
s(:call, nil, :lambda
|
2903
|
+
s(:call, nil, :lambda),
|
3150
2904
|
s(:masgn, s(:array, s(:splat))),
|
3151
2905
|
s(:nil)))
|
3152
2906
|
|
3153
2907
|
add_tests("lambda_args_anon_star_block",
|
3154
2908
|
"Ruby" => "lambda { |*, &block| block }",
|
3155
2909
|
"ParseTree" => s(:iter,
|
3156
|
-
s(:call, nil, :lambda
|
2910
|
+
s(:call, nil, :lambda),
|
3157
2911
|
s(:masgn, s(:array,
|
3158
2912
|
s(:splat),
|
3159
2913
|
s(:lasgn, :"&block"))),
|
@@ -3162,14 +2916,14 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3162
2916
|
add_tests("lambda_args_block",
|
3163
2917
|
"Ruby" => "lambda { |&block| block }",
|
3164
2918
|
"ParseTree" => s(:iter,
|
3165
|
-
s(:call, nil, :lambda
|
2919
|
+
s(:call, nil, :lambda),
|
3166
2920
|
s(:lasgn, :"&block"),
|
3167
2921
|
s(:lvar, :block)))
|
3168
2922
|
|
3169
2923
|
add_tests("lambda_args_norm_anon_star",
|
3170
2924
|
"Ruby" => "lambda { |a, *| a }",
|
3171
2925
|
"ParseTree" => s(:iter,
|
3172
|
-
s(:call, nil, :lambda
|
2926
|
+
s(:call, nil, :lambda),
|
3173
2927
|
s(:masgn, s(:array,
|
3174
2928
|
s(:lasgn, :a),
|
3175
2929
|
s(:splat))),
|
@@ -3178,7 +2932,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3178
2932
|
add_tests("lambda_args_norm_anon_star_block",
|
3179
2933
|
"Ruby" => "lambda { |a, *, &block| block }",
|
3180
2934
|
"ParseTree" => s(:iter,
|
3181
|
-
s(:call, nil, :lambda
|
2935
|
+
s(:call, nil, :lambda),
|
3182
2936
|
s(:masgn, s(:array,
|
3183
2937
|
s(:lasgn, :a),
|
3184
2938
|
s(:splat),
|
@@ -3188,7 +2942,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3188
2942
|
add_tests("lambda_args_norm_block",
|
3189
2943
|
"Ruby" => "lambda { |a, &block| block }",
|
3190
2944
|
"ParseTree" => s(:iter,
|
3191
|
-
s(:call, nil, :lambda
|
2945
|
+
s(:call, nil, :lambda),
|
3192
2946
|
s(:masgn, s(:array,
|
3193
2947
|
s(:lasgn, :a),
|
3194
2948
|
s(:lasgn, :"&block"))),
|
@@ -3197,7 +2951,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3197
2951
|
add_tests("lambda_args_norm_comma",
|
3198
2952
|
"Ruby" => "lambda { |a,| a }",
|
3199
2953
|
"ParseTree" => s(:iter,
|
3200
|
-
s(:call, nil, :lambda
|
2954
|
+
s(:call, nil, :lambda),
|
3201
2955
|
s(:lasgn, :a),
|
3202
2956
|
s(:lvar, :a)),
|
3203
2957
|
"Ruby2Ruby" => "lambda { |a| a }")
|
@@ -3205,7 +2959,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3205
2959
|
add_tests("lambda_args_norm_comma2",
|
3206
2960
|
"Ruby" => "lambda { |a,b,| a }",
|
3207
2961
|
"ParseTree" => s(:iter,
|
3208
|
-
s(:call, nil, :lambda
|
2962
|
+
s(:call, nil, :lambda),
|
3209
2963
|
s(:masgn,
|
3210
2964
|
s(:array, s(:lasgn, :a), s(:lasgn, :b))),
|
3211
2965
|
s(:lvar, :a)),
|
@@ -3214,7 +2968,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3214
2968
|
add_tests("lambda_args_norm_star",
|
3215
2969
|
"Ruby" => "lambda { |a, *star| star }",
|
3216
2970
|
"ParseTree" => s(:iter,
|
3217
|
-
s(:call, nil, :lambda
|
2971
|
+
s(:call, nil, :lambda),
|
3218
2972
|
s(:masgn, s(:array,
|
3219
2973
|
s(:lasgn, :a),
|
3220
2974
|
s(:splat, s(:lasgn, :star)))),
|
@@ -3223,7 +2977,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3223
2977
|
add_tests("lambda_args_norm_star_block",
|
3224
2978
|
"Ruby" => "lambda { |a, *star, &block| block }",
|
3225
2979
|
"ParseTree" => s(:iter,
|
3226
|
-
s(:call, nil, :lambda
|
2980
|
+
s(:call, nil, :lambda),
|
3227
2981
|
s(:masgn, s(:array,
|
3228
2982
|
s(:lasgn, :a),
|
3229
2983
|
s(:splat, s(:lasgn, :star)),
|
@@ -3233,7 +2987,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3233
2987
|
add_tests("lambda_args_star",
|
3234
2988
|
"Ruby" => "lambda { |*star| star }",
|
3235
2989
|
"ParseTree" => s(:iter,
|
3236
|
-
s(:call, nil, :lambda
|
2990
|
+
s(:call, nil, :lambda),
|
3237
2991
|
s(:masgn, s(:array,
|
3238
2992
|
s(:splat, s(:lasgn, :star)))),
|
3239
2993
|
s(:lvar, :star)))
|
@@ -3241,7 +2995,7 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3241
2995
|
add_tests("lambda_args_star_block",
|
3242
2996
|
"Ruby" => "lambda { |*star, &block| block }",
|
3243
2997
|
"ParseTree" => s(:iter,
|
3244
|
-
s(:call, nil, :lambda
|
2998
|
+
s(:call, nil, :lambda),
|
3245
2999
|
s(:masgn, s(:array,
|
3246
3000
|
s(:splat, s(:lasgn, :star)),
|
3247
3001
|
s(:lasgn, :"&block"))),
|
@@ -3257,10 +3011,9 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3257
3011
|
|
3258
3012
|
add19_edgecases("lambda { (x + 1) }",
|
3259
3013
|
s(:iter,
|
3260
|
-
s(:call, nil, :lambda
|
3014
|
+
s(:call, nil, :lambda),
|
3261
3015
|
0,
|
3262
|
-
s(:call, s(:call, nil, :x, s(:
|
3263
|
-
:+, s(:arglist, s(:lit, 1)))),
|
3016
|
+
s(:call, s(:call, nil, :x), :+, s(:lit, 1))),
|
3264
3017
|
"stabby_args_0" => "->() { (x + 1) }",
|
3265
3018
|
"stabby_args_0_doend" => "->() do (x + 1) end",
|
3266
3019
|
"stabby_args_0_no_parens" => "-> { (x + 1) }",
|
@@ -3269,9 +3022,9 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3269
3022
|
|
3270
3023
|
add19_edgecases("lambda { |x| (x + 1) }",
|
3271
3024
|
s(:iter,
|
3272
|
-
s(:call, nil, :lambda
|
3025
|
+
s(:call, nil, :lambda),
|
3273
3026
|
s(:lasgn, :x),
|
3274
|
-
s(:call, s(:lvar, :x), :+, s(:
|
3027
|
+
s(:call, s(:lvar, :x), :+, s(:lit, 1))),
|
3275
3028
|
"stabby_args_1" => "->(x) { (x + 1) }",
|
3276
3029
|
"stabby_args_1_doend" => "->(x) do (x + 1) end",
|
3277
3030
|
"stabby_args_1_no_parens" => "-> x { (x + 1) }",
|
@@ -3279,13 +3032,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3279
3032
|
|
3280
3033
|
add19_edgecases("lambda { |x, y| (x + y) }",
|
3281
3034
|
s(:iter,
|
3282
|
-
s(:call, nil, :lambda
|
3035
|
+
s(:call, nil, :lambda),
|
3283
3036
|
s(:masgn,
|
3284
3037
|
s(:array,
|
3285
3038
|
s(:lasgn, :x),
|
3286
3039
|
s(:lasgn, :y))),
|
3287
|
-
s(:call, s(:lvar, :x), :+,
|
3288
|
-
s(:arglist, s(:lvar, :y)))),
|
3040
|
+
s(:call, s(:lvar, :x), :+, s(:lvar, :y))),
|
3289
3041
|
"stabby_args_2" => "->(x, y) { (x + y) }",
|
3290
3042
|
"stabby_args_2_doend" => "->(x, y) do (x + y) end",
|
3291
3043
|
"stabby_args_2_no_parens" => "-> x, y { (x + y) }",
|
@@ -3299,11 +3051,12 @@ class ParseTreeTestCase < MiniTest::Unit::TestCase
|
|
3299
3051
|
|
3300
3052
|
add_19tests("splat_fcall_middle",
|
3301
3053
|
"Ruby" => "meth(1, *[2], 3)",
|
3302
|
-
"ParseTree" => s(:call,
|
3303
|
-
|
3304
|
-
|
3305
|
-
|
3306
|
-
|
3054
|
+
"ParseTree" => s(:call,
|
3055
|
+
nil,
|
3056
|
+
:meth,
|
3057
|
+
s(:lit, 1),
|
3058
|
+
s(:splat, s(:array, s(:lit, 2))),
|
3059
|
+
s(:lit, 3)))
|
3307
3060
|
|
3308
3061
|
add_19tests("str_question_control",
|
3309
3062
|
"Ruby" => '?\M-\C-a',
|