File tree Expand file tree Collapse file tree 3 files changed +30
-2
lines changed
Expand file tree Collapse file tree 3 files changed +30
-2
lines changed Original file line number Diff line number Diff line change 11# Changelog
22
3+ ## 6.3.11 - 2024-08-16
4+
5+ ### Fixed
6+ * F# Range Operator (\.\. ) with negative numbers produces invalid F# code and idempotent. [ #3105 ] ( https://github.com/fsprojects/fantomas/issues/3105 )
7+
38## 6.3.10 - 2024-07-12
49
510### Changed
Original file line number Diff line number Diff line change @@ -2292,3 +2292,17 @@ let fns =
22922292 Functions[Checked false
22932293 OnChange(fun _ -> s |> updateSettings)]
22942294"""
2295+
2296+ [<Test>]
2297+ let ``negative numbers in range operator , 3105`` () =
2298+ formatSourceString
2299+ """
2300+ [|-24.0 .. -1.0 .. -30.0|]
2301+ """
2302+ config
2303+ |> prepend newline
2304+ |> should
2305+ equal
2306+ """
2307+ [| -24.0 .. -1.0 .. -30.0 |]
2308+ """
Original file line number Diff line number Diff line change @@ -1546,10 +1546,19 @@ let genExpr (e: Expr) =
15461546 |> genNode node
15471547 | Expr.IndexRangeWildcard node -> genSingleTextNode node
15481548 | Expr.TripleNumberIndexRange node ->
1549+ let isNegativeFloat ( text : string ) =
1550+ text.StartsWith( " -" , StringComparison.Ordinal) && text.Contains( " ." )
1551+
1552+ let genDots ( before : SingleTextNode ) ( dots : SingleTextNode ) ( after : SingleTextNode ) =
1553+ if not ( isNegativeFloat before.Text) && not ( isNegativeFloat after.Text) then
1554+ genSingleTextNode dots
1555+ else
1556+ sepSpace +> genSingleTextNode dots +> sepSpace
1557+
15491558 genSingleTextNode node.Start
1550- +> genSingleTextNode node.StartDots
1559+ +> genDots node.Start node. StartDots node.Center
15511560 +> genSingleTextNode node.Center
1552- +> genSingleTextNode node.EndDots
1561+ +> genDots node.Center node.EndDots node.EndDots
15531562 +> genSingleTextNode node.End
15541563 |> genNode node
15551564 | Expr.IndexRange node ->
You can’t perform that action at this time.
0 commit comments