-
-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
Description
例えば、以下のようなコードはだいたいバグです。
range = 10..4
range.cover?(n) # nがどんな数値でもfalseまた、実際にバグを引き起こしていたコードとして、次のようなものがありました。
range = Time.zone.now...1.day.ago
range.cover?(foo.nantoka_at)これもnantoka_atがどのような日付であれ、cover?は必ずfalseを返します。
このようなバグになりうるrangeの使い方を検出するCopがほしいです。
注意点
ただし、以下のようなrangeは始点の方が大きい数ですが普通に使用されます。
"abcde"[2..-1] # => cde
"abcde"[2..-2] # => cdこれに対応するには、終点が負の数になっていたら例外的に許可すればよい気がします。
もしかしたらまだ他にも例外ケースがあるかも知れません。