Skip to content

Commit c0afe28

Browse files
committed
Core,Tests: no error for non-recursive rec funcs
Don't emit warning for functions that are declared with `rec` keyword but are non-recursive, as this is handled by another rule - UnneededRecKeyword.
1 parent 193f81f commit c0afe28

File tree

3 files changed

+4
-8
lines changed

3 files changed

+4
-8
lines changed

src/FSharpLint.Core/Rules/Conventions/EnsureTailCallDiagnosticsInRecursiveFunctions.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ let runner (args: AstNodeRuleParams) =
3636
else
3737
emitWarning func |> Array.singleton
3838
else
39-
UnneededRecKeyword.emitWarning func |> Array.singleton
39+
Array.empty
4040
| _ -> Array.empty
4141

4242
let rule =

src/FSharpLint.Core/Rules/Conventions/UnneededRecKeyword.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ let internal functionCallsItself (checkInfo: FSharpCheckFileResults) (func: Recu
3333
usage.Symbol.DisplayName = funcName
3434
&& ExpressionUtilities.rangeContainsOtherRange func.Body.Range usage.Range)
3535

36-
let internal emitWarning (func: RecursiveFunctionInfo) =
36+
let private emitWarning (func: RecursiveFunctionInfo) =
3737
{ Range = func.Range
3838
Message =
3939
String.Format(

tests/FSharpLint.Core.Tests/Rules/Conventions/EnsureTailCallDiagnosticsInRecursiveFunctions.fs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,12 @@ let rec Foo someParam =
3232
Assert.IsTrue this.NoErrorsExist
3333

3434
[<Test>]
35-
member this.``Should error when function is defined with rec keyword but is not recursive``() =
35+
member this.``Should not error when function is defined with rec keyword but is not recursive``() =
3636
this.Parse """
3737
let rec Foo someParam =
3838
()
3939
4040
module Bar =
4141
let Foo = 0"""
4242

43-
Assert.IsTrue
44-
<| this.ErrorWithMessageExistsAt(
45-
"""The 'Foo' function has a "rec" keyword, but it is not really recursive, consider removing it.""",
46-
2,
47-
8)
43+
Assert.IsTrue this.NoErrorsExist

0 commit comments

Comments
 (0)