Open
Description
eval
ing generated Ruby with generate_types: true
results in an undefined method error:
irb(main):002* Module.new do
irb(main):003* class_eval File.read("test/fixtures/typed_test.correct.rb")
irb(main):004> end
(eval at (irb):3):11:in `<module:TestEnum>': undefined method `sig' for module #<Module:0x000000011de4afc0>::TestEnum (NoMethodError)
sig { params(val: Integer).returns(Symbol) }
^^^
from (eval at (irb):3):6:in `block in <top (required)>'
from (irb):3:in `class_eval'
from (irb):3:in `block in <top (required)>'
from (irb):2:in `initialize'
from (irb):2:in `new'
from (irb):2:in `<main>'
from <internal:kernel>:187:in `loop'
from /Users/dave/.gem/ruby/3.3.4/gems/irb-1.14.3/exe/irb:9:in `<top (required)>'
from /Users/dave/.gem/ruby/3.3.4/bin/irb:25:in `load'
from /Users/dave/.gem/ruby/3.3.4/bin/irb:25:in `<main>'
irb(main):005>
I understand in some environments people extend T::Sig
in Object
so this is unnecessary, but we can't guarantee that to be the case. This evaled code should work in a vanilla Ruby environment.