などの型エビデンスパラメータを含むプログラムをコンパイルすると、-Ywarn-unused
がコンパイラに渡されたときに警告が発生することがあります。特に、ファクトムタイプを使用してエンコードされた制約を検証するためにタイプ証拠パラメータが使用される場合、この警告が発生する可能性があります。ここでは、ファイルのコンパイル例として -Ywarn-unusedを使用する場合、Scalaでの解析からタイプ証拠パラメータを除外します。
# scalac -Ywarn-unused Hacker.scala Hacker.scala:42: warning: parameter value ev in method hackOn is never used def hackOn(implicit ev: IsCaffeinated[S]): Hacker[State.Decaffeinated] = { ^ Hacker.scala:47: warning: parameter value ev in method drinkCoffee is never used def drinkCoffee(implicit ev: IsDecaffeinated[S]): Hacker[State.Caffeinated] = { ^ two warnings found
それはパラメータev
は、実行時に実際には必要ありませんが、パラメータは、コンパイル時に有用であることを私には明らかです時間。このケースを無視するようにコンパイラに指示する方法はありますか?他のコンテキストでは使用されていない関数パラメータの警告は引き続き発生しますか?
たとえば、私は、<:<
クラスまたは=:=
クラスの暗黙的なパラメータを無視するようにコンパイラに指示すると、この問題は解決しますが、どのように達成できるかはわかりません。