コンパイラにいくつかのダウンキャストパターン一致警告(FS0025)を無視させるにはどうすればよいですか?同じファイル内の他のFS0025警告をキャプチャする必要がありますか?警告エラーのないダウンキャストユニオンケース
たとえば、最初のパターン一致である(Student studentName) = john
はエラーを起こすことはありませんので、コンパイラで不要な警告を削除します。
type Job = Student of string | Teacher of string
let john = Student "John"
(* FS0025: Incomplete pattern matches on this expression. For example,
the value 'Teacher _' may indicate a case not covered by the pattern(s). *)
let (Student studentName) = john
let (Teacher teacherName) = john // runtime error
私が試した:
#nowarn "25"
let (Student studentName) = john
#warn "25"
let (Teacher teacherName) = john
しかし、それはlet (Teacher teacherName) = john
のために任意の警告エラーが表示されません。あなたがタイプで、あなたがこのような何か書くことができます使用されたコンストラクタを記録するためにGADTを使用して喜んでいる場合
これは非常に素晴らしい解決策です、悲しいことにF#はGADTをサポートしていません。 – MiP