From: "nobu (Nobuyoshi Nakada)" Date: 2021-09-19T13:36:18+00:00 Subject: [ruby-core:105347] [Ruby master Bug#18177] An error occurs when running RSpec with Ruby 3.1.0-dev Issue #18177 has been updated by nobu (Nobuyoshi Nakada). As I'm not sure where the uninitialized module came from, can't make a simple test code. Does this fix it? ```diff diff --git a/class.c b/class.c index 0b075a9abb8..c56a149afc7 100644 --- a/class.c +++ b/class.c @@ -917,7 +917,8 @@ ensure_includable(VALUE klass, VALUE module) rb_class_modify_check(klass); Check_Type(module, T_MODULE); if (RMODULE_UNINITIALIZED(module)) { - rb_raise(rb_eArgError, "uninitialized module"); + RB_OBJ_WRITE(module, &RCLASS(module)->super, 0); + /* no more re-initialization */ } if (!NIL_P(rb_refinement_module_get_refined_class(module))) { rb_raise(rb_eArgError, "refinement module is not allowed"); ``` ---------------------------------------- Bug #18177: An error occurs when running RSpec with Ruby 3.1.0-dev https://bugs.ruby-lang.org/issues/18177#change-93762 * Author: koic (Koichi ITO) * Status: Open * Priority: Normal * ruby -v: ruby 3.1.0dev (2021-09-17T11:46:18Z master b45fe48fbb) [x86_64-darwin19] * Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN ---------------------------------------- ## Reproduction context The following code causes an `ArgumentError` error when using Ruby 3.1.0-dev. ```ruby # foo_spec.rb RSpec.shared_context 'config', :config do end RSpec.describe 'foo', :config do end ``` RSpec version is as follows. ```console % gem i rspec % rspec -v RSpec 3.10 - rspec-core 3.10.1 - rspec-expectations 3.10.1 - rspec-mocks 3.10.2 - rspec-rails 5.0.1 - rspec-support 3.10.2 ``` ## Expected Behavior (Ruby 3.0.2) No errors. ```console % ruby -v ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-darwin19] ``` ```console % rspec foo_spec.rb No examples found. Finished in 0.00023 seconds (files took 0.11432 seconds to load) 0 examples, 0 failures ``` ## Actual Behavior (Ruby 3.1.0-dev) `ArgumentError: uninitialized module` exception is raised. ```console % ruby -v ruby 3.1.0dev (2021-09-17T11:46:18Z master b45fe48fbb) [x86_64-darwin19] ``` ```console % rspec foo_spec.rb An error occurred while loading ./foo_spec.rb. Failure/Error: host.__send__(:include, mod) unless host < mod ArgumentError: uninitialized module # ./foo_spec.rb:5:in `' No examples found. Finished in 0.00003 seconds (files took 0.18197 seconds to load) 0 examples, 0 failures, 1 error occurred outside of examples ``` Perhaps the following commits have changed the behavior. https://github.com/ruby/ruby/commit/178ee1e#diff-ddea6b44375166521cc45b79d4c54b08594c13872acc5ec279f07d2eda8c32baR920 I encountered this error in the following build error of RuboCop Rails. https://app.circleci.com/pipelines/github/rubocop/rubocop-rails/1323/workflows/5a4fc5af-448c-46d7-a723-ee1c119fc2f2/jobs/8579 I opened this issue because I'm not sure what an expected behavior is. Thank you. -- https://bugs.ruby-lang.org/ Unsubscribe: