7.3で、オーバーロード解決の改善がありました。以下の3つの改善があります。グループを引数にするとき、メソッドの戻り値を見るようになった実のところ、これらの改善は「処理手順の順序変更」だそうです。この順序を入れ替えることで上記のような区別がつくようになります。前述のような、引数の数や型の一致度を調べて最も一致するものを探す本当にそのメソッドを呼べるかどうかを調べる(上記の、静的/インスタンスの差や、型制約を調べる)例えば、以下のコードを見てください。間違った引数で呼び出しています。呼べるのは静的メソッドだけのはず。呼ぶにはインスタンスが必要」の類。呼ぶにはインスタンス越しじゃダメ」の類。引数の型でのオーバーロード解決を先にやって、その後、静的/インスタンスの区別を調べてる。}}静的かインスタンスかの差をよりも先に、引数の型だけでオーバーロード解決しています。x)の方がまず選ばれます。メソッドなので、型名.Mでは呼べない」というエラーになります。7.3でこの順を逆にして、引数の型でオーバーロード解決をする前に、静的かインスタンスかなどの条件を先に見るようになりました。ある意味当然の変更でしょう。メソッドか前節の例に、引数の既定値を足してみましょう。2つのメソッドMが、どちらもM()で呼べるようになります。7.3からは、これらの呼び分けができるようになりました。