[ruby/prism] Fix rational when parsing non decimal integer

https://github.com/ruby/prism/commit/75d4331f7f
This commit is contained in:
Kevin Newton 2024-01-03 12:05:15 -05:00 committed by git
parent 0215965df4
commit 3a3fcf56d0
2 changed files with 3 additions and 1 deletions

View File

@ -81,7 +81,7 @@ module Prism
class RationalNode < Node
# Returns the value of the node as a Ruby Rational.
def value
Rational(slice.chomp("r"))
Rational(numeric.is_a?(IntegerNode) && !numeric.decimal? ? numeric.value : slice.chomp("r"))
end
end

View File

@ -57,6 +57,8 @@ module Prism
assert_equal 0.5r, parse_expression("0.5r").value
assert_equal 42ri, parse_expression("42ri").value
assert_equal 0.5ri, parse_expression("0.5ri").value
assert_equal 0xFFr, parse_expression("0xFFr").value
assert_equal 0xFFri, parse_expression("0xFFri").value
end
def test_location_join