summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorKevin Newton <kddnewton@gmail.com>2025-01-07 22:49:46 -0500
committergit <svn-admin@ruby-lang.org>2025-01-08 20:36:06 +0000
commitc4534c9fe88259de9509e4b75fb6afc31a1f00a7 (patch)
tree13c7e7fb7647152821446e6f0005ae3129f758ad /test
parent36b6625ba9ccaa0ab88dd56b3f41c70e161f3df0 (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.rb29
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