diff --git a/lib/rbs/test/type_check.rb b/lib/rbs/test/type_check.rb index 060a751a2f..4dceb407cf 100644 --- a/lib/rbs/test/type_check.rb +++ b/lib/rbs/test/type_check.rb @@ -280,7 +280,9 @@ def value(val, type) value(key, type.args[0]) && value(val[key], type.args[1]) end when klass == ::Range - Test.call(val, IS_AP, klass) && value(val.begin, type.args[0]) && value(val.end, type.args[0]) + Test.call(val, IS_AP, klass) && + (Test.call(val.begin, IS_AP, ::NilClass) || value(val.begin, type.args[0])) && + (Test.call(val.end, IS_AP, ::NilClass) || value(val.end, type.args[0])) when klass == ::Enumerator if Test.call(val, IS_AP, klass) case val.size