def foo(n)
if n.respond_to?(:times)
n.times {|_| n = :sym }
elsif n.respond_to?(:+)
n + "foo"
else
n & false
end
end
foo(1)
foo("str")
foo(true)
# no error expected
__END__
# Classes
class Object
private
def foo: (Integer | String | true n) -> (Integer | String | bool)
end