完全模式匹配的编译时约束

时间:2015-05-29 20:20:32

标签: f# pattern-matching compiler-warnings

我正在寻找不完整模式匹配的警告编号。有人知道这是什么吗?

更全面的是,我想让FSC.EXE返回不完整的模式匹配作为编译时错误而不是警告+运行时异常。有谁知道这是什么警告号码?具体来说,这涉及编译的.fs /交互式FSI .fsx REPL交互。

警告:

Incomplete pattern matches on this expression. For example, the value 'LaLaLa (_)' may indicate a case not covered by the pattern(s).   

如何自定义:

参见“--warnaserror [+ | - ] []”

参考:https://msdn.microsoft.com/en-us/library/dd233171(v=vs.140).aspx

2 个答案:

答案 0 :(得分:14)

使用--warnaserror+:25

要知道它是哪一个,我只是使用let f (Some x) = x生成警告,警告我警告FS0025:此表达式上的不完整模式匹配。前面 例如,值“无”可以表示模式未涵盖的情况。

答案 1 :(得分:0)

在.Net Standard F#项目中,您还可以通过向fsproj文件中添加元素来实现此目的,如下所示:

<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<WarningsAsErrors>FS0025</WarningsAsErrors>
</PropertyGroup>