You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There's a failure I'm observing under steep, when using Class.new, similar to this bit:
classAdefself.options;{};enddefplputs"pl"endendmoduleRandodefplklass=is_a?(A) ? self.class : Aklass=Class.new(klass)# steep complains with:# Cannot pass a value of type `(singleton(::Rando) | singleton(::A))` as an argument of type `::Class`# (singleton(::Rando) | singleton(::A)) <: ::Class# singleton(::Rando) <: ::Class# ::Module <: ::Class# ::Object <: ::Class# ::BasicObject <: ::Classklass.instance_variable_set(:@options,klass.options)# steep complains again:## Type `::Class` does not have method `options`klass.plugin(pl,options, &blk).new# Type `::Class` does not have method `pl`end
Seems that this type of meta-programming makes it lose type information, although it should be clear, i.e. Class.new should inherit superclass type information.
The text was updated successfully, but these errors were encountered:
There's a failure I'm observing under
steep
, when usingClass.new
, similar to this bit:Seems that this type of meta-programming makes it lose type information, although it should be clear, i.e.
Class.new
should inherit superclass type information.The text was updated successfully, but these errors were encountered: