Skip to content
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

private method 'select' called for true:TrueClass #11088

Closed
Alagaesia93 opened this issue Oct 20, 2022 · 5 comments · Fixed by #11096
Closed

private method 'select' called for true:TrueClass #11088

Alagaesia93 opened this issue Oct 20, 2022 · 5 comments · Fixed by #11096
Labels

Comments

@Alagaesia93
Copy link

bundle exec rubocop raises
private method 'select' called for true:TrueClass


Expected behavior

Rubocop should behave normally, show errors / lint, etc

Actual behavior

After running bundle exec rubocop I have the following stacktrace

1055 files inspected, 1 offense detected
private method 'select' called for true:TrueClass

          extensions.select { |_, v| (Array(v) & dependent_gems).any? }.keys
                    ^^^^^^^
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.37.0/lib/rubocop/cli/command/suggest_extensions.rb:77:in `all_extensions'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.37.0/lib/rubocop/cli/command/suggest_extensions.rb:89:in `not_installed_extensions'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.37.0/lib/rubocop/cli/command/suggest_extensions.rb:81:in `extensions'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.37.0/lib/rubocop/cli/command/suggest_extensions.rb:18:in `run'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.37.0/lib/rubocop/cli/command.rb:11:in `run'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.37.0/lib/rubocop/cli/environment.rb:18:in `run'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.37.0/lib/rubocop/cli.rb:72:in `run_command'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.37.0/lib/rubocop/cli.rb:84:in `suggest_extensions'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.37.0/lib/rubocop/cli.rb:79:in `block in execute_runners'
<internal:kernel>:90:in `tap'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.37.0/lib/rubocop/cli.rb:79:in `execute_runners'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.37.0/lib/rubocop/cli.rb:48:in `run'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.37.0/exe/rubocop:19:in `block in <top (required)>'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/3.1.0/benchmark.rb:311:in `realtime'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rubocop-1.37.0/exe/rubocop:19:in `<top (required)>'
/Users/<user_name>/.rbenv/versions/3.1.2/bin/rubocop:25:in `load'
/Users/<user_name>/.rbenv/versions/3.1.2/bin/rubocop:25:in `<top (required)>'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.10/lib/bundler/cli/exec.rb:58:in `load'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.10/lib/bundler/cli/exec.rb:58:in `kernel_load'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.10/lib/bundler/cli/exec.rb:23:in `run'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.10/lib/bundler/cli.rb:483:in `exec'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.10/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.10/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.10/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.10/lib/bundler/cli.rb:31:in `dispatch'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.10/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.10/lib/bundler/cli.rb:25:in `start'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.10/exe/bundle:48:in `block in <top (required)>'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.10/lib/bundler/friendly_errors.rb:103:in `with_friendly_errors'
/Users/<user_name>/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/bundler-2.3.10/exe/bundle:36:in `<top (required)>'
/Users/<user_name>/.rbenv/versions/3.1.2/bin/bundle:25:in `load'
/Users/<user_name>/.rbenv/versions/3.1.2/bin/bundle:25:in `<main>'

Steps to reproduce the problem

Update Rubocop to version 1.37.0
run bundle exec rubocop
See the error in CLI

RuboCop version

1.37.0 (using Parser 3.1.2.1, rubocop-ast 1.22.0, running on ruby 3.1.2) [arm64-darwin21]
  - rubocop-performance 1.15.0
  - rubocop-rspec 2.13.2
@Alagaesia93 Alagaesia93 changed the title private method `select' called for true:TrueClass private method 'select' called for true:TrueClass Oct 20, 2022
@koic
Copy link
Member

koic commented Oct 20, 2022

Can you provide a reproducible .rubocop.yml?

@Alagaesia93
Copy link
Author

Sure! Here it is

inherit_from:
  - .rubocop_todo.yml
  - node_modules/@prettier/plugin-ruby/rubocop.yml

require:
  - rubocop/cop/internal_affairs
  - rubocop-performance
  - rubocop-rspec

AllCops:
  NewCops: enable
  Exclude:
    - 'db/schema.rb'
    - 'vendor/**/*'
    - 'node_modules/**/*'
    - 'spec/fixtures/**/*'
    - 'tmp/**/*'
  SuggestExtensions: true

Metrics/BlockLength:
  Exclude:
    - 'spec/**/*'
    - 'config/routes.rb'

Bundler/GemVersion:
  EnforcedStyle: required
  Enabled: true

Style/StringLiterals:
  EnforcedStyle: single_quotes
  Enabled: false

Layout/TrailingEmptyLines:
  Enabled: true

Layout/TrailingWhitespace:
  Enabled: true

If needed I can provide also rubocop_todo.yml, but it's 1200 lines. We inherited a project that had no rubocop for years and slowly trying to get rid of all the alerts.

@koic koic added the bug label Oct 21, 2022
koic added a commit to koic/rubocop that referenced this issue Oct 21, 2022
…true`

Fixes rubocop#11088.

This PR fixes an error when specifying `SuggestExtensions: true`.

It's no wonder users think they can set `SuggestExtensions: true` when
they can specify `SuggestExtensions: false`.
So, suggest default extensions if `SuggestExtensions: true`.

Anyway, it shouldn't be an error.
@koic
Copy link
Member

koic commented Oct 21, 2022

Thank you for the providing. I can reproduce it and opened #11096.

bbatsov pushed a commit that referenced this issue Oct 21, 2022
Fixes #11088.

This PR fixes an error when specifying `SuggestExtensions: true`.

It's no wonder users think they can set `SuggestExtensions: true` when
they can specify `SuggestExtensions: false`.
So, suggest default extensions if `SuggestExtensions: true`.

Anyway, it shouldn't be an error.
@Alagaesia93
Copy link
Author

@koic you're awesome. 3 days of turnaround, congrats and thank you so much!

@koic
Copy link
Member

koic commented Oct 24, 2022

@Alagaesia93 You are welcome!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants