There is no longer much benefit to inlining some of the built-in types in favor of moving them into the new AnyObj abstraction. Removing the Mutable enum completely will reduce complexity and in particular it will allow for more efficient type checking without the need to borrow the interior value.
See #843 which performs this change for the builtin range types.
Types that could be moved:
There is no longer much benefit to inlining some of the built-in types in favor of moving them into the new
AnyObjabstraction. Removing theMutableenum completely will reduce complexity and in particular it will allow for more efficient type checking without the need to borrow the interior value.See #843 which performs this change for the builtin range types.
Types that could be moved:
Stringrune: Store String in AnyObj instead of Mutable (relates #844) #848Bytesrune: Store Bytes in AnyObj instead of Mutable (relates #844) #851Vecrune: Store Vec in AnyObj instead of Mutable (relates #844) #865Tuplerune: Store OwnedTuple in AnyObj instead of Mutable (relates #844) #867Objectrune: Store Object in AnyObj instead of Mutable (relates #844) #873ControlFlowrune: Store ControlFlow in AnyObj instead of Mutable (relates #844) #856Futurerune: Store Future in AnyObj instead of Mutable (relates #844) #872Streamrune: Store Generator and Stream in AnyObj instead of Mutable (relates #844) #868Generatorrune: Store Generator and Stream in AnyObj instead of Mutable (relates #844) #868GeneratorStaterune: Store GeneratorState in AnyObj instead of Mutable (relates #844) #863Functionrune: Store Function in AnyObj instead of Mutable (relates #844) #871Formatrune: Store Format in AnyObj instead of Mutable (relates #844) #855OptionRemove Mutable::Result and Mutable::Option #876ResultRemove Mutable::Result and Mutable::Option #876EmptyStructSimplify how variants are handled #877TupleStructSimplify how variants are handled #877StructSimplify how variants are handled #877VariantSimplify how variants are handled #877