plugin-ruby: comparison operators being incorrectly formatted
Metadata
- Ruby version: 2.5
- @prettier/plugin-ruby version: 0.20.1
Input
class SomeClass
def obfuscate_number(number)
number = number.to_s
return number if number.length <= 4
'...' + number[-4, number.length]
end
end
Output
class SomeClass
def obfuscate_number(number)
number = number.to_s
return number if number.length > 4
'...' + number[-4, number.length]
end
end
it appears that comparison operators are being formatted incorrectly
before
return '12345' if number.length <= 4 # '...2345'
return '1234' if number.length <= 4 # '1234'
after
return '12345' if number.length > 4 # '12345'
return '123' if number.length > 4
which leads to'...' + number[-4, number.length] # TypeError (no implicit conversion of nil into String)
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 15 (8 by maintainers)
Ahh I see the difference. The issue is comparison operators are coming back as
@op
nodes when they should be just symbols to match cruby.I’ll fix it so it handles either.
@Jukejc I opened this issue on jruby as a result: https://github.com/jruby/jruby/issues/6413
Oh interesting! I hadn’t considered other Ruby runtimes, that makes total sense. They’ve probably got some slick deoptimization thing doing on.