Skip to content

Commit 75d4331

Browse files
committed
Fix rational when parsing non decimal integer
1 parent 2a7bd0c commit 75d4331

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

lib/prism/node_ext.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def value
8181
class RationalNode < Node
8282
# Returns the value of the node as a Ruby Rational.
8383
def value
84-
Rational(slice.chomp("r"))
84+
Rational(numeric.is_a?(IntegerNode) && !numeric.decimal? ? numeric.value : slice.chomp("r"))
8585
end
8686
end
8787

test/prism/ruby_api_test.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ def test_literal_value_method
5757
assert_equal 0.5r, parse_expression("0.5r").value
5858
assert_equal 42ri, parse_expression("42ri").value
5959
assert_equal 0.5ri, parse_expression("0.5ri").value
60+
assert_equal 0xFFr, parse_expression("0xFFr").value
61+
assert_equal 0xFFri, parse_expression("0xFFri").value
6062
end
6163

6264
def test_location_join

0 commit comments

Comments
 (0)