-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
activesupport: Update the type of Array.wrap #688
Conversation
At present, `Array.wrap` will be return an empty tuple for untyped value because it matches to the first method_type: `(nil) -> []`. In the type world, the behavior of an empty tuple is different from an empty array. For example, calling a enumerable method will cause type an error: ``` app/app.rb:18:28: [error] Type `bot` does not have method `to_s` │ Diagnostic ID: Ruby::NoMethod │ └ Array.wrap(foo).map { |e| e.to_s } ~~~~ ``` This changes the return type of `Array.wrap` for nil value to `Array[untyped]`. refs: ruby#683
@tk0miya Thanks for your contribution! Please follow the instructions below for each change. Available commandsYou can use the following commands by commenting on this PR.
|
@nickjer What do you think about this change? |
this also changes the case of `[T] (T ele) -> [T]` to `-> Array[T]`
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
APPROVE
/merge |
At present,
Array.wrap
will be return an empty tuple for untyped value because it matches to the first method_type:(nil) -> []
.In the type world, the behavior of an empty tuple is different from an empty array. For example, calling a enumerable method will cause type an error:
This changes the return type of
Array.wrap
for nil value toArray[untyped]
.refs: #683