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
15.12.2.7 Inferring Type Arguments Based on Actual Arguments
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)
上記の赤くした部分て、U = V であっても lctaの定義から ? じゃないとおかしくね?と思った。