F#に不完全なパターンマッチを行うためのコード機能(コンパイラ機能ではない)が存在するのではないかと警告しています。"不完全なパターンマッチ"をエラーとして処理するコード属性
私はこれをケースバイケースで行う必要があります。コード内のいくつかの箇所では、不完全なパターンマッチが警告になりたいのですが、同じアセンブリ内の他の場所では、エラーにしたいと思います。したがって、をすべて処理するコンパイラフラグを設定するだけでは不十分ですCompile-time constraint for complete pattern matchが示唆するように、不完全なパターンはエラーとしてエラーに一致します。
これはおそらく、
type MyUnion = First | Second
let foo x =
match x with
| First -> "hello"
// raises a compile-time warning
let bar x =
[<AssertCompleteMatch>]
match x with
| First -> "hello"
// raises a compile-time error
それとも、その属性が完了しているすべてのパターンは、特定のタイプと一致することを確認するタイプに適用されるようになります。
これの背後にある理由をより詳しく説明できますか?一般的に、不完全なパターンマッチはこれまでには望んでいません。あなたが非常に頻繁にそれをしていることが分かった場合は、ドメインを正しくモデル化していない可能性があります。 –
私は、フラグをオンにして、不完全な一致を持つすべての場所を修正することをお勧めします。 – mydogisbox
このような "コード機能"がどのように見えるかわかりません。コンパイル時に何かが動作すると、*はコンパイラ機能です。 – TeaDrivenDev