型不等式の型不等式は、型パラメータが画像に入ると安全ではないようです。シェイプレスタイプ不平等バグ?
は、たとえば次のコードでは、これが=:!=
に関連していない
(私たちはString =!:= String
という証拠を生成した)
def someMethod[T](in : T) = {
implicitly[T =:!= String]
// some operation that requires T not String could be called here
// even though there is no guarantee that this is safe
}
val a = someMethod("abc") // here we have just proven String != String
私の直感は正しい動作がコンパイル時エラーがでなければならないことであるコンパイル暗黙の競合が否定演算子をエミュレートするために使用されるすべての状況に適用されます。
これは本当にバグですか、それとも重要な点がありませんか?
シェイプレス問題トラッカーでこれを忘れないように問題を作成してもよろしいですか? –