@@ -441,8 +441,36 @@ def instance_method(
441
441
[ " puts value\n " , true , false , 3 ] ,
442
442
[ "end\n " , false , false , 4 ] ,
443
443
[ "array.each {\n puts \" an item\" \n }\n " , false , false , 5 ] ,
444
- [ "begin\n puts \" another\" \n rescue Exception => err\n puts err\n end\n " , false , false , 8 ] ,
445
- [ "begin; puts \" in begin\" \n rescue; puts \" in rescue\" \n end\n " , false , false , 13 ] ,
444
+ [ "begin\n " , false , true , 8 ] ,
445
+ [ " puts \" another\" \n " , true , true , 9 ] ,
446
+ [ "rescue Exception => err\n " , false , true , 10 ] ,
447
+ [ " puts err\n " , true , true , 11 ] ,
448
+ [ "end\n " , false , false , 12 ] ,
449
+ [ "begin; puts \" in begin\" \n " , false , true , 13 ] ,
450
+ [ "rescue; puts \" in rescue\" \n " , false , true , 14 ] ,
451
+ [ "end\n " , false , false , 15 ] ,
452
+ )
453
+ end
454
+
455
+ it "handles complex structures between methods" do
456
+ text = <<~DOC
457
+ def method1
458
+ a = "part1" +
459
+ "part2"
460
+ end
461
+
462
+ def method2
463
+ a = 5
464
+ end
465
+ DOC
466
+ expect { |b | @lex . each_lexed_segment ( text , &b ) } . to yield_successive_args (
467
+ [ "def method1\n " , false , false , 1 ] ,
468
+ [ " a = \" part1\" +\n \" part2\" \n " , true , false , 2 ] ,
469
+ [ "end\n " , false , false , 4 ] ,
470
+ [ "\n " , true , false , 5 ] ,
471
+ [ "def method2\n " , false , false , 6 ] ,
472
+ [ " a = 5\n " , true , false , 7 ] ,
473
+ [ "end\n " , false , false , 8 ] ,
446
474
)
447
475
end
448
476
0 commit comments