| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
For insatnce
https://ci.appveyor.com/project/ruby/ruby/builds/27086475/job/mb9whkiygemlfy93
|
| |
|
|
|
|
| |
This wraps iseq_location and should fix the leaked global test.
|
|
|
|
|
|
|
|
| |
This shows locations in places it didn't before, such as for
proc calls, and fixes the location for super calls.
This requires making iseq_location non-static and MJIT exported,
which I hope will not cause problems.
|
|
|
|
|
|
|
|
|
| |
parameters
Previously, there was no warning in this case, even though we will
be changing the behavior in Ruby 3.
Fixes [Bug #14130]
|
|
|
|
| |
This warns about a case that we will continue to support.
|
| |
|
|
|
|
| |
A follow up for 16c6984bb9..b5b3afadfa. [Feature #14183]
|
| |
|
|
|
|
|
| |
There are more issues than this, but hopefully this is enough
to get make test-bundler passing in CI.
|
| |
|
|
|
|
|
|
|
| |
This reverts the changes to parse.y in
a5b37262524ac39d2af13eea174486370a581c23 as they are not actually
needed and cause the warning for duplicate hash keys to not be
emitted.
|
|
|
|
| |
Also handle some warnings for behavior that will change in 3.0.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
For methods that accept keyword arguments but do not accept a
keyword splat, if a keyword splat is passed, or keywords are
used with a non-symbol key, check the hash. If the hash contains
all symbols, keep the same behavior as before. If the hash
contains all non-symbols, move the hash to the last positional
hash and warn. If the hash contains symbols and non-Symbols, split
the hash and use the symbol keys for the keyword hash and non-symbol
keys for the positional hash and warn.
|
| |
|
|
|
|
| |
Use a [:nokey] entry in this case.
|
|
|
|
|
| |
Use false instead of nil for the keyword and keyword rest values
in that case.
|
|
|
|
|
|
|
|
|
| |
The on_params hook will use :nil as the keyword rest argument.
There is a new on_nokw_param hook as well.
This fixes a type issue in the previous code, where an ID was
passed where a VALUE was the declared type. The symbol :nil is
passed instead of the id.
|
|
|
|
|
|
|
|
|
| |
This syntax means the method should be treated as a method that
uses keyword arguments, but no specific keyword arguments are
supported, and therefore calling the method with keyword arguments
will raise an ArgumentError. It is still allowed to double splat
an empty hash when calling the method, as that does not pass
any keyword arguments.
|
|
|
|
| |
This fixes MJIT after rb_hash_stlike_foreach used vm_args.c.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This restores compatibility with Ruby 2.6, splitting the last
positional hash into positional and keyword arguments if it
contains both symbol and non-symbol keys. However, in this case
it will warn, as the behavior in Ruby 3 will be to not split the
hash and keep it as a positional argument.
This does not affect the handling of mixed symbol and non-symbol
keys in bare keywords. Those are still treated as keywords now,
as they were before this patch. This results in different
behavior than Ruby 2.6, which would split the bare keywords and
use the non-Symbol keys as a positional arguments.
|
|
|
|
|
|
|
|
|
| |
Now that keyword splats accept non-Symbols, the type of exception
changes.
Previously, a TypeError (hash key "k1" is not a Symbol) was raised
for this test, but now an ArgumentError (unknown keyword: "k1") is
raised.
|
|
|
|
|
| |
Now that keyword splats accept non-Symbols, the inspect value of
the keyword is used instead of the string value.
|
|
|
|
|
|
|
|
| |
If all keys are not symbols, then the non-symbol keys would not
be treated as keywords in previous versions. It doesn't make
sense to treat these hashes as keywords to break compatibility and
warn about behavior changes in Ruby 2.7 when the Ruby 3.0 behavior
will be the same as the Ruby 2.6 for these hashes.
|
| |
|
|
|
|
| |
Mostly requires adding ** in either calls or method definitions.
|
|
|
|
|
| |
Previously, it only applied if the call had more positional
arguments than the method it was calling accepted.
|
|
|
|
|
|
|
|
| |
Treat the ** syntax as passing a copy of the hash as the last
positional argument. If the hash being double splatted is empty, do
not add a positional argument.
Remove rb_no_keyword_hash, no longer needed.
|
|
|
|
| |
And, allow non-symbol keys as a keyword arugment
|
|
|
|
|
|
|
|
| |
to drop MJIT_DLDFLAGS from compile_c_to_o for OpenBSD failure
https://rubyci.org/logs/rubyci.s3.amazonaws.com/openbsd65/ruby-master/log/20190830T110008Z.fail.html.gz.
8c7f4e8f8b7f9e74195ea0eb51f39014fec342c0 did not work for i686-linux
https://travis-ci.org/ruby/ruby/jobs/578808112.
|
|
|
|
|
|
|
|
| |
I think this did not work for some environments, but this seems to fix
OpenBSD RubyCI failure:
https://rubyci.org/logs/rubyci.s3.amazonaws.com/openbsd65/ruby-master/log/20190830T110008Z.fail.html.gz
Let me check RubyCI impact by this.
|
|
|
|
|
| |
[Feature #16103]
Close: https://github.com/ruby/ruby/pull/2267
|
|
|
|
|
| |
of lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb.
This reverts commit 500149709b92ccb36396589a0c39afb3ff77bfb6 partially.
|
|
|
|
| |
It seems to be fixed by b870ca58791e576f5dbb263f54ae433a7f6d65ee.
|
|
|
|
|
|
|
|
| |
Try to fix failure at https://github.com/ruby/ruby/runs/207580232#step:10:382
```
undefined method `name' for "Gemfile.lock":String
/home/runner/work/ruby/ruby/lib/bundler/resolver/spec_group.rb:65:in `eql?'
```
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This changeset make it possible to use very old clang.
|
|
|
|
| |
Related to [Feature #15955].
|
|
|
|
|
| |
For UnboundMethod#bind_call [Feature #15955] introduced in
002e592e0d67bb0271d16314a32380ad947c9ae9.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`umethod.bind_call(obj, ...)` is semantically equivalent to
`umethod.bind(obj).call(...)`. This idiom is used in some libraries to
call a method that is overridden. The added method does the same
without allocation of intermediate Method object. [Feature #15955]
```
class Foo
def add_1(x)
x + 1
end
end
class Bar < Foo
def add_1(x) # override
x + 2
end
end
obj = Bar.new
p obj.add_1(1) #=> 3
p Foo.instance_method(:add_1).bind(obj).call(1) #=> 2
p Foo.instance_method(:add_1).bind_call(obj, 1) #=> 2
```
|
|
|
|
|
|
|
| |
`Kernel#pp` has wrapper, but `PP` does not.
https://github.com/ruby/ruby/runs/207405029#step:10:141
`NameError: uninitialized constant Bundler::Molinillo::Resolver::Resolution::PP`
|