How can I allow a class's parent to be dynamically defined and pass Sorbet type checking?
For example:
class A; end
class B < Object.const_get("A"); end
This is part of a Rails gem that requires configuring the base class of a model, similar to Devise configuring a parent controller class.
When running this, srb tc
returns the error: Superclasses must only contain constant literals https://srb.help/4002
Alternatively, I have tried hinting:
class A; end
class B < T.let(Object.const_get("A"), A); end
...which results in type-checking errors like Method some_method does not exist on T.class_of(B) https://srb.help/7003
, and srb rbi hidden-definitions
throws this error:
ruby/gems/2.7.0/gems/sorbet-runtime-0.5.6371/lib/types/private/casts.rb:23:in `cast': T.let: Expected type A, got type Class with value A (TypeError)