gpt4 book ai didi

unit-testing - 禁止 F# 编译器警告 : Possible incorrect indentation: this token is offside of context

转载 作者:行者123 更新时间:2023-12-04 17:08:47 26 4
gpt4 key购买 nike

我有一些 xunit 测试,为了便于阅读,我想按如下方式布局:

[<Fact>] let ``Has Hash Code 2``()          = target.GetHashCode().ShouldBe 2
[<Fact>] let ``ToString yields two``() = target.ToString().ShouldBe "two"
[<Fact>] let ``Has underlysing type int``() = target.GetUnderlyingType().ShouldBe typeof<int>

我在 let 语句中收到编译器警告:“缩进可能不正确:此标记越位于位置 %s 处开始的上下文。尝试进一步缩进此标记或使用标准格式约定。”

我试过 #nowarn "lexfltTokenIsOffsideOfContextStartedEarlier"但这只是生成了另一个编译器警告“无效警告号”。

https://github.com/fsharp/fsharp/blob/057dbf77df7355321c3c18137c2d552bdfa1272b/src/fsharp/FSComp.txt 中没有针对此错误列出警告编号

有没有办法抑制这个警告?

最佳答案

我很抱歉以一种“你不需要它”的方式回答,但这似乎是事实。此外,这个问题显然成为那些用 F# 编写单元测试的人的常见问题解答。还有一个案例是 [<Literal>]的。

无论如何,在项目级别甚至文件级别禁用警告似乎是一个坏主意,除非您有充分的理由这样做。

据我了解,您希望语句是单行的(例如,[<Fact>] 没有占据整行)。在 VS2013 中有两种方法可以实现:

  • 将属性放在 let 内:
    let [<Fact>] ``Has Hash Code 2``()          = target.GetHashCode().ShouldBe 2
  • 在声明后写一个双分号:
    [<Fact>] let ``Has Hash Code 2``()          = target.GetHashCode().ShouldBe 2;;
  • 关于unit-testing - 禁止 F# 编译器警告 : Possible incorrect indentation: this token is offside of context,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30270237/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com