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
Wrong number of arguments (given 2, expected 1) #10745
Comments
Running it with |
Probably something broken got stored in your cache try removing the |
I removed everything from that dir and it still throws the same error. The cached file just has |
I can't reproduce this issue, either.
|
probably a good time to bump your |
@mjobin-mdsol Great! I've confirmed it and opened #10769 to resolve the issue. |
Fixes rubocop#10745. This PR fixes the following incompatible API error when using JSON 2.2 or lower. ```console % bunlde exec rspec ./spec/rubocop/result_cache_spec.rb:45 Run options: include {:focus=>true, :locations=>{"./spec/rubocop/result_cache_spec.rb"=>[45]}} Randomized with seed 40926 FF Failures: 1) RuboCop::ResultCache cached result that was saved with no command line option when no option is given is valid and can be loaded Failure/Error: deserialize_offenses(JSON.parse(text)) ArgumentError: wrong number of arguments (given 2, expected 1) Shared Example Group: "valid" called from ./spec/rubocop/result_cache_spec.rb:121 # ./lib/rubocop/cached_data.rb:14:in `from_json' # ./lib/rubocop/result_cache.rb:119:in `load' # ./spec/rubocop/result_cache_spec.rb:45:in `block (4 levels) in <top (required)>' # ./lib/rubocop/rspec/shared_contexts.rb:30:in `block (4 levels) in <top (required)>' # ./lib/rubocop/rspec/shared_contexts.rb:30:in `chdir' # ./lib/rubocop/rspec/shared_contexts.rb:30:in `block (3 levels) in <top (required)>' # ./lib/rubocop/rspec/shared_contexts.rb:7:in `block (2 levels) in <top (required)>' 2) RuboCop::ResultCache cached result that was saved with no command line option when --format is given is valid and can be loaded Failure/Error: deserialize_offenses(JSON.parse(text)) ArgumentError: wrong number of arguments (given 2, expected 1) Shared Example Group: "valid" called from ./spec/rubocop/result_cache_spec.rb:242 # ./lib/rubocop/cached_data.rb:14:in `from_json' # ./lib/rubocop/result_cache.rb:119:in `load' # ./spec/rubocop/result_cache_spec.rb:45:in `block (4 levels) in <top (required)>' # ./lib/rubocop/rspec/shared_contexts.rb:30:in `block (4 levels) in <top (required)>' # ./lib/rubocop/rspec/shared_contexts.rb:30:in `chdir' # ./lib/rubocop/rspec/shared_contexts.rb:30:in `block (3 levels) in <top (required)>' # ./lib/rubocop/rspec/shared_contexts.rb:7:in `block (2 levels) in <top (required)>' Finished in 0.2064 seconds (files took 1.04 seconds to load) 2 examples, 2 failures ``` It resolves the error by requiring JSON 2.3 or higher. NOTE: It's been a few years since JSON 2.3 was released. It's maybe widespread to some extent, so it's not expected to have a big impact. https://rubygems.org/gems/json/versions/2.3.0
Fixes #10745. This PR fixes the following incompatible API error when using JSON 2.2 or lower. ```console % bunlde exec rspec ./spec/rubocop/result_cache_spec.rb:45 Run options: include {:focus=>true, :locations=>{"./spec/rubocop/result_cache_spec.rb"=>[45]}} Randomized with seed 40926 FF Failures: 1) RuboCop::ResultCache cached result that was saved with no command line option when no option is given is valid and can be loaded Failure/Error: deserialize_offenses(JSON.parse(text)) ArgumentError: wrong number of arguments (given 2, expected 1) Shared Example Group: "valid" called from ./spec/rubocop/result_cache_spec.rb:121 # ./lib/rubocop/cached_data.rb:14:in `from_json' # ./lib/rubocop/result_cache.rb:119:in `load' # ./spec/rubocop/result_cache_spec.rb:45:in `block (4 levels) in <top (required)>' # ./lib/rubocop/rspec/shared_contexts.rb:30:in `block (4 levels) in <top (required)>' # ./lib/rubocop/rspec/shared_contexts.rb:30:in `chdir' # ./lib/rubocop/rspec/shared_contexts.rb:30:in `block (3 levels) in <top (required)>' # ./lib/rubocop/rspec/shared_contexts.rb:7:in `block (2 levels) in <top (required)>' 2) RuboCop::ResultCache cached result that was saved with no command line option when --format is given is valid and can be loaded Failure/Error: deserialize_offenses(JSON.parse(text)) ArgumentError: wrong number of arguments (given 2, expected 1) Shared Example Group: "valid" called from ./spec/rubocop/result_cache_spec.rb:242 # ./lib/rubocop/cached_data.rb:14:in `from_json' # ./lib/rubocop/result_cache.rb:119:in `load' # ./spec/rubocop/result_cache_spec.rb:45:in `block (4 levels) in <top (required)>' # ./lib/rubocop/rspec/shared_contexts.rb:30:in `block (4 levels) in <top (required)>' # ./lib/rubocop/rspec/shared_contexts.rb:30:in `chdir' # ./lib/rubocop/rspec/shared_contexts.rb:30:in `block (3 levels) in <top (required)>' # ./lib/rubocop/rspec/shared_contexts.rb:7:in `block (2 levels) in <top (required)>' Finished in 0.2064 seconds (files took 1.04 seconds to load) 2 examples, 2 failures ``` It resolves the error by requiring JSON 2.3 or higher. NOTE: It's been a few years since JSON 2.3 was released. It's maybe widespread to some extent, so it's not expected to have a big impact. https://rubygems.org/gems/json/versions/2.3.0
@mjobin-mdsol, good catch! Looks like we need to update some gems. @koic, thanks for the fix! |
Expected behavior
bundle exec rubocop
should run successfully.Actual behavior
Exists with an error:
Steps to reproduce the problem
.rubocop.yml
../.rubocop.yml
RuboCop version
The text was updated successfully, but these errors were encountered: