夜明けのBug -- genericsでオーバーロード

寝ぼけた訳じゃないんですね。。 Messagepack のお話からでた、もしかして、jdk 6 のバグ?
2
Muga Nishizawa @muga_nishizawa

main 関数の中を見てみると、ちゃんと呼び分けてる。

2011-09-18 05:45:49
Sadayuki Furuhashi @frsyuki

"Bug ID: 6182950 methods clash algorithm should not depend on return type" http://t.co/xJUjsZKH

2011-09-18 05:46:28
Suguru ARAKAWA @ashigeru

@frsyuki JVM上ではたぶんこれ正しく動きますねw

2011-09-18 05:50:56
Sadayuki Furuhashi @frsyuki

JVMのバイトコード読めない…aload_1とかサッパリすぎる…やばい。

2011-09-18 05:51:23
Muga Nishizawa @muga_nishizawa

@frsyuki 1 番目の local variable を stack に積んでます。a は確か reference ってことだったと思います。

2011-09-18 05:53:58
Sadayuki Furuhashi @frsyuki

@ashigeru でも仕様的にはバグっぽいですねw リフレクションでメソッドを取ってきたりするとおかしなことになりそう

2011-09-18 05:54:25
Muga Nishizawa @muga_nishizawa

逆に astore はスタックの一番上の reference を local variable として store。

2011-09-18 05:55:42
Muga Nishizawa @muga_nishizawa

new して dup して invokespecial は、いわゆる new XXX()。

2011-09-18 05:57:13
きしだൠ(K1S) @kis

@frsyuki ローカル変数がスタックに割り当てられるので、aload_0はだいたいthisがとれて、aload_1は最初の引数がとれて・・・

2011-09-18 05:58:32
Sadayuki Furuhashi @frsyuki

リフレクションでメソッドを取ってくると、なぜだか良く分からない理由によって Class<String> のが呼ばれる。http://t.co/DyZiz3Gb

2011-09-18 05:59:22
Muga Nishizawa @muga_nishizawa

@frsyuki 面白い挙動... jdk7 ではコンパイルエラーとなる(@kis さん)ので、使わない方が良いかと思います^^;

2011-09-18 06:06:33
きしだൠ(K1S) @kis

@muga_nishizawa 気のせいだよ!福岡はまだ暗い・・・明るかった!

2011-09-18 06:08:09
Muga Nishizawa @muga_nishizawa

@kis そんな時差ありましたか?w RT @kis: @muga_nishizawa 気のせいだよ!福岡はまだ暗い・・・明るかった!

2011-09-18 06:09:15
Sadayuki Furuhashi @frsyuki

@muga_nishizawa これは使うとマズイですね! さてどうしよう…

2011-09-18 06:09:32
きしだൠ(K1S) @kis

@muga_nishizawa 40分くらい違うから、移動するとかなり違和感ありますよ

2011-09-18 06:10:59
きしだൠ(K1S) @kis

やっぱたまにJVMのバイトコード読むのはいいね。

2011-09-18 06:12:16