Least Containing Type Argument の計算がおかしい?

めも。

where lcta() is the the least containing type argument function defined (assuming U and V are type expressions) as:

lcta(U, V) = U if U = V, ? extends lub(U, V) otherwise
lcta(U, ? extends V) = ? extends lub(U, V)
lcta(U, ? super V) = ? super glb(U, V)
lcta(? extends U, ? extends V) = ? extends lub(U, V)
lcta(? extends U, ? super V) = U if U = V, ? otherwise
lcta(? super U, ? super V) = ? super glb(U, V)

15.12.2.7 Inferring Type Arguments Based on Actual Arguments

上記の赤くした部分て、U = V であっても lctaの定義から ? じゃないとおかしくね?と思った。

現行のコンパイラの実装はすべて?(境界なしのワイルドカード)になるように調整されてるっぽい。