Actions
Bug #21256
open
`it` value is wrapped in an array when that doesn't happen with numbered parameter
Description
I have the following script:
require "bundler/inline"
gemfile do
source "https://rubygems.org"
gem "rspec-core", "3.13.3"
gem "rspec-expectations", "3.13.3"
end
require "rspec/autorun"
require "rspec/expectations"
RSpec::Matchers.define :example do
chain(:foo) { pp _1 }
chain(:bar) { pp it }
end
RSpec.describe "demo" do
it do
example.foo(1)
example.bar(2)
end
end
It calls two methods were the only difference is that one accesses the argument with _1
, the other with it
. It prints the following:
1
[2]
So, it
for some reason wraps it in an array. I appologise for the reproduction script, it uses rspec
and the amount of metaprogramming it uses makes it impossible for me to reduce this further.
When running with parser=parse.y
, the expected output is returned (just 2
, no array). I also tested against current ruby-dev and it also happens there.
Actions
Like1
Like2Like0