diff options
| author | Haldun Bayhantopcu <haldun@github.com> | 2024-02-01 08:09:56 +0100 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2024-02-01 16:48:09 +0000 |
| commit | 67c5690a6d29e861fcb8522dc4213f9d26d3aab6 (patch) | |
| tree | 52c282a733a26d57be236b34b63513355b9c3ac5 /test | |
| parent | f36c61d27fcdc47d4aa34e8a3b52590aac08bb69 (diff) | |
[ruby/prism] Check literals for receiver
https://github.com/ruby/prism/commit/56441b08e7
Diffstat (limited to 'test')
| -rw-r--r-- | test/prism/errors_test.rb | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/test/prism/errors_test.rb b/test/prism/errors_test.rb index 62e72ea16a..c65fff5167 100644 --- a/test/prism/errors_test.rb +++ b/test/prism/errors_test.rb @@ -2087,6 +2087,52 @@ module Prism assert_errors expression(source), source, errors, compare_ripper: false end + def test_singleton_method_for_literals + source = <<~'RUBY' + def (1).g; end + def ((a; 1)).foo; end + def ((return; 1)).bar; end + def (((1))).foo; end + def (__FILE__).foo; end + def (__ENCODING__).foo; end + def (__LINE__).foo; end + def ("foo").foo; end + def (3.14).foo; end + def (3.14i).foo; end + def (:foo).foo; end + def (:'foo').foo; end + def (:'f{o}').foo; end + def ('foo').foo; end + def ("foo").foo; end + def ("#{fo}o").foo; end + def (/foo/).foo; end + def (/f#{oo}/).foo; end + def ([1]).foo; end + RUBY + errors = [ + ["cannot define singleton method for literals", 5..6], + ["cannot define singleton method for literals", 24..25], + ["cannot define singleton method for literals", 51..52], + ["cannot define singleton method for literals", 71..72], + ["cannot define singleton method for literals", 90..98], + ["cannot define singleton method for literals", 114..126], + ["cannot define singleton method for literals", 142..150], + ["cannot define singleton method for literals", 166..171], + ["cannot define singleton method for literals", 187..191], + ["cannot define singleton method for literals", 207..212], + ["cannot define singleton method for literals", 228..232], + ["cannot define singleton method for literals", 248..254], + ["cannot define singleton method for literals", 270..277], + ["cannot define singleton method for literals", 293..298], + ["cannot define singleton method for literals", 314..319], + ["cannot define singleton method for literals", 335..343], + ["cannot define singleton method for literals", 359..364], + ["cannot define singleton method for literals", 380..388], + ["cannot define singleton method for literals", 404..407] + ] + assert_errors expression(source), source, errors, compare_ripper: false + end + private def assert_errors(expected, source, errors, compare_ripper: RUBY_ENGINE == "ruby") |
