@@ -1450,26 +1450,28 @@ def exc.backtrace_locations = []
14501450 RubyVM ::AbstractSyntaxTree . node_id_for_backtrace_location ( exc . backtrace_locations . first )
14511451 end
14521452
1453- WRONG_NUMBER_OF_ARGUMENTS_LIENO = __LINE__ + 1
1453+ def process_callee_snippet ( str )
1454+ return str if MethodDefLocationSupported
1455+
1456+ str . sub ( /\n +\| .*\n +\^ +\n \z / , "" )
1457+ end
1458+
1459+ WRONG_NUMBER_OF_ARGUMENTS_LINENO = __LINE__ + 1
14541460 def wrong_number_of_arguments_test ( x , y )
14551461 x + y
14561462 end
14571463
14581464 def test_wrong_number_of_arguments_for_method
14591465 lineno = __LINE__
1460- assert_error_message ( ArgumentError , <<~END ) do
1466+ assert_error_message ( ArgumentError , process_callee_snippet ( <<~END ) ) do
14611467wrong number of arguments (given 1, expected 2) (ArgumentError)
14621468
1463- caller: #{ __FILE__ } :#{ lineno + 16 }
1469+ caller: #{ __FILE__ } :#{ lineno + 12 }
14641470 | wrong_number_of_arguments_test(1)
14651471 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1466- callee: #{ __FILE__ } :#{ WRONG_NUMBER_OF_ARGUMENTS_LIENO }
1467- #{
1468- MethodDefLocationSupported ?
1469- "| def wrong_number_of_arguments_test(x, y)
1470- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" :
1471- "(cannot highlight method definition; try Ruby 4.0 or later)"
1472- }
1472+ callee: #{ __FILE__ } :#{ WRONG_NUMBER_OF_ARGUMENTS_LINENO }
1473+ | def wrong_number_of_arguments_test(x, y)
1474+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
14731475 END
14741476
14751477 wrong_number_of_arguments_test ( 1 )
@@ -1483,19 +1485,15 @@ def keyword_test(kw1:, kw2:, kw3:)
14831485
14841486 def test_missing_keyword
14851487 lineno = __LINE__
1486- assert_error_message ( ArgumentError , <<~END ) do
1488+ assert_error_message ( ArgumentError , process_callee_snippet ( <<~END ) ) do
14871489missing keyword: :kw3 (ArgumentError)
14881490
1489- caller: #{ __FILE__ } :#{ lineno + 16 }
1491+ caller: #{ __FILE__ } :#{ lineno + 12 }
14901492 | keyword_test(kw1: 1, kw2: 2)
14911493 ^^^^^^^^^^^^
14921494 callee: #{ __FILE__ } :#{ KEYWORD_TEST_LINENO }
1493- #{
1494- MethodDefLocationSupported ?
1495- "| def keyword_test(kw1:, kw2:, kw3:)
1496- ^^^^^^^^^^^^" :
1497- "(cannot highlight method definition; try Ruby 4.0 or later)"
1498- }
1495+ | def keyword_test(kw1:, kw2:, kw3:)
1496+ ^^^^^^^^^^^^
14991497 END
15001498
15011499 keyword_test ( kw1 : 1 , kw2 : 2 )
@@ -1504,19 +1502,15 @@ def test_missing_keyword
15041502
15051503 def test_missing_keywords # multiple missing keywords
15061504 lineno = __LINE__
1507- assert_error_message ( ArgumentError , <<~END ) do
1505+ assert_error_message ( ArgumentError , process_callee_snippet ( <<~END ) ) do
15081506missing keywords: :kw2, :kw3 (ArgumentError)
15091507
1510- caller: #{ __FILE__ } :#{ lineno + 16 }
1508+ caller: #{ __FILE__ } :#{ lineno + 12 }
15111509 | keyword_test(kw1: 1)
15121510 ^^^^^^^^^^^^
15131511 callee: #{ __FILE__ } :#{ KEYWORD_TEST_LINENO }
1514- #{
1515- MethodDefLocationSupported ?
1516- "| def keyword_test(kw1:, kw2:, kw3:)
1517- ^^^^^^^^^^^^" :
1518- "(cannot highlight method definition; try Ruby 4.0 or later)"
1519- }
1512+ | def keyword_test(kw1:, kw2:, kw3:)
1513+ ^^^^^^^^^^^^
15201514 END
15211515
15221516 keyword_test ( kw1 : 1 )
@@ -1525,19 +1519,15 @@ def test_missing_keywords # multiple missing keywords
15251519
15261520 def test_unknown_keyword
15271521 lineno = __LINE__
1528- assert_error_message ( ArgumentError , <<~END ) do
1522+ assert_error_message ( ArgumentError , process_callee_snippet ( <<~END ) ) do
15291523unknown keyword: :kw4 (ArgumentError)
15301524
1531- caller: #{ __FILE__ } :#{ lineno + 16 }
1525+ caller: #{ __FILE__ } :#{ lineno + 12 }
15321526 | keyword_test(kw1: 1, kw2: 2, kw3: 3, kw4: 4)
15331527 ^^^^^^^^^^^^
15341528 callee: #{ __FILE__ } :#{ KEYWORD_TEST_LINENO }
1535- #{
1536- MethodDefLocationSupported ?
1537- "| def keyword_test(kw1:, kw2:, kw3:)
1538- ^^^^^^^^^^^^" :
1539- "(cannot highlight method definition; try Ruby 4.0 or later)"
1540- }
1529+ | def keyword_test(kw1:, kw2:, kw3:)
1530+ ^^^^^^^^^^^^
15411531 END
15421532
15431533 keyword_test ( kw1 : 1 , kw2 : 2 , kw3 : 3 , kw4 : 4 )
@@ -1546,19 +1536,15 @@ def test_unknown_keyword
15461536
15471537 def test_unknown_keywords
15481538 lineno = __LINE__
1549- assert_error_message ( ArgumentError , <<~END ) do
1539+ assert_error_message ( ArgumentError , process_callee_snippet ( <<~END ) ) do
15501540unknown keywords: :kw4, :kw5 (ArgumentError)
15511541
1552- caller: #{ __FILE__ } :#{ lineno + 16 }
1542+ caller: #{ __FILE__ } :#{ lineno + 12 }
15531543 | keyword_test(kw1: 1, kw2: 2, kw3: 3, kw4: 4, kw5: 5)
15541544 ^^^^^^^^^^^^
15551545 callee: #{ __FILE__ } :#{ KEYWORD_TEST_LINENO }
1556- #{
1557- MethodDefLocationSupported ?
1558- "| def keyword_test(kw1:, kw2:, kw3:)
1559- ^^^^^^^^^^^^" :
1560- "(cannot highlight method definition; try Ruby 4.0 or later)"
1561- }
1546+ | def keyword_test(kw1:, kw2:, kw3:)
1547+ ^^^^^^^^^^^^
15621548 END
15631549
15641550 keyword_test ( kw1 : 1 , kw2 : 2 , kw3 : 3 , kw4 : 4 , kw5 : 5 )
@@ -1576,19 +1562,15 @@ def wrong_number_of_arguments_test2(
15761562
15771563 def test_wrong_number_of_arguments_for_method2
15781564 lineno = __LINE__
1579- assert_error_message ( ArgumentError , <<~END ) do
1565+ assert_error_message ( ArgumentError , process_callee_snippet ( <<~END ) ) do
15801566wrong number of arguments (given 1, expected 3) (ArgumentError)
15811567
1582- caller: #{ __FILE__ } :#{ lineno + 16 }
1568+ caller: #{ __FILE__ } :#{ lineno + 12 }
15831569 | wrong_number_of_arguments_test2(1)
15841570 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
15851571 callee: #{ __FILE__ } :#{ WRONG_NUBMER_OF_ARGUMENTS_TEST2_LINENO }
1586- #{
1587- MethodDefLocationSupported ?
1588- "| def wrong_number_of_arguments_test2(
1589- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" :
1590- "(cannot highlight method definition; try Ruby 4.0 or later)"
1591- }
1572+ | def wrong_number_of_arguments_test2(
1573+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
15921574 END
15931575
15941576 wrong_number_of_arguments_test2 ( 1 )
@@ -1598,19 +1580,15 @@ def test_wrong_number_of_arguments_for_method2
15981580 def test_wrong_number_of_arguments_for_lambda_literal
15991581 v = -> { }
16001582 lineno = __LINE__
1601- assert_error_message ( ArgumentError , <<~END ) do
1583+ assert_error_message ( ArgumentError , process_callee_snippet ( <<~END ) ) do
16021584wrong number of arguments (given 1, expected 0) (ArgumentError)
16031585
1604- caller: #{ __FILE__ } :#{ lineno + 16 }
1586+ caller: #{ __FILE__ } :#{ lineno + 12 }
16051587 | v.call(1)
16061588 ^^^^^
16071589 callee: #{ __FILE__ } :#{ lineno - 1 }
1608- #{
1609- MethodDefLocationSupported ?
1610- "| v = -> {}
1611- ^^" :
1612- "(cannot highlight method definition; try Ruby 4.0 or later)"
1613- }
1590+ | v = -> {}
1591+ ^^
16141592 END
16151593
16161594 v . call ( 1 )
@@ -1620,19 +1598,15 @@ def test_wrong_number_of_arguments_for_lambda_literal
16201598 def test_wrong_number_of_arguments_for_lambda_method
16211599 v = lambda { }
16221600 lineno = __LINE__
1623- assert_error_message ( ArgumentError , <<~END ) do
1601+ assert_error_message ( ArgumentError , process_callee_snippet ( <<~END ) ) do
16241602wrong number of arguments (given 1, expected 0) (ArgumentError)
16251603
1626- caller: #{ __FILE__ } :#{ lineno + 16 }
1604+ caller: #{ __FILE__ } :#{ lineno + 12 }
16271605 | v.call(1)
16281606 ^^^^^
16291607 callee: #{ __FILE__ } :#{ lineno - 1 }
1630- #{
1631- MethodDefLocationSupported ?
1632- "| v = lambda { }
1633- ^" :
1634- "(cannot highlight method definition; try Ruby 4.0 or later)"
1635- }
1608+ | v = lambda { }
1609+ ^
16361610 END
16371611
16381612 v . call ( 1 )
@@ -1646,19 +1620,15 @@ def test_wrong_number_of_arguments_for_lambda_method
16461620
16471621 def test_wrong_number_of_arguments_for_define_method
16481622 lineno = __LINE__
1649- assert_error_message ( ArgumentError , <<~END ) do
1623+ assert_error_message ( ArgumentError , process_callee_snippet ( <<~END ) ) do
16501624wrong number of arguments (given 1, expected 2) (ArgumentError)
16511625
1652- caller: #{ __FILE__ } :#{ lineno + 16 }
1626+ caller: #{ __FILE__ } :#{ lineno + 12 }
16531627 | define_method_test(1)
16541628 ^^^^^^^^^^^^^^^^^^
16551629 callee: #{ __FILE__ } :#{ DEFINE_METHOD_TEST_LINENO }
1656- #{
1657- MethodDefLocationSupported ?
1658- "| define_method :define_method_test do |x, y|
1659- ^^" :
1660- "(cannot highlight method definition; try Ruby 4.0 or later)"
1661- }
1630+ | define_method :define_method_test do |x, y|
1631+ ^^
16621632 END
16631633
16641634 define_method_test ( 1 )
@@ -1742,19 +1712,15 @@ def self . baz(x:)
17421712
17431713 def test_singleton_method_with_spacing_missing_keyword
17441714 lineno = __LINE__
1745- assert_error_message ( ArgumentError , <<~END ) do
1715+ assert_error_message ( ArgumentError , process_callee_snippet ( <<~END ) ) do
17461716missing keyword: :x (ArgumentError)
17471717
1748- caller: #{ __FILE__ } :#{ lineno + 16 }
1718+ caller: #{ __FILE__ } :#{ lineno + 12 }
17491719 | SingletonMethodWithSpacing.baz
17501720 ^^^^
17511721 callee: #{ __FILE__ } :#{ SingletonMethodWithSpacing ::LINENO }
1752- #{
1753- MethodDefLocationSupported ?
1754- "| def self . baz(x:)
1755- ^^^^^" :
1756- "(cannot highlight method definition; try Ruby 4.0 or later)"
1757- }
1722+ | def self . baz(x:)
1723+ ^^^^^
17581724 END
17591725
17601726 SingletonMethodWithSpacing . baz
@@ -1770,19 +1736,15 @@ def self.run(shop_id:, param1:)
17701736
17711737 def test_singleton_method_multiple_missing_keywords
17721738 lineno = __LINE__
1773- assert_error_message ( ArgumentError , <<~END ) do
1739+ assert_error_message ( ArgumentError , process_callee_snippet ( <<~END ) ) do
17741740missing keywords: :shop_id, :param1 (ArgumentError)
17751741
1776- caller: #{ __FILE__ } :#{ lineno + 16 }
1742+ caller: #{ __FILE__ } :#{ lineno + 12 }
17771743 | SingletonMethodMultipleKwargs.run
17781744 ^^^^
17791745 callee: #{ __FILE__ } :#{ SingletonMethodMultipleKwargs ::LINENO }
1780- #{
1781- MethodDefLocationSupported ?
1782- "| def self.run(shop_id:, param1:)
1783- ^^^^" :
1784- "(cannot highlight method definition; try Ruby 4.0 or later)"
1785- }
1746+ | def self.run(shop_id:, param1:)
1747+ ^^^^
17861748 END
17871749
17881750 SingletonMethodMultipleKwargs . run
0 commit comments