YJIT: Remove Type::CArray and limit use of Type::CString
These types are essentially claims about what RBASIC_CLASS(obj)
returns. The field changes with singleton class creation, but we didn't
consider so previously and elided guards where we actually needed them.
Found running ruby/spec with --yjit-verify-ctx. The assertion interface
makes extensive use of singleton classes.
YJIT: Remove Type::CArray and limit use of Type::CString
These types are essentially claims about what
RBASIC_CLASS(obj)
returns. The field changes with singleton class creation, but we didn't
consider so previously and elided guards where we actually needed them.
Found running ruby/spec with --yjit-verify-ctx. The assertion interface
makes extensive use of singleton classes.