-
Notifications
You must be signed in to change notification settings - Fork 65
Closed
Description
Not completely sure if this issue should be here or in ruby/spec, but nonetheless.
ruby/spec's CONTRIBUTING.md says:
Finding unspecified core methods
This is very easy, just run the command below in your
specdirectory.
rubymust be a recent version of MRI.$ ruby --disable-gem ../mspec/bin/mkspec
However, this produces an error due to SortedSet being a constant but no longer having a stdlib implementation, while MkSpec tries to load every single constant in Object:
$ ruby --disable-gem ../mspec/bin/mkspec
/home/alex/.local/share/mise/installs/ruby/3.4.7/lib/ruby/3.4.0/set/sorted_set.rb:4:in '<top (required)>': The `SortedSet` class has been extracted from the `set` library. You must use the `sorted_set` gem or other alternatives. (RuntimeError)
from /home/alex/Projects/mspec/lib/mspec/utils/name_map.rb:69:in 'Kernel#require'
from /home/alex/Projects/mspec/lib/mspec/utils/name_map.rb:69:in 'Module#const_get'
from /home/alex/Projects/mspec/lib/mspec/utils/name_map.rb:69:in 'NameMap#class_or_module'
from /home/alex/Projects/mspec/lib/mspec/utils/name_map.rb:85:in 'block in NameMap#map'
from /home/alex/Projects/mspec/lib/mspec/utils/name_map.rb:83:in 'Array#each'
from /home/alex/Projects/mspec/lib/mspec/utils/name_map.rb:83:in 'NameMap#map'
from /home/alex/Projects/mspec/lib/mspec/utils/name_map.rb:98:in 'block in NameMap#map'
from /home/alex/Projects/mspec/lib/mspec/utils/name_map.rb:83:in 'Array#each'
from /home/alex/Projects/mspec/lib/mspec/utils/name_map.rb:83:in 'NameMap#map'
from /home/alex/Projects/mspec/lib/mspec/commands/mkspec.rb:128:in 'MkSpec#run'
from /home/alex/Projects/mspec/lib/mspec/commands/mkspec.rb:141:in 'MkSpec.main'
from ../mspec/bin/mkspec:7:in '<main>'
/home/alex/.local/share/mise/installs/ruby/3.4.7/lib/ruby/3.4.0/set/sorted_set.rb:2:in 'Kernel#require': cannot load such file -- sorted_set (LoadError)
from /home/alex/.local/share/mise/installs/ruby/3.4.7/lib/ruby/3.4.0/set/sorted_set.rb:2:in '<top (required)>'
from /home/alex/Projects/mspec/lib/mspec/utils/name_map.rb:69:in 'Kernel#require'
from /home/alex/Projects/mspec/lib/mspec/utils/name_map.rb:69:in 'Module#const_get'
from /home/alex/Projects/mspec/lib/mspec/utils/name_map.rb:69:in 'NameMap#class_or_module'
from /home/alex/Projects/mspec/lib/mspec/utils/name_map.rb:85:in 'block in NameMap#map'
from /home/alex/Projects/mspec/lib/mspec/utils/name_map.rb:83:in 'Array#each'
from /home/alex/Projects/mspec/lib/mspec/utils/name_map.rb:83:in 'NameMap#map'
from /home/alex/Projects/mspec/lib/mspec/utils/name_map.rb:98:in 'block in NameMap#map'
from /home/alex/Projects/mspec/lib/mspec/utils/name_map.rb:83:in 'Array#each'
from /home/alex/Projects/mspec/lib/mspec/utils/name_map.rb:83:in 'NameMap#map'
from /home/alex/Projects/mspec/lib/mspec/commands/mkspec.rb:128:in 'MkSpec#run'
from /home/alex/Projects/mspec/lib/mspec/commands/mkspec.rb:141:in 'MkSpec.main'
from ../mspec/bin/mkspec:7:in '<main>'This is the problematic code being run when no "--constant" option is specified:
constants = config[:constants]
constants = Object.constants if constants.empty?
@map.map({}, constants).each do |mod, methods|This in turn calls Object.const_get, which autloads SortedSet, which breaks.
Metadata
Metadata
Assignees
Labels
No labels