diff options
| author | Kevin Newton <kddnewton@gmail.com> | 2025-01-07 22:49:46 -0500 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2025-01-08 20:36:06 +0000 |
| commit | c4534c9fe88259de9509e4b75fb6afc31a1f00a7 (patch) | |
| tree | 13c7e7fb7647152821446e6f0005ae3129f758ad /test | |
| parent | 36b6625ba9ccaa0ab88dd56b3f41c70e161f3df0 (diff) | |
[ruby/prism] Handle escapes in named capture names
https://github.com/ruby/prism/commit/b4b7a69ce7
Diffstat (limited to 'test')
| -rw-r--r-- | test/prism/result/named_capture_test.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/prism/result/named_capture_test.rb b/test/prism/result/named_capture_test.rb new file mode 100644 index 0000000000..36cb910899 --- /dev/null +++ b/test/prism/result/named_capture_test.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +require_relative "../test_helper" + +module Prism + class NamedCaptureTest < TestCase + def test_hex_escapes + assert_equal :😀, parse_name("\\xf0\\x9f\\x98\\x80") + end + + def test_unicode_escape + assert_equal :し, parse_name("\\u3057") + end + + def test_unicode_escapes_bracess + assert_equal :😀, parse_name("\\u{1f600}") + end + + def test_octal_escapes + assert_equal :😀, parse_name("\\xf0\\x9f\\x98\\200") + end + + private + + def parse_name(content) + Prism.parse_statement("/(?<#{content}>)/ =~ ''").targets.first.name + end + end +end |
