シリーズですが、今日は特に凶悪な奴です。こんなプルリクが出ていました。getterこれがまあ、なかなか凄いコードを含んでいます。仮想テーブルの中身を覗いて、「特定のビットが立っていたら配列」みたいなコードを書いています。オブジェクトのアドレスを取得その場所の1ワード手前に仮想テーブルへのポインターが入っているはずで、それを使って「配列かどうか」を判定。クラスで可変長なのは配列と文字列だけとまあ、今現在の実装としてはこれで確かに「配列、もしくは、文字列かどうか」を判定できます。当然ですが、今現在の実装としてできるからといって、将来もそうと言う保証はありません。仕様として明言されているわけではなく、凄くきわどいコードです。コードなので、もしランタイムに手を入れて仮想テーブルの実装が変わるようならその時に併せてここも直せばいい」という感じです。外で真似していいコードではないでしょう。提供すべき」という話の流れにはなっています。いずれは消えると思われます。ついて運営者について。