From 0cb051e4028849812a9afd5a03276dff6c3b2c2c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 26 Mar 2026 21:58:18 +0000 Subject: [PATCH 01/10] Initial plan From 5af597906ab967a6c58391ac0d60c54ea7c4a1d9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 31 Mar 2026 15:10:16 +0000 Subject: [PATCH 02/10] Add warning FS3885 for let-in with multi-line body in sequence expressions Agent-Logs-Url: https://github.com/dotnet/fsharp/sessions/740bb677-5347-48ad-9001-278dfc1631e3 Co-authored-by: abonie <20281641+abonie@users.noreply.github.com> --- .../.FSharp.Compiler.Service/11.0.100.md | 1 + .../Checking/Expressions/CheckExpressions.fs | 10 +++ src/Compiler/FSComp.txt | 2 + src/Compiler/Facilities/LanguageFeatures.fs | 3 + src/Compiler/Facilities/LanguageFeatures.fsi | 1 + .../ErrorMessages/WarnExpressionTests.fs | 86 +++++++++++++++++++ 6 files changed, 103 insertions(+) diff --git a/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md b/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md index d5c2087765e..1388a605522 100644 --- a/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md +++ b/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md @@ -22,3 +22,4 @@ * Added warning FS3884 when a function or delegate value is used as an interpolated string argument. ([PR #19289](https://github.com/dotnet/fsharp/pull/19289)) * Add `#version;;` directive to F# Interactive to display version and environment information. ([Issue #13307](https://github.com/dotnet/fsharp/issues/13307), [PR #19332](https://github.com/dotnet/fsharp/pull/19332)) +* Added warning FS3885 when `let ... in` with explicit `in` keyword is used in a sequence expression and the body extends to subsequent lines, causing unexpected scoping. ([Issue #7091](https://github.com/dotnet/fsharp/issues/7091), [PR #19526](https://github.com/dotnet/fsharp/pull/19526)) diff --git a/src/Compiler/Checking/Expressions/CheckExpressions.fs b/src/Compiler/Checking/Expressions/CheckExpressions.fs index 635a0dff045..91de1d8c442 100644 --- a/src/Compiler/Checking/Expressions/CheckExpressions.fs +++ b/src/Compiler/Checking/Expressions/CheckExpressions.fs @@ -6041,6 +6041,16 @@ and TcExprUndelayed (cenv: cenv) (overallTy: OverallTy) env tpenv (synExpr: SynE errorR(Error(FSComp.SR.tcConstructRequiresComputationExpression(), leadingKeyword.Range)) | _ -> () + // Warn when 'let ... in' has an explicit 'in' keyword and the body is a sequential expression + // spanning multiple lines. This indicates the user likely intended the 'let ... in' to scope only + // over the expression on the same line, but the parser greedily consumed subsequent lines as body. + match letOrUse with + | { Trivia = { InKeyword = Some inRange }; Body = SynExpr.Sequential(expr2 = expr2) } + when g.langVersion.SupportsFeature LanguageFeature.WarnOnLetInSequenceExpression + && expr2.Range.StartLine > inRange.StartLine -> + warning(Error(FSComp.SR.tcLetExpressionWithInHasMultiLineBody(), inRange)) + | _ -> () + TcLinearExprs (TcExprThatCanBeCtorBody cenv) cenv env overallTy tpenv false synExpr id | SynExpr.TryWith (synBodyExpr, synWithClauses, mTryToLast, spTry, spWith, trivia) -> diff --git a/src/Compiler/FSComp.txt b/src/Compiler/FSComp.txt index a4007147b9a..8835f841443 100644 --- a/src/Compiler/FSComp.txt +++ b/src/Compiler/FSComp.txt @@ -1809,8 +1809,10 @@ featureWarnWhenFunctionValueUsedAsInterpolatedStringArg,"Warn when a function va featureMethodOverloadsCache,"Support for caching method overload resolution results for improved compilation performance." featureImplicitDIMCoverage,"Implicit dispatch slot coverage for default interface member implementations" featurePreprocessorElif,"#elif preprocessor directive" +featureWarnOnLetInSequenceExpression,"Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines" 3880,optsLangVersionOutOfSupport,"Language version '%s' is out of support. The last .NET SDK supporting it is available at https://dotnet.microsoft.com/en-us/download/dotnet/%s" 3881,optsUnrecognizedLanguageFeature,"Unrecognized language feature name: '%s'. Use a valid feature name such as 'NameOf' or 'StringInterpolation'." 3882,lexHashElifMustBeFirst,"#elif directive must appear as the first non-whitespace character on a line" 3883,lexHashElifMustHaveIdent,"#elif directive should be immediately followed by an identifier" 3884,tcFunctionValueUsedAsInterpolatedStringArg,"This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments." +3885,tcLetExpressionWithInHasMultiLineBody,"The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope." diff --git a/src/Compiler/Facilities/LanguageFeatures.fs b/src/Compiler/Facilities/LanguageFeatures.fs index 1bc31837052..0cc80ce4541 100644 --- a/src/Compiler/Facilities/LanguageFeatures.fs +++ b/src/Compiler/Facilities/LanguageFeatures.fs @@ -108,6 +108,7 @@ type LanguageFeature = | MethodOverloadsCache | ImplicitDIMCoverage | PreprocessorElif + | WarnOnLetInSequenceExpression /// LanguageVersion management type LanguageVersion(versionText, ?disabledFeaturesArray: LanguageFeature array) = @@ -251,6 +252,7 @@ type LanguageVersion(versionText, ?disabledFeaturesArray: LanguageFeature array) // Put stabilized features here for F# 11.0 previews via .NET SDK preview channels LanguageFeature.WarnWhenFunctionValueUsedAsInterpolatedStringArg, languageVersion110 LanguageFeature.PreprocessorElif, languageVersion110 + LanguageFeature.WarnOnLetInSequenceExpression, languageVersion110 // Difference between languageVersion110 and preview - 11.0 gets turned on automatically by picking a preview .NET 11 SDK // previewVersion is only when "preview" is specified explicitly in project files and users also need a preview SDK @@ -453,6 +455,7 @@ type LanguageVersion(versionText, ?disabledFeaturesArray: LanguageFeature array) | LanguageFeature.MethodOverloadsCache -> FSComp.SR.featureMethodOverloadsCache () | LanguageFeature.ImplicitDIMCoverage -> FSComp.SR.featureImplicitDIMCoverage () | LanguageFeature.PreprocessorElif -> FSComp.SR.featurePreprocessorElif () + | LanguageFeature.WarnOnLetInSequenceExpression -> FSComp.SR.featureWarnOnLetInSequenceExpression () /// Get a version string associated with the given feature. static member GetFeatureVersionString feature = diff --git a/src/Compiler/Facilities/LanguageFeatures.fsi b/src/Compiler/Facilities/LanguageFeatures.fsi index fd6182c9d3e..1a247cda15e 100644 --- a/src/Compiler/Facilities/LanguageFeatures.fsi +++ b/src/Compiler/Facilities/LanguageFeatures.fsi @@ -99,6 +99,7 @@ type LanguageFeature = | MethodOverloadsCache | ImplicitDIMCoverage | PreprocessorElif + | WarnOnLetInSequenceExpression /// LanguageVersion management type LanguageVersion = diff --git a/tests/FSharp.Compiler.ComponentTests/ErrorMessages/WarnExpressionTests.fs b/tests/FSharp.Compiler.ComponentTests/ErrorMessages/WarnExpressionTests.fs index 942ab64dfcd..e07334ebdec 100644 --- a/tests/FSharp.Compiler.ComponentTests/ErrorMessages/WarnExpressionTests.fs +++ b/tests/FSharp.Compiler.ComponentTests/ErrorMessages/WarnExpressionTests.fs @@ -220,3 +220,89 @@ let main _argv = """ |> typecheck |> shouldSucceed + + // https://github.com/dotnet/fsharp/issues/7091 + [] + let ``Warn when let-in has multi-line sequential body in do block``() = + FSharp """ +module Test +let x = 42 +do + let x = 1 in x + 1 + x + """ + |> withLangVersionPreview + |> typecheck + |> shouldFail + |> withDiagnostics [ + (Warning 3885, Line 5, Col 15, Line 5, Col 17, + "The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope.") + (Warning 20, Line 5, Col 18, Line 5, Col 23, + "The result of this expression has type 'int' and is implicitly ignored. Consider using 'ignore' to discard this value explicitly, e.g. 'expr |> ignore', or 'let' to bind the result to a name, e.g. 'let result = expr'.") + (Warning 20, Line 5, Col 5, Line 6, Col 6, + "The result of this expression has type 'int' and is implicitly ignored. Consider using 'ignore' to discard this value explicitly, e.g. 'expr |> ignore', or 'let' to bind the result to a name, e.g. 'let result = expr'.") + ] + + // https://github.com/dotnet/fsharp/issues/7091 + [] + let ``No warning for single-line let-in``() = + FSharp """ +module Test +let result = let x = 1 in x + 1 + """ + |> withLangVersionPreview + |> typecheck + |> shouldSucceed + + // https://github.com/dotnet/fsharp/issues/7091 + [] + let ``No warning for let without in keyword``() = + FSharp """ +module Test +let x = 42 +do + let x = 1 + printfn "%d" x + """ + |> withLangVersionPreview + |> typecheck + |> shouldSucceed + + // https://github.com/dotnet/fsharp/issues/7091 + [] + let ``No warning for let-in without langversion preview``() = + FSharp """ +module Test +let x = 42 +do + let x = 1 in x + 1 + x + """ + |> withLangVersion "9.0" + |> typecheck + |> shouldFail + |> withDiagnostics [ + (Warning 20, Line 5, Col 18, Line 5, Col 23, + "The result of this expression has type 'int' and is implicitly ignored. Consider using 'ignore' to discard this value explicitly, e.g. 'expr |> ignore', or 'let' to bind the result to a name, e.g. 'let result = expr'.") + (Warning 20, Line 5, Col 5, Line 6, Col 6, + "The result of this expression has type 'int' and is implicitly ignored. Consider using 'ignore' to discard this value explicitly, e.g. 'expr |> ignore', or 'let' to bind the result to a name, e.g. 'let result = expr'.") + ] + + // https://github.com/dotnet/fsharp/issues/7091 + [] + let ``Warn when let-in extends scope in function body``() = + FSharp """ +module Test +let f () = + let x = 1 in x + 1 + printfn "hello" + """ + |> withLangVersionPreview + |> typecheck + |> shouldFail + |> withDiagnostics [ + (Warning 3885, Line 4, Col 15, Line 4, Col 17, + "The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope.") + (Warning 20, Line 4, Col 18, Line 4, Col 23, + "The result of this expression has type 'int' and is implicitly ignored. Consider using 'ignore' to discard this value explicitly, e.g. 'expr |> ignore', or 'let' to bind the result to a name, e.g. 'let result = expr'.") + ] From 1046bc9993f69a2237f9a0c4642b97979e1716c2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 31 Mar 2026 15:18:33 +0000 Subject: [PATCH 03/10] Update release notes wording for FS3885 Agent-Logs-Url: https://github.com/dotnet/fsharp/sessions/740bb677-5347-48ad-9001-278dfc1631e3 Co-authored-by: abonie <20281641+abonie@users.noreply.github.com> --- docs/release-notes/.FSharp.Compiler.Service/11.0.100.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md b/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md index 1388a605522..4161d0e6c95 100644 --- a/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md +++ b/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md @@ -22,4 +22,4 @@ * Added warning FS3884 when a function or delegate value is used as an interpolated string argument. ([PR #19289](https://github.com/dotnet/fsharp/pull/19289)) * Add `#version;;` directive to F# Interactive to display version and environment information. ([Issue #13307](https://github.com/dotnet/fsharp/issues/13307), [PR #19332](https://github.com/dotnet/fsharp/pull/19332)) -* Added warning FS3885 when `let ... in` with explicit `in` keyword is used in a sequence expression and the body extends to subsequent lines, causing unexpected scoping. ([Issue #7091](https://github.com/dotnet/fsharp/issues/7091), [PR #19526](https://github.com/dotnet/fsharp/pull/19526)) +* Added warning FS3885 when `let ... in` with explicit `in` keyword has a body that extends to subsequent lines, which causes all subsequent lines to become part of the `let` body due to the parser's greedy behavior. ([Issue #7091](https://github.com/dotnet/fsharp/issues/7091), [PR #19526](https://github.com/dotnet/fsharp/pull/19526)) From d0a59326309648a337a1d2050a0861c8031a8980 Mon Sep 17 00:00:00 2001 From: Tomas Grosup Date: Thu, 9 Apr 2026 13:33:52 +0200 Subject: [PATCH 04/10] Fix CI failures: remove 'in' keyword triggering FS3885 and add XLF entries - Remove explicit 'in' keyword in HashMultiMap.fs and fsi.fs that triggered the new FS3885 warning (treated as error in CI builds) - Add missing XLF translation entries for featureWarnOnLetInSequenceExpression and tcLetExpressionWithInHasMultiLineBody to all 13 locale files Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/Compiler/Interactive/fsi.fs | 2 +- src/Compiler/Utilities/HashMultiMap.fs | 2 +- src/Compiler/xlf/FSComp.txt.cs.xlf | 10 ++++++++++ src/Compiler/xlf/FSComp.txt.de.xlf | 10 ++++++++++ src/Compiler/xlf/FSComp.txt.es.xlf | 10 ++++++++++ src/Compiler/xlf/FSComp.txt.fr.xlf | 10 ++++++++++ src/Compiler/xlf/FSComp.txt.it.xlf | 10 ++++++++++ src/Compiler/xlf/FSComp.txt.ja.xlf | 10 ++++++++++ src/Compiler/xlf/FSComp.txt.ko.xlf | 10 ++++++++++ src/Compiler/xlf/FSComp.txt.pl.xlf | 10 ++++++++++ src/Compiler/xlf/FSComp.txt.pt-BR.xlf | 10 ++++++++++ src/Compiler/xlf/FSComp.txt.ru.xlf | 10 ++++++++++ src/Compiler/xlf/FSComp.txt.tr.xlf | 10 ++++++++++ src/Compiler/xlf/FSComp.txt.zh-Hans.xlf | 10 ++++++++++ src/Compiler/xlf/FSComp.txt.zh-Hant.xlf | 10 ++++++++++ 15 files changed, 132 insertions(+), 2 deletions(-) diff --git a/src/Compiler/Interactive/fsi.fs b/src/Compiler/Interactive/fsi.fs index 1ff957e77a8..d1d78a19f65 100644 --- a/src/Compiler/Interactive/fsi.fs +++ b/src/Compiler/Interactive/fsi.fs @@ -1532,7 +1532,7 @@ type internal FsiConsoleInput /// Try to get the first line, if we snarfed it while probing. member _.TryGetFirstLine() = - let r = firstLine in + let r = firstLine firstLine <- None r diff --git a/src/Compiler/Utilities/HashMultiMap.fs b/src/Compiler/Utilities/HashMultiMap.fs index 2688869136e..e2e0832e2fa 100644 --- a/src/Compiler/Utilities/HashMultiMap.fs +++ b/src/Compiler/Utilities/HashMultiMap.fs @@ -169,7 +169,7 @@ type internal HashMultiMap<'Key, 'Value when 'Key: not null>(size: int, comparer | _ -> false member s.Remove(k: 'Key) = - let res = s.ContainsKey(k) in + let res = s.ContainsKey(k) s.Remove(k) res diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf index 6896c33a6a4..de788ad9d5b 100644 --- a/src/Compiler/xlf/FSComp.txt.cs.xlf +++ b/src/Compiler/xlf/FSComp.txt.cs.xlf @@ -8962,6 +8962,16 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. + + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + + + + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + + \ No newline at end of file diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf index 3966a59a853..1bc0060ec22 100644 --- a/src/Compiler/xlf/FSComp.txt.de.xlf +++ b/src/Compiler/xlf/FSComp.txt.de.xlf @@ -8962,6 +8962,16 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. + + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + + + + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + + \ No newline at end of file diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf index 08828606dd6..bccd16c9ca4 100644 --- a/src/Compiler/xlf/FSComp.txt.es.xlf +++ b/src/Compiler/xlf/FSComp.txt.es.xlf @@ -8962,6 +8962,16 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. + + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + + + + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + + \ No newline at end of file diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf index 5a28ec15953..f05e7f960e7 100644 --- a/src/Compiler/xlf/FSComp.txt.fr.xlf +++ b/src/Compiler/xlf/FSComp.txt.fr.xlf @@ -8962,6 +8962,16 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. + + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + + + + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + + \ No newline at end of file diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf index 5dead052c6a..4feeff4e636 100644 --- a/src/Compiler/xlf/FSComp.txt.it.xlf +++ b/src/Compiler/xlf/FSComp.txt.it.xlf @@ -8962,6 +8962,16 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. + + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + + + + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + + \ No newline at end of file diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf index f491fb0c4c5..b287d73b043 100644 --- a/src/Compiler/xlf/FSComp.txt.ja.xlf +++ b/src/Compiler/xlf/FSComp.txt.ja.xlf @@ -8962,6 +8962,16 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. + + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + + + + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + + \ No newline at end of file diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf index f8185fb2a22..b91da235c9c 100644 --- a/src/Compiler/xlf/FSComp.txt.ko.xlf +++ b/src/Compiler/xlf/FSComp.txt.ko.xlf @@ -8962,6 +8962,16 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. + + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + + + + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + + \ No newline at end of file diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf index 7e81e135eeb..85f725c94a9 100644 --- a/src/Compiler/xlf/FSComp.txt.pl.xlf +++ b/src/Compiler/xlf/FSComp.txt.pl.xlf @@ -8962,6 +8962,16 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. + + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + + + + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + + \ No newline at end of file diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf index 22a5db4504c..ae82e469b4d 100644 --- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf +++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf @@ -8962,6 +8962,16 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. + + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + + + + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + + \ No newline at end of file diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf index 8f5220ba47e..fc3715134de 100644 --- a/src/Compiler/xlf/FSComp.txt.ru.xlf +++ b/src/Compiler/xlf/FSComp.txt.ru.xlf @@ -8962,6 +8962,16 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. + + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + + + + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + + \ No newline at end of file diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf index 17509827124..d48b90024c5 100644 --- a/src/Compiler/xlf/FSComp.txt.tr.xlf +++ b/src/Compiler/xlf/FSComp.txt.tr.xlf @@ -8962,6 +8962,16 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. + + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + + + + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + + \ No newline at end of file diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf index bf26625f8ec..b0e5c25315a 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf @@ -8962,6 +8962,16 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. + + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + + + + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + + \ No newline at end of file diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf index 2a63e5ad753..5bfa69c98aa 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf @@ -8962,6 +8962,16 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. + + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines + + + + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + + \ No newline at end of file From ad1ee3a383f2302732204a8943be163ed6d7c102 Mon Sep 17 00:00:00 2001 From: Tomas Grosup Date: Thu, 9 Apr 2026 14:59:43 +0200 Subject: [PATCH 05/10] Fix CI failures: remove 'in' keyword in RemoveUnnecessaryParenthesesTests.fs triggering FS3885, fix PR number in release notes, add .Language/preview.md entry Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- docs/release-notes/.FSharp.Compiler.Service/11.0.100.md | 2 +- docs/release-notes/.Language/preview.md | 1 + .../CodeFixes/RemoveUnnecessaryParenthesesTests.fs | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md b/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md index 4161d0e6c95..2aad0b136cb 100644 --- a/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md +++ b/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md @@ -22,4 +22,4 @@ * Added warning FS3884 when a function or delegate value is used as an interpolated string argument. ([PR #19289](https://github.com/dotnet/fsharp/pull/19289)) * Add `#version;;` directive to F# Interactive to display version and environment information. ([Issue #13307](https://github.com/dotnet/fsharp/issues/13307), [PR #19332](https://github.com/dotnet/fsharp/pull/19332)) -* Added warning FS3885 when `let ... in` with explicit `in` keyword has a body that extends to subsequent lines, which causes all subsequent lines to become part of the `let` body due to the parser's greedy behavior. ([Issue #7091](https://github.com/dotnet/fsharp/issues/7091), [PR #19526](https://github.com/dotnet/fsharp/pull/19526)) +* Added warning FS3885 when `let ... in` with explicit `in` keyword has a body that extends to subsequent lines, which causes all subsequent lines to become part of the `let` body due to the parser's greedy behavior. ([Issue #7091](https://github.com/dotnet/fsharp/issues/7091), [PR #19501](https://github.com/dotnet/fsharp/pull/19501)) diff --git a/docs/release-notes/.Language/preview.md b/docs/release-notes/.Language/preview.md index d97ef294125..7bfa7af4ce5 100644 --- a/docs/release-notes/.Language/preview.md +++ b/docs/release-notes/.Language/preview.md @@ -2,6 +2,7 @@ * Warn (FS3884) when a function or delegate value is used as an interpolated string argument, since it will be formatted via `ToString` rather than being applied. ([PR #19289](https://github.com/dotnet/fsharp/pull/19289)) * Added `MethodOverloadsCache` language feature (preview) that caches overload resolution results for repeated method calls, significantly improving compilation performance. ([PR #19072](https://github.com/dotnet/fsharp/pull/19072)) +* Warn (FS3885) when `let ... in` with explicit `in` keyword has a body that extends to subsequent lines, causing unexpected scoping. ([Issue #7091](https://github.com/dotnet/fsharp/issues/7091), [PR #19501](https://github.com/dotnet/fsharp/pull/19501)) ### Fixed diff --git a/vsintegration/tests/FSharp.Editor.Tests/CodeFixes/RemoveUnnecessaryParenthesesTests.fs b/vsintegration/tests/FSharp.Editor.Tests/CodeFixes/RemoveUnnecessaryParenthesesTests.fs index 7901df88801..eb5a2de9f5b 100644 --- a/vsintegration/tests/FSharp.Editor.Tests/CodeFixes/RemoveUnnecessaryParenthesesTests.fs +++ b/vsintegration/tests/FSharp.Editor.Tests/CodeFixes/RemoveUnnecessaryParenthesesTests.fs @@ -2724,10 +2724,10 @@ module Patterns = let sb = StringBuilder() for original, expected in pairs -> - (let original = string (SynPat.fmt sb original) in + (let original = string (SynPat.fmt sb original) ignore <| sb.Clear() original), - (let expected = string (SynPat.fmt sb expected) in + (let expected = string (SynPat.fmt sb expected) ignore <| sb.Clear() expected) } From 1aae72dbf9219e993a792f77abc6751bb4247997 Mon Sep 17 00:00:00 2001 From: Tomas Grosup Date: Thu, 9 Apr 2026 16:31:52 +0200 Subject: [PATCH 06/10] Fix issue reference in release notes: #7091 -> #7741 The previous session referenced issue #7091 (Fix fsharp47 - test path fix) but the correct issue is #7741 (Wrong let expression parsing) which describes the let...in scoping problem this warning addresses. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- docs/release-notes/.FSharp.Compiler.Service/11.0.100.md | 2 +- docs/release-notes/.Language/preview.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md b/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md index 2aad0b136cb..fdec281a01a 100644 --- a/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md +++ b/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md @@ -22,4 +22,4 @@ * Added warning FS3884 when a function or delegate value is used as an interpolated string argument. ([PR #19289](https://github.com/dotnet/fsharp/pull/19289)) * Add `#version;;` directive to F# Interactive to display version and environment information. ([Issue #13307](https://github.com/dotnet/fsharp/issues/13307), [PR #19332](https://github.com/dotnet/fsharp/pull/19332)) -* Added warning FS3885 when `let ... in` with explicit `in` keyword has a body that extends to subsequent lines, which causes all subsequent lines to become part of the `let` body due to the parser's greedy behavior. ([Issue #7091](https://github.com/dotnet/fsharp/issues/7091), [PR #19501](https://github.com/dotnet/fsharp/pull/19501)) +* Added warning FS3885 when `let ... in` with explicit `in` keyword has a body that extends to subsequent lines, which causes all subsequent lines to become part of the `let` body due to the parser's greedy behavior. ([Issue #7741](https://github.com/dotnet/fsharp/issues/7741), [PR #19501](https://github.com/dotnet/fsharp/pull/19501)) diff --git a/docs/release-notes/.Language/preview.md b/docs/release-notes/.Language/preview.md index 7bfa7af4ce5..074af45dc5d 100644 --- a/docs/release-notes/.Language/preview.md +++ b/docs/release-notes/.Language/preview.md @@ -2,7 +2,7 @@ * Warn (FS3884) when a function or delegate value is used as an interpolated string argument, since it will be formatted via `ToString` rather than being applied. ([PR #19289](https://github.com/dotnet/fsharp/pull/19289)) * Added `MethodOverloadsCache` language feature (preview) that caches overload resolution results for repeated method calls, significantly improving compilation performance. ([PR #19072](https://github.com/dotnet/fsharp/pull/19072)) -* Warn (FS3885) when `let ... in` with explicit `in` keyword has a body that extends to subsequent lines, causing unexpected scoping. ([Issue #7091](https://github.com/dotnet/fsharp/issues/7091), [PR #19501](https://github.com/dotnet/fsharp/pull/19501)) +* Warn (FS3885) when `let ... in` with explicit `in` keyword has a body that extends to subsequent lines, causing unexpected scoping. ([Issue #7741](https://github.com/dotnet/fsharp/issues/7741), [PR #19501](https://github.com/dotnet/fsharp/pull/19501)) ### Fixed From f37cbfce4361ee74dfd71e9cf115a42729283c4d Mon Sep 17 00:00:00 2001 From: Tomas Grosup Date: Thu, 9 Apr 2026 18:17:34 +0200 Subject: [PATCH 07/10] Retrigger CI: FindReferences flaky test failure unrelated to PR changes Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> From eaa7a23f1862503b10fb3a33f7404823bf999d15 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 14 Apr 2026 19:28:23 +0000 Subject: [PATCH 08/10] Move let-in handling from type-checking warning to LexFilter change When an explicit 'in' keyword is used with a block-scoped 'let' in light syntax and the body starts on the same line as 'in', push a new seq block context to limit the body scope based on indentation. This prevents the parser from greedily capturing subsequent lines as part of the let body. - Remove type-checking warning from CheckExpressions.fs - Add LexFilter logic: when blockLet=true and body is on same line as 'in', push CtxtSeqBlock with AddBlockEnd to scope the body - Update WarnExpressionTests to reflect new behavior (no FS3885, different parse tree produces different W20 ranges) - Update SyntaxTree baseline for minor range change Agent-Logs-Url: https://github.com/dotnet/fsharp/sessions/1c48edbc-5796-4d9b-a80d-3a3d423c2e3f Co-authored-by: abonie <20281641+abonie@users.noreply.github.com> --- .../Checking/Expressions/CheckExpressions.fs | 10 ---------- src/Compiler/SyntaxTree/LexFilter.fs | 20 +++++++++++++++++-- .../ErrorMessages/WarnExpressionTests.fs | 8 ++------ ...LetOrUseContainsTheRangeOfInKeyword.fs.bsl | 2 +- 4 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/Compiler/Checking/Expressions/CheckExpressions.fs b/src/Compiler/Checking/Expressions/CheckExpressions.fs index 91de1d8c442..635a0dff045 100644 --- a/src/Compiler/Checking/Expressions/CheckExpressions.fs +++ b/src/Compiler/Checking/Expressions/CheckExpressions.fs @@ -6041,16 +6041,6 @@ and TcExprUndelayed (cenv: cenv) (overallTy: OverallTy) env tpenv (synExpr: SynE errorR(Error(FSComp.SR.tcConstructRequiresComputationExpression(), leadingKeyword.Range)) | _ -> () - // Warn when 'let ... in' has an explicit 'in' keyword and the body is a sequential expression - // spanning multiple lines. This indicates the user likely intended the 'let ... in' to scope only - // over the expression on the same line, but the parser greedily consumed subsequent lines as body. - match letOrUse with - | { Trivia = { InKeyword = Some inRange }; Body = SynExpr.Sequential(expr2 = expr2) } - when g.langVersion.SupportsFeature LanguageFeature.WarnOnLetInSequenceExpression - && expr2.Range.StartLine > inRange.StartLine -> - warning(Error(FSComp.SR.tcLetExpressionWithInHasMultiLineBody(), inRange)) - | _ -> () - TcLinearExprs (TcExprThatCanBeCtorBody cenv) cenv env overallTy tpenv false synExpr id | SynExpr.TryWith (synBodyExpr, synWithClauses, mTryToLast, spTry, spWith, trivia) -> diff --git a/src/Compiler/SyntaxTree/LexFilter.fs b/src/Compiler/SyntaxTree/LexFilter.fs index ed5da9fd043..ffa3072e21c 100644 --- a/src/Compiler/SyntaxTree/LexFilter.fs +++ b/src/Compiler/SyntaxTree/LexFilter.fs @@ -1680,8 +1680,24 @@ type LexFilterImpl ( if debug then dprintf "IN at %a (becomes %s)\n" outputPos tokenStartPos (if blockLet then "ODECLEND" else "IN") if tokenStartCol < offsidePos.Column then warn tokenTup (FSComp.SR.lexfltIncorrentIndentationOfIn()) popCtxt() - // Make sure we queue a dummy token at this position to check if any other pop rules apply - delayToken(pool.UseLocation(tokenTup, ODUMMY token)) + + if blockLet && lexbuf.SupportsFeature LanguageFeature.WarnOnLetInSequenceExpression then + let nextTokenTup = peekNextTokenTup() + let nextTokenStartPos = startPosOfTokenTup nextTokenTup + + if nextTokenStartPos.Line = tokenStartPos.Line then + // When the body expression starts on the same line as the 'in' keyword in light syntax, + // push a new seq block to limit the body scope to that line. This prevents the parser + // from greedily capturing all subsequent lines as part of the let body. + pushCtxtSeqBlock tokenTup AddBlockEnd + else + // Body starts on a new line after 'in' — the user intentionally placed the body + // on the next line, so use standard behavior. + delayToken(pool.UseLocation(tokenTup, ODUMMY token)) + else + // Make sure we queue a dummy token at this position to check if any other pop rules apply + delayToken(pool.UseLocation(tokenTup, ODUMMY token)) + returnToken tokenLexbufState (if blockLet then ODECLEND(mkSynRange tokenTup.StartPos tokenTup.EndPos, true) else token) // Balancing rule. Encountering a 'done' balances with a 'do'. i.e. even a non-offside 'done' closes a 'do' diff --git a/tests/FSharp.Compiler.ComponentTests/ErrorMessages/WarnExpressionTests.fs b/tests/FSharp.Compiler.ComponentTests/ErrorMessages/WarnExpressionTests.fs index e07334ebdec..2c053b6ad41 100644 --- a/tests/FSharp.Compiler.ComponentTests/ErrorMessages/WarnExpressionTests.fs +++ b/tests/FSharp.Compiler.ComponentTests/ErrorMessages/WarnExpressionTests.fs @@ -235,9 +235,7 @@ do |> typecheck |> shouldFail |> withDiagnostics [ - (Warning 3885, Line 5, Col 15, Line 5, Col 17, - "The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope.") - (Warning 20, Line 5, Col 18, Line 5, Col 23, + (Warning 20, Line 5, Col 5, Line 5, Col 23, "The result of this expression has type 'int' and is implicitly ignored. Consider using 'ignore' to discard this value explicitly, e.g. 'expr |> ignore', or 'let' to bind the result to a name, e.g. 'let result = expr'.") (Warning 20, Line 5, Col 5, Line 6, Col 6, "The result of this expression has type 'int' and is implicitly ignored. Consider using 'ignore' to discard this value explicitly, e.g. 'expr |> ignore', or 'let' to bind the result to a name, e.g. 'let result = expr'.") @@ -301,8 +299,6 @@ let f () = |> typecheck |> shouldFail |> withDiagnostics [ - (Warning 3885, Line 4, Col 15, Line 4, Col 17, - "The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope.") - (Warning 20, Line 4, Col 18, Line 4, Col 23, + (Warning 20, Line 4, Col 5, Line 4, Col 23, "The result of this expression has type 'int' and is implicitly ignored. Consider using 'ignore' to discard this value explicitly, e.g. 'expr |> ignore', or 'let' to bind the result to a name, e.g. 'let result = expr'.") ] diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl index 4fb6595cbd2..b65ca5c4e11 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl @@ -23,7 +23,7 @@ ImplFile Range = (2,0--2,15) Trivia = { InKeyword = Some (2,10--2,12) } IsFromSource = true }, (2,0--2,15))], PreXmlDocEmpty, [], None, - (2,0--2,15), { LeadingKeyword = None })], (true, true), + (2,0--3,0), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) From 08e543a34635e7b2463e951741b83fa2c9ef2a82 Mon Sep 17 00:00:00 2001 From: Tomas Grosup Date: Wed, 15 Apr 2026 10:06:02 +0200 Subject: [PATCH 09/10] Add SyntaxTree tests for let-in scoping and remove dead FS3885 warning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add 7 SyntaxTree tests (LetIn 01-07) verifying let-in body scoping after the LexFilter change: module-level, semicolons, nested let-in, triple-nested, if-then-else, if-else with nested let-in, and named module counterpart to the anonymous module InKeyword test - Remove dead FS3885 tcLetExpressionWithInHasMultiLineBody warning from FSComp.txt and all xlf files (no code references it after LexFilter change) - Update feature description to reflect LexFilter behavior Note on SynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl (2,0--3,0): The AnonModule range extends to (3,0) due to the OBLOCKEND token from the let-in scope block being positioned at EOF. This ONLY affects the SynModuleOrNamespace range — the LetOrUse range stays correct at (2,0--2,15). Named modules are unaffected (see LetIn 07.fs.bsl where the same code produces module range (1,0--3,15), ending at content). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/Compiler/FSComp.txt | 3 +- src/Compiler/xlf/FSComp.txt.cs.xlf | 9 +-- src/Compiler/xlf/FSComp.txt.de.xlf | 9 +-- src/Compiler/xlf/FSComp.txt.es.xlf | 9 +-- src/Compiler/xlf/FSComp.txt.fr.xlf | 9 +-- src/Compiler/xlf/FSComp.txt.it.xlf | 9 +-- src/Compiler/xlf/FSComp.txt.ja.xlf | 9 +-- src/Compiler/xlf/FSComp.txt.ko.xlf | 9 +-- src/Compiler/xlf/FSComp.txt.pl.xlf | 9 +-- src/Compiler/xlf/FSComp.txt.pt-BR.xlf | 9 +-- src/Compiler/xlf/FSComp.txt.ru.xlf | 9 +-- src/Compiler/xlf/FSComp.txt.tr.xlf | 9 +-- src/Compiler/xlf/FSComp.txt.zh-Hans.xlf | 9 +-- src/Compiler/xlf/FSComp.txt.zh-Hant.xlf | 9 +-- .../data/SyntaxTree/Expression/LetIn 01.fs | 4 + .../SyntaxTree/Expression/LetIn 01.fs.bsl | 30 +++++++ .../data/SyntaxTree/Expression/LetIn 02.fs | 4 + .../SyntaxTree/Expression/LetIn 02.fs.bsl | 33 ++++++++ .../data/SyntaxTree/Expression/LetIn 03.fs | 5 ++ .../SyntaxTree/Expression/LetIn 03.fs.bsl | 57 +++++++++++++ .../data/SyntaxTree/Expression/LetIn 04.fs | 5 ++ .../SyntaxTree/Expression/LetIn 04.fs.bsl | 80 +++++++++++++++++++ .../data/SyntaxTree/Expression/LetIn 05.fs | 5 ++ .../SyntaxTree/Expression/LetIn 05.fs.bsl | 43 ++++++++++ .../data/SyntaxTree/Expression/LetIn 06.fs | 5 ++ .../SyntaxTree/Expression/LetIn 06.fs.bsl | 67 ++++++++++++++++ .../data/SyntaxTree/Expression/LetIn 07.fs | 3 + .../SyntaxTree/Expression/LetIn 07.fs.bsl | 29 +++++++ 28 files changed, 397 insertions(+), 93 deletions(-) create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 01.fs create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 01.fs.bsl create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 02.fs create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 02.fs.bsl create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 03.fs create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 03.fs.bsl create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 04.fs create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 04.fs.bsl create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 05.fs create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 05.fs.bsl create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 06.fs create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 06.fs.bsl create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 07.fs create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 07.fs.bsl diff --git a/src/Compiler/FSComp.txt b/src/Compiler/FSComp.txt index 8835f841443..0ebe19b444d 100644 --- a/src/Compiler/FSComp.txt +++ b/src/Compiler/FSComp.txt @@ -1809,10 +1809,9 @@ featureWarnWhenFunctionValueUsedAsInterpolatedStringArg,"Warn when a function va featureMethodOverloadsCache,"Support for caching method overload resolution results for improved compilation performance." featureImplicitDIMCoverage,"Implicit dispatch slot coverage for default interface member implementations" featurePreprocessorElif,"#elif preprocessor directive" -featureWarnOnLetInSequenceExpression,"Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines" +featureWarnOnLetInSequenceExpression,"Scope 'let ... in' body to the same line in sequence expressions" 3880,optsLangVersionOutOfSupport,"Language version '%s' is out of support. The last .NET SDK supporting it is available at https://dotnet.microsoft.com/en-us/download/dotnet/%s" 3881,optsUnrecognizedLanguageFeature,"Unrecognized language feature name: '%s'. Use a valid feature name such as 'NameOf' or 'StringInterpolation'." 3882,lexHashElifMustBeFirst,"#elif directive must appear as the first non-whitespace character on a line" 3883,lexHashElifMustHaveIdent,"#elif directive should be immediately followed by an identifier" 3884,tcFunctionValueUsedAsInterpolatedStringArg,"This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments." -3885,tcLetExpressionWithInHasMultiLineBody,"The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope." diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf index de788ad9d5b..7f96735e6a9 100644 --- a/src/Compiler/xlf/FSComp.txt.cs.xlf +++ b/src/Compiler/xlf/FSComp.txt.cs.xlf @@ -8963,13 +8963,8 @@ - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - - - - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + Scope 'let ... in' body to the same line in sequence expressions + Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf index 1bc0060ec22..8f311719508 100644 --- a/src/Compiler/xlf/FSComp.txt.de.xlf +++ b/src/Compiler/xlf/FSComp.txt.de.xlf @@ -8963,13 +8963,8 @@ - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - - - - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + Scope 'let ... in' body to the same line in sequence expressions + Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf index bccd16c9ca4..11104c260d6 100644 --- a/src/Compiler/xlf/FSComp.txt.es.xlf +++ b/src/Compiler/xlf/FSComp.txt.es.xlf @@ -8963,13 +8963,8 @@ - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - - - - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + Scope 'let ... in' body to the same line in sequence expressions + Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf index f05e7f960e7..aee0c251cf5 100644 --- a/src/Compiler/xlf/FSComp.txt.fr.xlf +++ b/src/Compiler/xlf/FSComp.txt.fr.xlf @@ -8963,13 +8963,8 @@ - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - - - - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + Scope 'let ... in' body to the same line in sequence expressions + Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf index 4feeff4e636..97e24c3a645 100644 --- a/src/Compiler/xlf/FSComp.txt.it.xlf +++ b/src/Compiler/xlf/FSComp.txt.it.xlf @@ -8963,13 +8963,8 @@ - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - - - - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + Scope 'let ... in' body to the same line in sequence expressions + Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf index b287d73b043..a9751d619e1 100644 --- a/src/Compiler/xlf/FSComp.txt.ja.xlf +++ b/src/Compiler/xlf/FSComp.txt.ja.xlf @@ -8963,13 +8963,8 @@ - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - - - - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + Scope 'let ... in' body to the same line in sequence expressions + Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf index b91da235c9c..b64e91fc670 100644 --- a/src/Compiler/xlf/FSComp.txt.ko.xlf +++ b/src/Compiler/xlf/FSComp.txt.ko.xlf @@ -8963,13 +8963,8 @@ - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - - - - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + Scope 'let ... in' body to the same line in sequence expressions + Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf index 85f725c94a9..9198a153aee 100644 --- a/src/Compiler/xlf/FSComp.txt.pl.xlf +++ b/src/Compiler/xlf/FSComp.txt.pl.xlf @@ -8963,13 +8963,8 @@ - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - - - - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + Scope 'let ... in' body to the same line in sequence expressions + Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf index ae82e469b4d..4de4f0c3c34 100644 --- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf +++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf @@ -8963,13 +8963,8 @@ - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - - - - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + Scope 'let ... in' body to the same line in sequence expressions + Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf index fc3715134de..cf8bef6af01 100644 --- a/src/Compiler/xlf/FSComp.txt.ru.xlf +++ b/src/Compiler/xlf/FSComp.txt.ru.xlf @@ -8963,13 +8963,8 @@ - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - - - - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + Scope 'let ... in' body to the same line in sequence expressions + Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf index d48b90024c5..9db51a4313e 100644 --- a/src/Compiler/xlf/FSComp.txt.tr.xlf +++ b/src/Compiler/xlf/FSComp.txt.tr.xlf @@ -8963,13 +8963,8 @@ - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - - - - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + Scope 'let ... in' body to the same line in sequence expressions + Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf index b0e5c25315a..94822dba6f5 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf @@ -8963,13 +8963,8 @@ - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - - - - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + Scope 'let ... in' body to the same line in sequence expressions + Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf index 5bfa69c98aa..954b8f66575 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf @@ -8963,13 +8963,8 @@ - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines - - - - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. - The use of 'in' in 'let ... in' on a single line followed by additional code on subsequent lines causes all subsequent lines to be part of the 'let' body. This may lead to unexpected scoping. Either remove the 'in' keyword and rely on indentation, or add parentheses to clarify the intended scope. + Scope 'let ... in' body to the same line in sequence expressions + Scope 'let ... in' body to the same line in sequence expressions diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 01.fs b/tests/service/data/SyntaxTree/Expression/LetIn 01.fs new file mode 100644 index 00000000000..5437a88b512 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 01.fs @@ -0,0 +1,4 @@ +module Module + +let a = 1 in b +c diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 01.fs.bsl b/tests/service/data/SyntaxTree/Expression/LetIn 01.fs.bsl new file mode 100644 index 00000000000..ab833fadfb4 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 01.fs.bsl @@ -0,0 +1,30 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/LetIn 01.fs", false, QualifiedNameOfFile Module, [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (LetOrUse + { IsRecursive = false + Bindings = + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named (SynIdent (a, None), false, None, (3,4--3,5)), None, + Const (Int32 1, (3,8--3,9)), (3,4--3,5), Yes (3,0--3,9), + { LeadingKeyword = Let (3,0--3,3) + InlineKeyword = None + EqualsRange = Some (3,6--3,7) })] + Body = Ident b + Range = (3,0--3,14) + Trivia = { InKeyword = Some (3,10--3,12) } + IsFromSource = true }, (3,0--3,14)); + Expr (Ident c, (4,0--4,1))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--4,1), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + WarnDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 02.fs b/tests/service/data/SyntaxTree/Expression/LetIn 02.fs new file mode 100644 index 00000000000..b71d35687b9 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 02.fs @@ -0,0 +1,4 @@ +module Module + +let a = 1 in b; c +d diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 02.fs.bsl b/tests/service/data/SyntaxTree/Expression/LetIn 02.fs.bsl new file mode 100644 index 00000000000..af081c7f0e1 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 02.fs.bsl @@ -0,0 +1,33 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/LetIn 02.fs", false, QualifiedNameOfFile Module, [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (LetOrUse + { IsRecursive = false + Bindings = + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named (SynIdent (a, None), false, None, (3,4--3,5)), None, + Const (Int32 1, (3,8--3,9)), (3,4--3,5), Yes (3,0--3,9), + { LeadingKeyword = Let (3,0--3,3) + InlineKeyword = None + EqualsRange = Some (3,6--3,7) })] + Body = + Sequential + (SuppressNeither, true, Ident b, Ident c, (3,13--3,17), + { SeparatorRange = Some (3,14--3,15) }) + Range = (3,0--3,17) + Trivia = { InKeyword = Some (3,10--3,12) } + IsFromSource = true }, (3,0--3,17)); + Expr (Ident d, (4,0--4,1))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--4,1), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + WarnDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 03.fs b/tests/service/data/SyntaxTree/Expression/LetIn 03.fs new file mode 100644 index 00000000000..72a1fde1b87 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 03.fs @@ -0,0 +1,5 @@ +module Module + +do + let a = 1 in let b = 2 in c + d diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 03.fs.bsl b/tests/service/data/SyntaxTree/Expression/LetIn 03.fs.bsl new file mode 100644 index 00000000000..904a483263b --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 03.fs.bsl @@ -0,0 +1,57 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/LetIn 03.fs", false, QualifiedNameOfFile Module, [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (Do + (Sequential + (SuppressNeither, true, + LetOrUse + { IsRecursive = false + Bindings = + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named (SynIdent (a, None), false, None, (4,8--4,9)), + None, Const (Int32 1, (4,12--4,13)), (4,8--4,9), + Yes (4,4--4,13), + { LeadingKeyword = Let (4,4--4,7) + InlineKeyword = None + EqualsRange = Some (4,10--4,11) })] + Body = + LetOrUse + { IsRecursive = false + Bindings = + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,17), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (b, None), false, None, + (4,21--4,22)), None, + Const (Int32 2, (4,25--4,26)), (4,21--4,22), + Yes (4,17--4,26), + { LeadingKeyword = Let (4,17--4,20) + InlineKeyword = None + EqualsRange = Some (4,23--4,24) })] + Body = Ident c + Range = (4,17--4,31) + Trivia = { InKeyword = Some (4,27--4,29) } + IsFromSource = true } + Range = (4,4--4,31) + Trivia = { InKeyword = Some (4,14--4,16) } + IsFromSource = true }, Ident d, (4,4--5,5), + { SeparatorRange = None }), (3,0--5,5)), (3,0--5,5))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--5,5), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + WarnDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 04.fs b/tests/service/data/SyntaxTree/Expression/LetIn 04.fs new file mode 100644 index 00000000000..8f1e1f2134d --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 04.fs @@ -0,0 +1,5 @@ +module Module + +do + let a = 1 in let b = 2 in let c = 3 in () + d diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 04.fs.bsl b/tests/service/data/SyntaxTree/Expression/LetIn 04.fs.bsl new file mode 100644 index 00000000000..7604cc1b347 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 04.fs.bsl @@ -0,0 +1,80 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/LetIn 04.fs", false, QualifiedNameOfFile Module, [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (Do + (Sequential + (SuppressNeither, true, + LetOrUse + { IsRecursive = false + Bindings = + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named (SynIdent (a, None), false, None, (4,8--4,9)), + None, Const (Int32 1, (4,12--4,13)), (4,8--4,9), + Yes (4,4--4,13), + { LeadingKeyword = Let (4,4--4,7) + InlineKeyword = None + EqualsRange = Some (4,10--4,11) })] + Body = + LetOrUse + { IsRecursive = false + Bindings = + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,17), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([], SynArgInfo ([], false, None)), None), + Named + (SynIdent (b, None), false, None, + (4,21--4,22)), None, + Const (Int32 2, (4,25--4,26)), (4,21--4,22), + Yes (4,17--4,26), + { LeadingKeyword = Let (4,17--4,20) + InlineKeyword = None + EqualsRange = Some (4,23--4,24) })] + Body = + LetOrUse + { IsRecursive = false + Bindings = + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,30), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (c, None), false, None, + (4,34--4,35)), None, + Const (Int32 3, (4,38--4,39)), + (4,34--4,35), Yes (4,30--4,39), + { LeadingKeyword = Let (4,30--4,33) + InlineKeyword = None + EqualsRange = Some (4,36--4,37) })] + Body = Const (Unit, (4,43--4,45)) + Range = (4,30--4,45) + Trivia = { InKeyword = Some (4,40--4,42) } + IsFromSource = true } + Range = (4,17--4,45) + Trivia = { InKeyword = Some (4,27--4,29) } + IsFromSource = true } + Range = (4,4--4,45) + Trivia = { InKeyword = Some (4,14--4,16) } + IsFromSource = true }, Ident d, (4,4--5,5), + { SeparatorRange = None }), (3,0--5,5)), (3,0--5,5))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--5,5), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + WarnDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 05.fs b/tests/service/data/SyntaxTree/Expression/LetIn 05.fs new file mode 100644 index 00000000000..e2d60e84964 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 05.fs @@ -0,0 +1,5 @@ +module Module + +do + let a = 1 in if true then b else c + d diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 05.fs.bsl b/tests/service/data/SyntaxTree/Expression/LetIn 05.fs.bsl new file mode 100644 index 00000000000..c5bb654a783 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 05.fs.bsl @@ -0,0 +1,43 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/LetIn 05.fs", false, QualifiedNameOfFile Module, [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (Do + (Sequential + (SuppressNeither, true, + LetOrUse + { IsRecursive = false + Bindings = + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named (SynIdent (a, None), false, None, (4,8--4,9)), + None, Const (Int32 1, (4,12--4,13)), (4,8--4,9), + Yes (4,4--4,13), + { LeadingKeyword = Let (4,4--4,7) + InlineKeyword = None + EqualsRange = Some (4,10--4,11) })] + Body = + IfThenElse + (Const (Bool true, (4,20--4,24)), Ident b, + Some (Ident c), Yes (4,17--4,29), false, + (4,17--4,38), { IfKeyword = (4,17--4,19) + IsElif = false + ThenKeyword = (4,25--4,29) + ElseKeyword = Some (4,32--4,36) + IfToThenRange = (4,17--4,29) }) + Range = (4,4--4,38) + Trivia = { InKeyword = Some (4,14--4,16) } + IsFromSource = true }, Ident d, (4,4--5,5), + { SeparatorRange = None }), (3,0--5,5)), (3,0--5,5))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--5,5), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + WarnDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 06.fs b/tests/service/data/SyntaxTree/Expression/LetIn 06.fs new file mode 100644 index 00000000000..5314a7c1640 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 06.fs @@ -0,0 +1,5 @@ +module Module + +do + let a = 1 in if true then b else let c = 2 in 3 + d diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 06.fs.bsl b/tests/service/data/SyntaxTree/Expression/LetIn 06.fs.bsl new file mode 100644 index 00000000000..89437072c4b --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 06.fs.bsl @@ -0,0 +1,67 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/LetIn 06.fs", false, QualifiedNameOfFile Module, [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (Do + (Sequential + (SuppressNeither, true, + LetOrUse + { IsRecursive = false + Bindings = + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named (SynIdent (a, None), false, None, (4,8--4,9)), + None, Const (Int32 1, (4,12--4,13)), (4,8--4,9), + Yes (4,4--4,13), + { LeadingKeyword = Let (4,4--4,7) + InlineKeyword = None + EqualsRange = Some (4,10--4,11) })] + Body = + IfThenElse + (Const (Bool true, (4,20--4,24)), Ident b, + Some + (LetOrUse + { IsRecursive = false + Bindings = + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,37), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo + ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (c, None), false, None, + (4,41--4,42)), None, + Const (Int32 2, (4,45--4,46)), + (4,41--4,42), Yes (4,37--4,46), + { LeadingKeyword = Let (4,37--4,40) + InlineKeyword = None + EqualsRange = Some (4,43--4,44) })] + Body = Const (Int32 3, (4,50--4,51)) + Range = (4,37--4,51) + Trivia = { InKeyword = Some (4,47--4,49) } + IsFromSource = true }), Yes (4,17--4,29), + false, (4,17--4,51), + { IfKeyword = (4,17--4,19) + IsElif = false + ThenKeyword = (4,25--4,29) + ElseKeyword = Some (4,32--4,36) + IfToThenRange = (4,17--4,29) }) + Range = (4,4--4,51) + Trivia = { InKeyword = Some (4,14--4,16) } + IsFromSource = true }, Ident d, (4,4--5,5), + { SeparatorRange = None }), (3,0--5,5)), (3,0--5,5))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--5,5), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + WarnDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 07.fs b/tests/service/data/SyntaxTree/Expression/LetIn 07.fs new file mode 100644 index 00000000000..8b63d0e3adf --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 07.fs @@ -0,0 +1,3 @@ +module Module + +let x = 1 in () diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 07.fs.bsl b/tests/service/data/SyntaxTree/Expression/LetIn 07.fs.bsl new file mode 100644 index 00000000000..f3738aa319c --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 07.fs.bsl @@ -0,0 +1,29 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/LetIn 07.fs", false, QualifiedNameOfFile Module, [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (LetOrUse + { IsRecursive = false + Bindings = + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named (SynIdent (x, None), false, None, (3,4--3,5)), None, + Const (Int32 1, (3,8--3,9)), (3,4--3,5), Yes (3,0--3,9), + { LeadingKeyword = Let (3,0--3,3) + InlineKeyword = None + EqualsRange = Some (3,6--3,7) })] + Body = Const (Unit, (3,13--3,15)) + Range = (3,0--3,15) + Trivia = { InKeyword = Some (3,10--3,12) } + IsFromSource = true }, (3,0--3,15))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--3,15), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + WarnDirectives = [] + CodeComments = [] }, set [])) From 4ce0417218b639621dd7b21900cb4bbbc5c7917f Mon Sep 17 00:00:00 2001 From: Tomas Grosup Date: Wed, 15 Apr 2026 21:41:45 +0200 Subject: [PATCH 10/10] Rename feature, fix release notes, fix AnonModule range, add tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Rename WarnOnLetInSequenceExpression → LetInBodyScoping (no longer a warning) - Move release notes from Added to Fixed, describe parser behavior change - Fix AnonModule range in pars.fsy: use last declaration's Range.End instead of rhs (which includes OBLOCKEND at EOF position). This is the same pattern as PR #12585/#15369 for fixing block-end-derived ranges. Fixes the (2,0--3,0) regression to correct (2,0--2,15). - Add LetIn 08 (do block scoping from WarnExpressionTests) - Add LetIn 09 (function body scoping from WarnExpressionTests) - Add LetIn 10 (indentation continuation: c aligns with b, d is separate) - Update 204 anonymous module baselines (all consistent: end at last content character instead of extending to next-line col 0) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../.FSharp.Compiler.Service/11.0.100.md | 2 +- docs/release-notes/.Language/preview.md | 3 +- src/Compiler/FSComp.txt | 2 +- src/Compiler/Facilities/LanguageFeatures.fs | 6 +- src/Compiler/Facilities/LanguageFeatures.fsi | 2 +- src/Compiler/SyntaxTree/LexFilter.fs | 2 +- src/Compiler/pars.fsy | 15 ++++- src/Compiler/xlf/FSComp.txt.cs.xlf | 2 +- src/Compiler/xlf/FSComp.txt.de.xlf | 2 +- src/Compiler/xlf/FSComp.txt.es.xlf | 2 +- src/Compiler/xlf/FSComp.txt.fr.xlf | 2 +- src/Compiler/xlf/FSComp.txt.it.xlf | 2 +- src/Compiler/xlf/FSComp.txt.ja.xlf | 2 +- src/Compiler/xlf/FSComp.txt.ko.xlf | 2 +- src/Compiler/xlf/FSComp.txt.pl.xlf | 2 +- src/Compiler/xlf/FSComp.txt.pt-BR.xlf | 2 +- src/Compiler/xlf/FSComp.txt.ru.xlf | 2 +- src/Compiler/xlf/FSComp.txt.tr.xlf | 2 +- src/Compiler/xlf/FSComp.txt.zh-Hans.xlf | 2 +- src/Compiler/xlf/FSComp.txt.zh-Hant.xlf | 2 +- .../Attribute/RangeOfAttribute.fs.bsl | 2 +- .../Attribute/RangeOfAttributeWithPath.fs.bsl | 2 +- .../RangeOfAttributeWithTarget.fs.bsl | 2 +- ...ColonBeforeReturnTypeIsPartOfTrivia.fs.bsl | 2 +- ...eturnTypeIsPartOfTriviaInProperties.fs.bsl | 2 +- ...itionalDirectiveAroundInlineKeyword.fs.bsl | 2 +- .../Binding/InlineKeywordInBinding.fs.bsl | 2 +- ...nShouldBeIncludedInSynModuleDeclLet.fs.bsl | 2 +- ...dedInConstructorSynMemberDefnMember.fs.bsl | 2 +- ...tructorSynMemberDefnMemberOptAsSpec.fs.bsl | 2 +- ...edInFullSynMemberDefnMemberProperty.fs.bsl | 2 +- ...uldBeIncludedInSecondaryConstructor.fs.bsl | 2 +- ...eIncludedInSynMemberDefnLetBindings.fs.bsl | 2 +- ...ouldBeIncludedInSynMemberDefnMember.fs.bsl | 2 +- ...eShouldBeIncludedInSynModuleDeclLet.fs.bsl | 2 +- ...riteOnlySynMemberDefnMemberProperty.fs.bsl | 2 +- ...ignShouldBePresentInLocalLetBinding.fs.bsl | 2 +- ...ouldBePresentInLocalLetBindingTyped.fs.bsl | 2 +- ...lSignShouldBePresentInMemberBinding.fs.bsl | 2 +- ...resentInMemberBindingWithParameters.fs.bsl | 2 +- ...resentInMemberBindingWithReturnType.fs.bsl | 2 +- ...fEqualSignShouldBePresentInProperty.fs.bsl | 2 +- ...dBePresentInSynModuleDeclLetBinding.fs.bsl | 2 +- ...esentInSynModuleDeclLetBindingTyped.fs.bsl | 2 +- ...ldBePresentInSynExprLetOrUseBinding.fs.bsl | 2 +- ...dBePresentInSynModuleDeclLetBinding.fs.bsl | 2 +- ...nModuleDeclLetBindingWithAttributes.fs.bsl | 2 +- ...turnTypeOfBindingShouldContainStars.fs.bsl | 2 +- .../BlockCommentInSourceCode.fs.bsl | 2 +- ...BeCapturedIfUsedInAnInvalidLocation.fs.bsl | 2 +- ...ipleSlashCommentShouldNotBeCaptured.fs.bsl | 2 +- ...tilineCommentAreNotReportedAsTrivia.fs.bsl | 2 +- ...ltilineStringAreNotReportedAsTrivia.fs.bsl | 2 +- .../NestedIfElseEndif.fs.bsl | 2 +- ...NestedIfEndifWithComplexExpressions.fs.bsl | 2 +- .../SingleIfElseEndif.fs.bsl | 2 +- .../ConditionalDirective/SingleIfEndif.fs.bsl | 2 +- .../MultipleSynEnumCasesHaveBarRange.fs.bsl | 2 +- .../SingleSynEnumCaseHasBarRange.fs.bsl | 2 +- .../SingleSynEnumCaseWithoutBar.fs.bsl | 2 +- .../Expression/AnonymousRecords-04.fs.bsl | 4 +- .../Expression/AnonymousRecords-05.fs.bsl | 4 +- .../Expression/AnonymousRecords-06.fs.bsl | 4 +- .../DotLambda - _ Recovery - Casts.fsx.bsl | 2 +- .../data/SyntaxTree/Expression/LetIn 08.fs | 6 ++ .../SyntaxTree/Expression/LetIn 08.fs.bsl | 59 +++++++++++++++++ .../data/SyntaxTree/Expression/LetIn 09.fs | 5 ++ .../SyntaxTree/Expression/LetIn 09.fs.bsl | 64 +++++++++++++++++++ .../data/SyntaxTree/Expression/LetIn 10.fs | 5 ++ .../SyntaxTree/Expression/LetIn 10.fs.bsl | 33 ++++++++++ ...LetOrUseContainsTheRangeOfInKeyword.fs.bsl | 2 +- .../Expression/Sequential 01.fs.bsl | 4 +- .../Expression/Sequential 02.fs.bsl | 4 +- .../Expression/Sequential 03.fs.bsl | 4 +- ...xprDoContainsTheRangeOfTheDoKeyword.fs.bsl | 2 +- ...rForContainsTheRangeOfTheEqualsSign.fs.bsl | 2 +- ...LetOrUseContainsTheRangeOfInKeyword.fs.bsl | 2 +- ...seDoesNotContainTheRangeOfInKeyword.fs.bsl | 2 +- ...rsDoesNotContainTheRangeOfInKeyword.fs.bsl | 2 +- ...eBindingContainsTheRangeOfInKeyword.fs.bsl | 2 +- ...insTheRangeOfTheMatchAndWithKeyword.fs.bsl | 2 +- ...insTheRangeOfTheMatchAndWithKeyword.fs.bsl | 2 +- ...tainsTheRangeOfTheTryAndWithKeyword.fs.bsl | 2 +- ...tainsTheRangeOfTheTryAndWithKeyword.fs.bsl | 2 +- .../IfThenElse/Comment after else 01.fs.bsl | 2 +- .../IfThenElse/Comment after else 02.fs.bsl | 2 +- .../IfThenElse/DeeplyNestedIfThenElse.fs.bsl | 2 +- .../ElseKeywordInSimpleIfThenElse.fs.bsl | 2 +- .../IfThenElse/IfKeywordInIfThenElse.fs.bsl | 2 +- ...IfThenAndElseKeywordOnSeparateLines.fs.bsl | 2 +- .../IfThenElse/NestedElifInIfThenElse.fs.bsl | 2 +- .../NestedElseIfInIfThenElse.fs.bsl | 2 +- ...stedElseIfOnTheSameLineInIfThenElse.fs.bsl | 2 +- ...ComplexArgumentsLambdaHasArrowRange.fs.bsl | 2 +- .../DestructedLambdaHasArrowRange.fs.bsl | 2 +- ...rameterWithWildCardGivesCorrectBody.fs.bsl | 2 +- ...daWithTwoParametersGivesCorrectBody.fs.bsl | 2 +- ...thWildCardParameterGivesCorrectBody.fs.bsl | 2 +- ...dThatReturnsALambdaGivesCorrectBody.fs.bsl | 2 +- .../MultilineLambdaHasArrowRange.fs.bsl | 2 +- .../Lambda/SimpleLambdaHasArrowRange.fs.bsl | 2 +- .../Lambda/TupleInLambdaHasArrowRange.fs.bsl | 2 +- .../LeadingKeyword/AbstractKeyword.fs.bsl | 2 +- .../AbstractMemberKeyword.fs.bsl | 2 +- .../LeadingKeyword/AndKeyword.fs.bsl | 2 +- .../LeadingKeyword/DefaultValKeyword.fs.bsl | 2 +- .../LeadingKeyword/DoKeyword.fs.bsl | 2 +- .../LeadingKeyword/DoStaticKeyword.fs.bsl | 2 +- .../LeadingKeyword/LetKeyword.fs.bsl | 2 +- .../LeadingKeyword/LetRecKeyword.fs.bsl | 2 +- .../LeadingKeyword/MemberKeyword.fs.bsl | 2 +- .../LeadingKeyword/MemberValKeyword.fs.bsl | 2 +- .../LeadingKeyword/NewKeyword.fs.bsl | 2 +- .../LeadingKeyword/OverrideKeyword.fs.bsl | 2 +- .../LeadingKeyword/OverrideValKeyword.fs.bsl | 2 +- .../StaticAbstractKeyword.fs.bsl | 2 +- .../StaticAbstractMemberKeyword.fs.bsl | 2 +- .../LeadingKeyword/StaticLetKeyword.fs.bsl | 2 +- .../LeadingKeyword/StaticLetRecKeyword.fs.bsl | 2 +- .../LeadingKeyword/StaticMemberKeyword.fs.bsl | 2 +- .../StaticMemberValKeyword.fs.bsl | 2 +- .../LeadingKeyword/UseKeyword.fs.bsl | 2 +- .../LeadingKeyword/UseRecKeyword.fs.bsl | 2 +- ...ingleSynMatchClauseInSynExprTryWith.fs.bsl | 2 +- .../RangeOfArrowInSynMatchClause.fs.bsl | 2 +- ...ArrowInSynMatchClauseWithWhenClause.fs.bsl | 2 +- ...ipleSynMatchClausesInSynExprTryWith.fs.bsl | 2 +- ...ASingleSynMatchClauseInSynExprMatch.fs.bsl | 2 +- ...ingleSynMatchClauseInSynExprTryWith.fs.bsl | 2 +- ...ltipleSynMatchClausesInSynExprMatch.fs.bsl | 2 +- .../RangeOfMultipleSynMatchClause.fs.bsl | 2 +- .../RangeOfSingleSynMatchClause.fs.bsl | 2 +- ...OfSingleSynMatchClauseFollowedByBar.fs.bsl | 2 +- ...easureContainsTheRangeOfTheConstant.fs.bsl | 2 +- ...eTupleInMeasureTypeWithLeadingSlash.fs.bsl | 2 +- ...TypeTupleInMeasureTypeWithNoSlashes.fs.bsl | 2 +- ...TupleInMeasureTypeWithStartAndSlash.fs.bsl | 2 +- .../GetSetMemberWithInlineKeyword.fs.bsl | 2 +- .../Member/ImplicitCtorWithAsKeyword.fs.bsl | 2 +- .../Member/MemberWithInlineKeyword.fs.bsl | 2 +- ...berContainsTheRangeOfTheWithKeyword.fs.bsl | 2 +- ...lotContainsTheRangeOfTheWithKeyword.fs.bsl | 2 +- ...ertyContainsTheRangeOfTheEqualsSign.fs.bsl | 2 +- ...rtyContainsTheRangeOfTheWithKeyword.fs.bsl | 2 +- ...eDefnWithMemberWithGetHasXmlComment.fs.bsl | 2 +- .../SynTypeDefnWithMemberWithSetget.fs.bsl | 2 +- ...nTypeDefnWithStaticMemberWithGetset.fs.bsl | 2 +- ...ynExprObjMembersHaveCorrectKeywords.fs.bsl | 2 +- ...erDefnAbstractSlotHasCorrectKeyword.fs.bsl | 2 +- ...erDefnAutoPropertyHasCorrectKeyword.fs.bsl | 2 +- ...fnMemberSynValDataHasCorrectKeyword.fs.bsl | 2 +- .../RangeOfEqualSignShouldBePresent.fs.bsl | 2 +- .../Nullness/AbstractClassProperty.fs.bsl | 2 +- .../Nullness/DuCaseStringOrNull.fs.bsl | 2 +- .../Nullness/DuCaseTuplePrecedence.fs.bsl | 2 +- .../SyntaxTree/Nullness/ExplicitField.fs.bsl | 2 +- .../FunctionArgAsPatternWithNullCase.fs.bsl | 2 +- ...ericFunctionReturnTypeNotStructNull.fs.bsl | 2 +- .../GenericFunctionTyparNotNull.fs.bsl | 2 +- .../Nullness/GenericFunctionTyparNull.fs.bsl | 2 +- .../Nullness/GenericTypeNotNull.fs.bsl | 2 +- ...enericTypeNotNullAndOtherConstraint.fs.bsl | 2 +- ...tAndOtherConstraint-I_am_Still_Sane.fs.bsl | 4 +- .../Nullness/GenericTypeNull.fs.bsl | 2 +- ...icTypeOtherConstraintAndThenNotNull.fs.bsl | 2 +- .../SyntaxTree/Nullness/IntListOrNull.fs.bsl | 2 +- .../Nullness/IntListOrNullOrNullOrNull.fs.bsl | 2 +- .../Nullness/MatchWithTypeCast.fs.bsl | 2 +- .../Nullness/MatchWithTypeCastParens.fs.bsl | 2 +- ...thTypeCastParensAndSeparateNullCase.fs.bsl | 2 +- .../Nullness/NullAnnotatedExpression.fs.bsl | 2 +- .../Nullness/RegressionChoiceType.fs.bsl | 2 +- .../Nullness/RegressionOptionType.fs.bsl | 2 +- .../Nullness/SignatureInAbstractMember.fs.bsl | 2 +- .../SyntaxTree/Nullness/StringOrNull.fs.bsl | 2 +- .../Nullness/StringOrNullInFunctionArg.fs.bsl | 2 +- .../ActivePatternDefinition.fs.bsl | 2 +- ...ivePatternIdentifierInPrivateMember.fs.bsl | 2 +- .../CustomOperatorDefinition.fs.bsl | 2 +- .../ObjectModelWithTwoMembers.fs.bsl | 2 +- .../OperatorInMemberDefinition.fs.bsl | 2 +- .../PartialActivePatternDefinition.fs.bsl | 2 +- ...ePatternDefinitionWithoutParameters.fs.bsl | 2 +- .../QualifiedOperatorExpression.fs.bsl | 2 +- .../SyntaxTree/Pattern/InHeadPattern.fs.bsl | 2 +- .../Pattern/OperatorInMatchPattern.fs.bsl | 2 +- .../Pattern/OperatorInSynPatLongIdent.fs.bsl | 2 +- ...ParenthesesOfSynArgPatsNamePatPairs.fs.bsl | 2 +- ...airsContainsTheRangeOfTheEqualsSign.fs.bsl | 2 +- .../SynPatOrContainsTheRangeOfTheBar.fs.bsl | 2 +- .../LeadingKeywordInRecursiveTypes.fsi.bsl | 2 +- ...stBytesWithSynByteStringKindRegular.fs.bsl | 2 +- ...tBytesWithSynByteStringKindVerbatim.fs.bsl | 2 +- ...ConstStringWithSynStringKindRegular.fs.bsl | 2 +- ...tStringWithSynStringKindTripleQuote.fs.bsl | 2 +- ...onstStringWithSynStringKindVerbatim.fs.bsl | 2 +- ...latedStringWithSynStringKindRegular.fs.bsl | 2 +- ...dStringWithSynStringKindTripleQuote.fs.bsl | 2 +- ...atedStringWithSynStringKindVerbatim.fs.bsl | 2 +- ...stedSynTypeOrInsideSynExprTraitCall.fs.bsl | 2 +- ...SingleSynTypeInsideSynExprTraitCall.fs.bsl | 2 +- .../SynTypeOrInsideSynExprTraitCall.fs.bsl | 2 +- ...eConstraintWhereTyparSupportsMember.fs.bsl | 2 +- ...TypeOrWithAppTypeOnTheRightHandSide.fs.bsl | 2 +- ...sIncludeLeadingParameterAttributes.fsi.bsl | 2 +- ...pleDoesIncludeLeadingParameterName.fsi.bsl | 2 +- ...butesInOptionalNamedMemberParameter.fs.bsl | 2 +- ...eSynEnumCaseContainsRangeOfConstant.fs.bsl | 2 +- .../Type/NamedParametersInDelegateType.fs.bsl | 2 +- ...ributeShouldBeIncludedInSynTypeDefn.fs.bsl | 2 +- ...tesShouldBeIncludedInRecursiveTypes.fs.bsl | 2 +- ...eSynEnumCaseContainsRangeOfConstant.fs.bsl | 2 +- ...aceContainsTheRangeOfTheWithKeyword.fs.bsl | 2 +- ...uteContainsTheRangeOfTheTypeKeyword.fs.bsl | 2 +- ...ionContainsTheRangeOfTheWithKeyword.fs.bsl | 2 +- ...EnumContainsTheRangeOfTheEqualsSign.fs.bsl | 2 +- ...gateContainsTheRangeOfTheEqualsSign.fs.bsl | 2 +- ...ordContainsTheRangeOfTheWithKeyword.fs.bsl | 2 +- ...nionContainsTheRangeOfTheEqualsSign.fs.bsl | 2 +- ...DocContainsTheRangeOfTheTypeKeyword.fs.bsl | 2 +- .../Type/SynTypeFunHasRangeOfArrow.fs.bsl | 2 +- .../Type/SynTypeTupleWithStruct.fs.bsl | 2 +- .../SynTypeTupleWithStructRecovery.fs.bsl | 2 +- .../MultipleSynUnionCasesHaveBarRange.fs.bsl | 2 +- .../UnionCase/PrivateKeywordHasRange.fs.bsl | 2 +- .../SingleSynUnionCaseHasBarRange.fs.bsl | 2 +- .../SingleSynUnionCaseWithoutBar.fs.bsl | 2 +- .../UnionCase/SynUnionCaseKindFullType.fs.bsl | 2 +- .../UnionCaseFieldsCanHaveComments.fs.bsl | 2 +- .../WarnScope/IndentedWarnDirective.fs.bsl | 2 +- 230 files changed, 418 insertions(+), 234 deletions(-) create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 08.fs create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 08.fs.bsl create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 09.fs create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 09.fs.bsl create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 10.fs create mode 100644 tests/service/data/SyntaxTree/Expression/LetIn 10.fs.bsl diff --git a/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md b/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md index fdec281a01a..a742aea068e 100644 --- a/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md +++ b/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md @@ -17,9 +17,9 @@ * Fix `YieldFromFinal`/`ReturnFromFinal` being incorrectly called in non-tail positions (`for`, `use`, `use!`, `try/with` handler). ([Issue #19402](https://github.com/dotnet/fsharp/issues/19402), [PR #19403](https://github.com/dotnet/fsharp/pull/19403)) * Fixed how the source ranges of warn directives are reported (as trivia) in the parser output (by not reporting leading spaces). ([Issue #19405](https://github.com/dotnet/fsharp/issues/19405), [PR #19408]((https://github.com/dotnet/fsharp/pull/19408))) * Fix UoM value type `ToString()` returning garbage values when `--checknulls+` is enabled, caused by double address-taking in codegen. ([Issue #19435](https://github.com/dotnet/fsharp/issues/19435), [PR #19440](https://github.com/dotnet/fsharp/pull/19440)) +* Fix `let ... in` with explicit `in` keyword in light syntax: body is now scoped to the same line, preventing the parser from greedily capturing subsequent lines as part of the `let` body. ([Issue #7741](https://github.com/dotnet/fsharp/issues/7741), [PR #19501](https://github.com/dotnet/fsharp/pull/19501)) ### Added * Added warning FS3884 when a function or delegate value is used as an interpolated string argument. ([PR #19289](https://github.com/dotnet/fsharp/pull/19289)) * Add `#version;;` directive to F# Interactive to display version and environment information. ([Issue #13307](https://github.com/dotnet/fsharp/issues/13307), [PR #19332](https://github.com/dotnet/fsharp/pull/19332)) -* Added warning FS3885 when `let ... in` with explicit `in` keyword has a body that extends to subsequent lines, which causes all subsequent lines to become part of the `let` body due to the parser's greedy behavior. ([Issue #7741](https://github.com/dotnet/fsharp/issues/7741), [PR #19501](https://github.com/dotnet/fsharp/pull/19501)) diff --git a/docs/release-notes/.Language/preview.md b/docs/release-notes/.Language/preview.md index 074af45dc5d..161ae37eaf8 100644 --- a/docs/release-notes/.Language/preview.md +++ b/docs/release-notes/.Language/preview.md @@ -2,8 +2,9 @@ * Warn (FS3884) when a function or delegate value is used as an interpolated string argument, since it will be formatted via `ToString` rather than being applied. ([PR #19289](https://github.com/dotnet/fsharp/pull/19289)) * Added `MethodOverloadsCache` language feature (preview) that caches overload resolution results for repeated method calls, significantly improving compilation performance. ([PR #19072](https://github.com/dotnet/fsharp/pull/19072)) -* Warn (FS3885) when `let ... in` with explicit `in` keyword has a body that extends to subsequent lines, causing unexpected scoping. ([Issue #7741](https://github.com/dotnet/fsharp/issues/7741), [PR #19501](https://github.com/dotnet/fsharp/pull/19501)) ### Fixed +* Fix `let ... in` with explicit `in` keyword in light syntax: body is now scoped to the same line, preventing the parser from greedily capturing subsequent lines. ([Issue #7741](https://github.com/dotnet/fsharp/issues/7741), [PR #19501](https://github.com/dotnet/fsharp/pull/19501)) + ### Changed \ No newline at end of file diff --git a/src/Compiler/FSComp.txt b/src/Compiler/FSComp.txt index 0ebe19b444d..fc922f39d5e 100644 --- a/src/Compiler/FSComp.txt +++ b/src/Compiler/FSComp.txt @@ -1809,7 +1809,7 @@ featureWarnWhenFunctionValueUsedAsInterpolatedStringArg,"Warn when a function va featureMethodOverloadsCache,"Support for caching method overload resolution results for improved compilation performance." featureImplicitDIMCoverage,"Implicit dispatch slot coverage for default interface member implementations" featurePreprocessorElif,"#elif preprocessor directive" -featureWarnOnLetInSequenceExpression,"Scope 'let ... in' body to the same line in sequence expressions" +featureLetInBodyScoping,"Scope 'let ... in' body to the same line in sequence expressions" 3880,optsLangVersionOutOfSupport,"Language version '%s' is out of support. The last .NET SDK supporting it is available at https://dotnet.microsoft.com/en-us/download/dotnet/%s" 3881,optsUnrecognizedLanguageFeature,"Unrecognized language feature name: '%s'. Use a valid feature name such as 'NameOf' or 'StringInterpolation'." 3882,lexHashElifMustBeFirst,"#elif directive must appear as the first non-whitespace character on a line" diff --git a/src/Compiler/Facilities/LanguageFeatures.fs b/src/Compiler/Facilities/LanguageFeatures.fs index 0cc80ce4541..9cb3a0491fd 100644 --- a/src/Compiler/Facilities/LanguageFeatures.fs +++ b/src/Compiler/Facilities/LanguageFeatures.fs @@ -108,7 +108,7 @@ type LanguageFeature = | MethodOverloadsCache | ImplicitDIMCoverage | PreprocessorElif - | WarnOnLetInSequenceExpression + | LetInBodyScoping /// LanguageVersion management type LanguageVersion(versionText, ?disabledFeaturesArray: LanguageFeature array) = @@ -252,7 +252,7 @@ type LanguageVersion(versionText, ?disabledFeaturesArray: LanguageFeature array) // Put stabilized features here for F# 11.0 previews via .NET SDK preview channels LanguageFeature.WarnWhenFunctionValueUsedAsInterpolatedStringArg, languageVersion110 LanguageFeature.PreprocessorElif, languageVersion110 - LanguageFeature.WarnOnLetInSequenceExpression, languageVersion110 + LanguageFeature.LetInBodyScoping, languageVersion110 // Difference between languageVersion110 and preview - 11.0 gets turned on automatically by picking a preview .NET 11 SDK // previewVersion is only when "preview" is specified explicitly in project files and users also need a preview SDK @@ -455,7 +455,7 @@ type LanguageVersion(versionText, ?disabledFeaturesArray: LanguageFeature array) | LanguageFeature.MethodOverloadsCache -> FSComp.SR.featureMethodOverloadsCache () | LanguageFeature.ImplicitDIMCoverage -> FSComp.SR.featureImplicitDIMCoverage () | LanguageFeature.PreprocessorElif -> FSComp.SR.featurePreprocessorElif () - | LanguageFeature.WarnOnLetInSequenceExpression -> FSComp.SR.featureWarnOnLetInSequenceExpression () + | LanguageFeature.LetInBodyScoping -> FSComp.SR.featureLetInBodyScoping () /// Get a version string associated with the given feature. static member GetFeatureVersionString feature = diff --git a/src/Compiler/Facilities/LanguageFeatures.fsi b/src/Compiler/Facilities/LanguageFeatures.fsi index 1a247cda15e..9ff9268c25b 100644 --- a/src/Compiler/Facilities/LanguageFeatures.fsi +++ b/src/Compiler/Facilities/LanguageFeatures.fsi @@ -99,7 +99,7 @@ type LanguageFeature = | MethodOverloadsCache | ImplicitDIMCoverage | PreprocessorElif - | WarnOnLetInSequenceExpression + | LetInBodyScoping /// LanguageVersion management type LanguageVersion = diff --git a/src/Compiler/SyntaxTree/LexFilter.fs b/src/Compiler/SyntaxTree/LexFilter.fs index ffa3072e21c..505d17de22b 100644 --- a/src/Compiler/SyntaxTree/LexFilter.fs +++ b/src/Compiler/SyntaxTree/LexFilter.fs @@ -1681,7 +1681,7 @@ type LexFilterImpl ( if tokenStartCol < offsidePos.Column then warn tokenTup (FSComp.SR.lexfltIncorrentIndentationOfIn()) popCtxt() - if blockLet && lexbuf.SupportsFeature LanguageFeature.WarnOnLetInSequenceExpression then + if blockLet && lexbuf.SupportsFeature LanguageFeature.LetInBodyScoping then let nextTokenTup = peekNextTokenTup() let nextTokenStartPos = startPosOfTokenTup nextTokenTup diff --git a/src/Compiler/pars.fsy b/src/Compiler/pars.fsy index 9208d5034d8..c3bf0a4fd85 100644 --- a/src/Compiler/pars.fsy +++ b/src/Compiler/pars.fsy @@ -616,7 +616,12 @@ fileModuleSpec: { let m = (rhs parseState 1) (fun (mNamespaceOpt, isRec, path, xml) -> match path with - | [] -> ParsedSigFileFragment.AnonModule($1, m) + | [] -> + let m = + match List.tryLast $1 with + | Some lastDecl -> Range.withEnd lastDecl.Range.End m + | None -> m + ParsedSigFileFragment.AnonModule($1, m) | _ -> let lastDeclRange = List.tryLast $1 |> Option.map (fun decl -> decl.Range) |> Option.defaultValue (rhs parseState 1) let m = withStart (lhs parseState).Start lastDeclRange @@ -1200,7 +1205,13 @@ fileModuleImpl: { let m = (rhs parseState 1) (fun (mNamespaceOpt, isRec, path, xml) -> match path, mNamespaceOpt with - | [], None -> ParsedImplFileFragment.AnonModule($1, m) + | [], None -> + // Use last declaration's end to avoid the range being extended to the OBLOCKEND/EOF position + let m = + match List.tryLast $1 with + | Some lastDecl -> Range.withEnd lastDecl.Range.End m + | None -> m + ParsedImplFileFragment.AnonModule($1, m) | _ -> let lastDeclRange = List.tryLast $1 |> Option.map (fun decl -> decl.Range) |> Option.defaultValue (rhs parseState 1) let m = withStart (lhs parseState).Start lastDeclRange diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf index 7f96735e6a9..5f142e3c0f3 100644 --- a/src/Compiler/xlf/FSComp.txt.cs.xlf +++ b/src/Compiler/xlf/FSComp.txt.cs.xlf @@ -8962,7 +8962,7 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. - + Scope 'let ... in' body to the same line in sequence expressions Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf index 8f311719508..011269c88b4 100644 --- a/src/Compiler/xlf/FSComp.txt.de.xlf +++ b/src/Compiler/xlf/FSComp.txt.de.xlf @@ -8962,7 +8962,7 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. - + Scope 'let ... in' body to the same line in sequence expressions Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf index 11104c260d6..482e8b1830c 100644 --- a/src/Compiler/xlf/FSComp.txt.es.xlf +++ b/src/Compiler/xlf/FSComp.txt.es.xlf @@ -8962,7 +8962,7 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. - + Scope 'let ... in' body to the same line in sequence expressions Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf index aee0c251cf5..5222e001442 100644 --- a/src/Compiler/xlf/FSComp.txt.fr.xlf +++ b/src/Compiler/xlf/FSComp.txt.fr.xlf @@ -8962,7 +8962,7 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. - + Scope 'let ... in' body to the same line in sequence expressions Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf index 97e24c3a645..c60c18d245d 100644 --- a/src/Compiler/xlf/FSComp.txt.it.xlf +++ b/src/Compiler/xlf/FSComp.txt.it.xlf @@ -8962,7 +8962,7 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. - + Scope 'let ... in' body to the same line in sequence expressions Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf index a9751d619e1..1cdc7eacd08 100644 --- a/src/Compiler/xlf/FSComp.txt.ja.xlf +++ b/src/Compiler/xlf/FSComp.txt.ja.xlf @@ -8962,7 +8962,7 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. - + Scope 'let ... in' body to the same line in sequence expressions Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf index b64e91fc670..366dc965950 100644 --- a/src/Compiler/xlf/FSComp.txt.ko.xlf +++ b/src/Compiler/xlf/FSComp.txt.ko.xlf @@ -8962,7 +8962,7 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. - + Scope 'let ... in' body to the same line in sequence expressions Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf index 9198a153aee..cb36be34b15 100644 --- a/src/Compiler/xlf/FSComp.txt.pl.xlf +++ b/src/Compiler/xlf/FSComp.txt.pl.xlf @@ -8962,7 +8962,7 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. - + Scope 'let ... in' body to the same line in sequence expressions Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf index 4de4f0c3c34..810799f243d 100644 --- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf +++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf @@ -8962,7 +8962,7 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. - + Scope 'let ... in' body to the same line in sequence expressions Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf index cf8bef6af01..1adc78b34e2 100644 --- a/src/Compiler/xlf/FSComp.txt.ru.xlf +++ b/src/Compiler/xlf/FSComp.txt.ru.xlf @@ -8962,7 +8962,7 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. - + Scope 'let ... in' body to the same line in sequence expressions Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf index 9db51a4313e..c834241cc37 100644 --- a/src/Compiler/xlf/FSComp.txt.tr.xlf +++ b/src/Compiler/xlf/FSComp.txt.tr.xlf @@ -8962,7 +8962,7 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. - + Scope 'let ... in' body to the same line in sequence expressions Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf index 94822dba6f5..ca7d851819f 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf @@ -8962,7 +8962,7 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. - + Scope 'let ... in' body to the same line in sequence expressions Scope 'let ... in' body to the same line in sequence expressions diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf index 954b8f66575..0d85ae154dc 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf @@ -8962,7 +8962,7 @@ This expression is a function value. When used in an interpolated string it will be formatted using its 'ToString' method, which is likely not the intended behavior. Consider applying the function to its arguments. - + Scope 'let ... in' body to the same line in sequence expressions Scope 'let ... in' body to the same line in sequence expressions diff --git a/tests/service/data/SyntaxTree/Attribute/RangeOfAttribute.fs.bsl b/tests/service/data/SyntaxTree/Attribute/RangeOfAttribute.fs.bsl index 8e83e55acfa..1e8bcd5c4e6 100644 --- a/tests/service/data/SyntaxTree/Attribute/RangeOfAttribute.fs.bsl +++ b/tests/service/data/SyntaxTree/Attribute/RangeOfAttribute.fs.bsl @@ -28,7 +28,7 @@ ImplFile Range = (2,2--2,25) }] Range = (2,0--2,27) }], (2,0--2,27)); Expr (Do (Const (Unit, (3,3--3,5)), (3,0--3,5)), (3,0--3,5))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,5), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithPath.fs.bsl b/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithPath.fs.bsl index 4db0f069189..d3b1978861e 100644 --- a/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithPath.fs.bsl +++ b/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithPath.fs.bsl @@ -30,7 +30,7 @@ ImplFile Range = (2,2--2,32) }] Range = (2,0--2,34) }], (2,0--2,34)); Expr (Do (Const (Unit, (3,3--3,5)), (3,0--3,5)), (3,0--3,5))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,5), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithTarget.fs.bsl b/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithTarget.fs.bsl index 38b51a3bffd..d8e0babd349 100644 --- a/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithTarget.fs.bsl +++ b/tests/service/data/SyntaxTree/Attribute/RangeOfAttributeWithTarget.fs.bsl @@ -28,7 +28,7 @@ ImplFile Range = (2,2--2,35) }] Range = (2,0--2,37) }], (2,0--2,37)); Expr (Do (Const (Unit, (3,3--3,5)), (3,0--3,5)), (3,0--3,5))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,5), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs.bsl b/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs.bsl index 065ab43c1c4..dabcb16e268 100644 --- a/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTrivia.fs.bsl @@ -33,7 +33,7 @@ ImplFile InlineKeyword = None EqualsRange = Some (2,14--2,15) })], (2,0--2,31), { InKeyword = None })], PreXmlDocEmpty, [], None, - (2,0--3,0), { LeadingKeyword = None })], (true, true), + (2,0--2,31), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs.bsl b/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs.bsl index 92d2ae4ebfc..9f1a87a211d 100644 --- a/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/ColonBeforeReturnTypeIsPartOfTriviaInProperties.fs.bsl @@ -101,7 +101,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,62))], PreXmlDocEmpty, [], - None, (2,0--4,0), { LeadingKeyword = None })], (true, true), + None, (2,0--3,62), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/ConditionalDirectiveAroundInlineKeyword.fs.bsl b/tests/service/data/SyntaxTree/Binding/ConditionalDirectiveAroundInlineKeyword.fs.bsl index aab2187eed5..d3ec6d1d1c8 100644 --- a/tests/service/data/SyntaxTree/Binding/ConditionalDirectiveAroundInlineKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/ConditionalDirectiveAroundInlineKeyword.fs.bsl @@ -43,7 +43,7 @@ ImplFile NoneAtLet, { LeadingKeyword = Let (2,0--2,3) InlineKeyword = Some (4,4--4,10) EqualsRange = Some (6,13--6,14) })], (2,0--6,42), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--7,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--6,42), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [If (Not (Ident "FOO"), (3,0--3,8)); EndIf (5,0--5,6)] diff --git a/tests/service/data/SyntaxTree/Binding/InlineKeywordInBinding.fs.bsl b/tests/service/data/SyntaxTree/Binding/InlineKeywordInBinding.fs.bsl index 74c98cb33a9..0ae04a1f247 100644 --- a/tests/service/data/SyntaxTree/Binding/InlineKeywordInBinding.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/InlineKeywordInBinding.fs.bsl @@ -53,7 +53,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = Some (2,4--2,10) EqualsRange = Some (2,17--2,18) })], (2,0--4,6), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--5,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--4,6), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs.bsl index 13347c94622..5f173741c6d 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeBetweenLetKeywordAndPatternShouldBeIncludedInSynModuleDeclLet.fs.bsl @@ -32,7 +32,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,22--2,23) })], (2,0--2,25), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,25), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs.bsl index f53b47a4eaa..ed223807374 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMember.fs.bsl @@ -49,7 +49,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,11--2,12) WithKeyword = None })], (2,0--4,15))], PreXmlDocEmpty, [], - None, (2,0--5,0), { LeadingKeyword = None })], (true, true), + None, (2,0--4,15), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs.bsl index dde24f9afc2..a235a196953 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInConstructorSynMemberDefnMemberOptAsSpec.fs.bsl @@ -50,7 +50,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,11--2,12) WithKeyword = None })], (2,0--4,23))], PreXmlDocEmpty, [], - None, (2,0--5,0), { LeadingKeyword = None })], (true, true), + None, (2,0--4,23), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs.bsl index 3a657b48cb7..5e864edc085 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInFullSynMemberDefnMemberProperty.fs.bsl @@ -104,7 +104,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,10--2,11) WithKeyword = None })], (2,0--6,50))], PreXmlDocEmpty, [], - None, (2,0--7,0), { LeadingKeyword = None })], (true, true), + None, (2,0--6,50), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs.bsl index 566cba41a61..c38db4fccb5 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSecondaryConstructor.fs.bsl @@ -115,7 +115,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--11,12))], PreXmlDocEmpty, [], - None, (2,0--12,0), { LeadingKeyword = None })], (true, true), + None, (2,0--11,12), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs.bsl index cd43cce87f7..de657641448 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnLetBindings.fs.bsl @@ -40,7 +40,7 @@ ImplFile None, (2,5--4,13), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--4,13))], - PreXmlDocEmpty, [], None, (2,0--5,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--4,13), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs.bsl index ff220a2a034..f95cdf05b54 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynMemberDefnMember.fs.bsl @@ -53,7 +53,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--4,33))], PreXmlDocEmpty, [], - None, (2,0--5,0), { LeadingKeyword = None })], (true, true), + None, (2,0--4,33), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs.bsl index 8731bb1d5b5..c266d02aef4 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInSynModuleDeclLet.fs.bsl @@ -24,7 +24,7 @@ ImplFile { LeadingKeyword = Let (3,0--3,3) InlineKeyword = None EqualsRange = Some (3,6--3,7) })], (2,0--3,9), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--4,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,9), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs.bsl index 8698f8ddc7c..10e2d7988a5 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfAttributeShouldBeIncludedInWriteOnlySynMemberDefnMemberProperty.fs.bsl @@ -69,7 +69,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,11--2,12) WithKeyword = None })], (2,0--4,79))], PreXmlDocEmpty, [], - None, (2,0--5,0), { LeadingKeyword = None })], (true, true), + None, (2,0--4,79), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs.bsl index fe96a80165c..65197e80ec2 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBinding.fs.bsl @@ -24,7 +24,7 @@ ImplFile Range = (3,4--4,6) Trivia = { InKeyword = None } IsFromSource = true }, (2,0--4,6)), (2,0--4,6))], - PreXmlDocEmpty, [], None, (2,0--5,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--4,6), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs.bsl index 5ddcfdc594f..aeefee72bf3 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInLocalLetBindingTyped.fs.bsl @@ -35,7 +35,7 @@ ImplFile Range = (3,4--4,6) Trivia = { InKeyword = None } IsFromSource = true }, (2,0--4,6)), (2,0--4,6))], - PreXmlDocEmpty, [], None, (2,0--5,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--4,6), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs.bsl index 0a48a4272fc..4260bd5fe41 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBinding.fs.bsl @@ -47,7 +47,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--3,21))], PreXmlDocEmpty, [], - None, (2,0--4,0), { LeadingKeyword = None })], (true, true), + None, (2,0--3,21), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs.bsl index c8eb3a32a50..e7b766b5ff9 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithParameters.fs.bsl @@ -54,7 +54,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--3,24))], PreXmlDocEmpty, [], - None, (2,0--4,0), { LeadingKeyword = None })], (true, true), + None, (2,0--3,24), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs.bsl index 431946b6f94..0e45f4b496e 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInMemberBindingWithReturnType.fs.bsl @@ -63,7 +63,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--3,33))], PreXmlDocEmpty, [], - None, (2,0--4,0), { LeadingKeyword = None })], (true, true), + None, (2,0--3,33), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInProperty.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInProperty.fs.bsl index 72ee28c403d..816b682535c 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInProperty.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInProperty.fs.bsl @@ -94,7 +94,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--5,50))], PreXmlDocEmpty, [], - None, (2,0--6,0), { LeadingKeyword = None })], (true, true), + None, (2,0--5,50), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs.bsl index 25a5aa97f25..dbbd1476b56 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBinding.fs.bsl @@ -19,7 +19,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--2,10), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,10), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs.bsl index 3fad6c6ce95..dd7b1233e15 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfEqualSignShouldBePresentInSynModuleDeclLetBindingTyped.fs.bsl @@ -26,7 +26,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,12--2,13) })], (2,0--2,16), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,16), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs.bsl index 4b2d72c287d..c84a43075f6 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynExprLetOrUseBinding.fs.bsl @@ -43,7 +43,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--4,6), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--5,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--4,6), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs.bsl index 444e70f8b63..38ce6fd44a5 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBinding.fs.bsl @@ -19,7 +19,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--2,10), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,10), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs.bsl b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs.bsl index 6db963f547d..7f8a9fce264 100644 --- a/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/RangeOfLetKeywordShouldBePresentInSynModuleDeclLetBindingWithAttributes.fs.bsl @@ -27,7 +27,7 @@ ImplFile { LeadingKeyword = Let (5,0--5,3) InlineKeyword = None EqualsRange = Some (5,6--5,7) })], (2,0--5,10), - { InKeyword = None })], PreXmlDocEmpty, [], None, (3,0--6,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (3,0--5,10), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Binding/TupleReturnTypeOfBindingShouldContainStars.fs.bsl b/tests/service/data/SyntaxTree/Binding/TupleReturnTypeOfBindingShouldContainStars.fs.bsl index a3c7a7589fc..98b0f1c3dd9 100644 --- a/tests/service/data/SyntaxTree/Binding/TupleReturnTypeOfBindingShouldContainStars.fs.bsl +++ b/tests/service/data/SyntaxTree/Binding/TupleReturnTypeOfBindingShouldContainStars.fs.bsl @@ -77,7 +77,7 @@ ImplFile { LeadingKeyword = Let (3,0--3,3) InlineKeyword = None EqualsRange = Some (3,28--3,29) })], (3,0--3,42), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--4,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,42), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCode.fs.bsl b/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCode.fs.bsl index e4901fa263f..aa0e3ad884e 100644 --- a/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCode.fs.bsl +++ b/tests/service/data/SyntaxTree/CodeComment/BlockCommentInSourceCode.fs.bsl @@ -32,7 +32,7 @@ ImplFile NoneAtLet, { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,17--2,18) })], (2,0--2,25), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,25), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs.bsl b/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs.bsl index 01db4a77f0d..ac48c46922d 100644 --- a/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs.bsl +++ b/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldBeCapturedIfUsedInAnInvalidLocation.fs.bsl @@ -35,7 +35,7 @@ ImplFile { LeadingKeyword = Let (3,0--3,3) InlineKeyword = None EqualsRange = Some (3,6--3,7) })], (2,0--9,9), - { InKeyword = None })], PreXmlDocEmpty, [], None, (3,0--10,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (3,0--9,9), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs.bsl b/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs.bsl index 874620f3a24..fc8ee617371 100644 --- a/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs.bsl +++ b/tests/service/data/SyntaxTree/CodeComment/TripleSlashCommentShouldNotBeCaptured.fs.bsl @@ -16,7 +16,7 @@ ImplFile { LeadingKeyword = Let (3,0--3,3) InlineKeyword = None EqualsRange = Some (3,6--3,7) })], (2,0--3,9), - { InKeyword = None })], PreXmlDocEmpty, [], None, (3,0--4,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (3,0--3,9), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs.bsl index 3fb68701b0d..a0a6aa8e1d2 100644 --- a/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs.bsl +++ b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineCommentAreNotReportedAsTrivia.fs.bsl @@ -18,7 +18,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--8,6), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--9,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--8,6), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs.bsl index bf1517651e9..cd7b0dcd89f 100644 --- a/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs.bsl +++ b/tests/service/data/SyntaxTree/ConditionalDirective/DirectivesInMultilineStringAreNotReportedAsTrivia.fs.bsl @@ -25,7 +25,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--7,3), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--8,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--7,3), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndif.fs.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndif.fs.bsl index 0f6e8574919..25e22d6c372 100644 --- a/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndif.fs.bsl +++ b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfElseEndif.fs.bsl @@ -16,7 +16,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--10,9), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--12,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--10,9), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [If (Ident "FOO", (3,4--3,11)); If (Ident "MEH", (4,8--4,15)); diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs.bsl index 95b3b1193c2..9a54564d9af 100644 --- a/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs.bsl +++ b/tests/service/data/SyntaxTree/ConditionalDirective/NestedIfEndifWithComplexExpressions.fs.bsl @@ -16,7 +16,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--11,6), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--12,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--11,6), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [If (Not (Ident "DEBUG"), (3,4--3,14)); diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndif.fs.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndif.fs.bsl index 309e45cb72d..1d55ec0e68a 100644 --- a/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndif.fs.bsl +++ b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfElseEndif.fs.bsl @@ -16,7 +16,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--6,6), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--8,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--6,6), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [If (Ident "DEBUG", (3,4--3,13)); Else (5,4--5,9); EndIf (7,4--7,10)] diff --git a/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndif.fs.bsl b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndif.fs.bsl index 0d60a023eaf..ed586cf11ba 100644 --- a/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndif.fs.bsl +++ b/tests/service/data/SyntaxTree/ConditionalDirective/SingleIfEndif.fs.bsl @@ -16,7 +16,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--6,6), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--7,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--6,6), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [If (Ident "DEBUG", (3,4--3,13)); EndIf (5,4--5,10)] diff --git a/tests/service/data/SyntaxTree/EnumCase/MultipleSynEnumCasesHaveBarRange.fs.bsl b/tests/service/data/SyntaxTree/EnumCase/MultipleSynEnumCasesHaveBarRange.fs.bsl index 65b7c6c556f..18a182d8eb0 100644 --- a/tests/service/data/SyntaxTree/EnumCase/MultipleSynEnumCasesHaveBarRange.fs.bsl +++ b/tests/service/data/SyntaxTree/EnumCase/MultipleSynEnumCasesHaveBarRange.fs.bsl @@ -28,7 +28,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--4,14))], PreXmlDocEmpty, [], - None, (2,0--5,0), { LeadingKeyword = None })], (true, true), + None, (2,0--4,14), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseHasBarRange.fs.bsl b/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseHasBarRange.fs.bsl index ca80ebf45a9..8245dab5007 100644 --- a/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseHasBarRange.fs.bsl +++ b/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseHasBarRange.fs.bsl @@ -22,7 +22,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--2,20))], PreXmlDocEmpty, [], - None, (2,0--3,0), { LeadingKeyword = None })], (true, true), + None, (2,0--2,20), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseWithoutBar.fs.bsl b/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseWithoutBar.fs.bsl index 4ac684664e3..c5f1c9e9498 100644 --- a/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseWithoutBar.fs.bsl +++ b/tests/service/data/SyntaxTree/EnumCase/SingleSynEnumCaseWithoutBar.fs.bsl @@ -22,7 +22,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--2,18))], PreXmlDocEmpty, [], - None, (2,0--3,0), { LeadingKeyword = None })], (true, true), + None, (2,0--2,18), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/AnonymousRecords-04.fs.bsl b/tests/service/data/SyntaxTree/Expression/AnonymousRecords-04.fs.bsl index 64a376f178c..39a94694d13 100644 --- a/tests/service/data/SyntaxTree/Expression/AnonymousRecords-04.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/AnonymousRecords-04.fs.bsl @@ -7,11 +7,11 @@ ImplFile [Expr (AnonRecd (false, None, [], (1,0--1,2), { OpeningBraceRange = (1,0--1,2) }), - (1,0--1,2))], PreXmlDocEmpty, [], None, (1,0--2,0), + (1,0--1,2))], PreXmlDocEmpty, [], None, (1,0--1,2), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) (1,0)-(1,2) parse error Unmatched '{|' -(1,0)-(2,0) parse warning The declarations in this file will be placed in an implicit module 'AnonymousRecords-04' based on the file name 'AnonymousRecords-04.fs'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. +(1,0)-(1,2) parse warning The declarations in this file will be placed in an implicit module 'AnonymousRecords-04' based on the file name 'AnonymousRecords-04.fs'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. diff --git a/tests/service/data/SyntaxTree/Expression/AnonymousRecords-05.fs.bsl b/tests/service/data/SyntaxTree/Expression/AnonymousRecords-05.fs.bsl index 38eb618a0ed..0befae14e81 100644 --- a/tests/service/data/SyntaxTree/Expression/AnonymousRecords-05.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/AnonymousRecords-05.fs.bsl @@ -7,11 +7,11 @@ ImplFile [Expr (AnonRecd (true, None, [], (1,0--1,9), { OpeningBraceRange = (1,7--1,9) }), - (1,0--1,9))], PreXmlDocEmpty, [], None, (1,0--2,0), + (1,0--1,9))], PreXmlDocEmpty, [], None, (1,0--1,9), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) (1,7)-(1,9) parse error Unmatched '{|' -(1,0)-(2,0) parse warning The declarations in this file will be placed in an implicit module 'AnonymousRecords-05' based on the file name 'AnonymousRecords-05.fs'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. +(1,0)-(1,9) parse warning The declarations in this file will be placed in an implicit module 'AnonymousRecords-05' based on the file name 'AnonymousRecords-05.fs'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. diff --git a/tests/service/data/SyntaxTree/Expression/AnonymousRecords-06.fs.bsl b/tests/service/data/SyntaxTree/Expression/AnonymousRecords-06.fs.bsl index b58b5e4c944..726c35d41e1 100644 --- a/tests/service/data/SyntaxTree/Expression/AnonymousRecords-06.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/AnonymousRecords-06.fs.bsl @@ -29,10 +29,10 @@ ImplFile NoneAtLet, { LeadingKeyword = Let (1,0--1,3) InlineKeyword = None EqualsRange = Some (1,8--1,9) })], (1,0--1,39), - { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--2,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--1,39), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) -(1,0)-(2,0) parse warning The declarations in this file will be placed in an implicit module 'AnonymousRecords-06' based on the file name 'AnonymousRecords-06.fs'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. +(1,0)-(1,39) parse warning The declarations in this file will be placed in an implicit module 'AnonymousRecords-06' based on the file name 'AnonymousRecords-06.fs'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. diff --git a/tests/service/data/SyntaxTree/Expression/DotLambda - _ Recovery - Casts.fsx.bsl b/tests/service/data/SyntaxTree/Expression/DotLambda - _ Recovery - Casts.fsx.bsl index 721b79a0308..da1a9cf7daf 100644 --- a/tests/service/data/SyntaxTree/Expression/DotLambda - _ Recovery - Casts.fsx.bsl +++ b/tests/service/data/SyntaxTree/Expression/DotLambda - _ Recovery - Casts.fsx.bsl @@ -58,7 +58,7 @@ ImplFile { LeadingKeyword = Let (3,0--3,3) InlineKeyword = None EqualsRange = Some (3,6--3,7) })], (3,0--3,19), - { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--4,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--3,19), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 08.fs b/tests/service/data/SyntaxTree/Expression/LetIn 08.fs new file mode 100644 index 00000000000..7c9a018cba3 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 08.fs @@ -0,0 +1,6 @@ +module Module + +let x = 42 +do + let x = 1 in x + 1 + x diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 08.fs.bsl b/tests/service/data/SyntaxTree/Expression/LetIn 08.fs.bsl new file mode 100644 index 00000000000..f064242d20f --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 08.fs.bsl @@ -0,0 +1,59 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/LetIn 08.fs", false, QualifiedNameOfFile Module, [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named (SynIdent (x, None), false, None, (3,4--3,5)), None, + Const (Int32 42, (3,8--3,10)), (3,4--3,5), Yes (3,0--3,10), + { LeadingKeyword = Let (3,0--3,3) + InlineKeyword = None + EqualsRange = Some (3,6--3,7) })], (3,0--3,10), + { InKeyword = None }); + Expr + (Do + (Sequential + (SuppressNeither, true, + LetOrUse + { IsRecursive = false + Bindings = + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((5,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named (SynIdent (x, None), false, None, (5,8--5,9)), + None, Const (Int32 1, (5,12--5,13)), (5,8--5,9), + Yes (5,4--5,13), + { LeadingKeyword = Let (5,4--5,7) + InlineKeyword = None + EqualsRange = Some (5,10--5,11) })] + Body = + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Addition], [], + [Some (OriginalNotation "+")]), None, + (5,19--5,20)), Ident x, (5,17--5,20)), + Const (Int32 1, (5,21--5,22)), (5,17--5,22)) + Range = (5,4--5,22) + Trivia = { InKeyword = Some (5,14--5,16) } + IsFromSource = true }, Ident x, (5,4--6,5), + { SeparatorRange = None }), (4,0--6,5)), (4,0--6,5))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--6,5), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + WarnDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 09.fs b/tests/service/data/SyntaxTree/Expression/LetIn 09.fs new file mode 100644 index 00000000000..94b4bdcaa78 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 09.fs @@ -0,0 +1,5 @@ +module Module + +let f () = + let x = 1 in x + 1 + printfn "hello" diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 09.fs.bsl b/tests/service/data/SyntaxTree/Expression/LetIn 09.fs.bsl new file mode 100644 index 00000000000..4760f1bf4de --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 09.fs.bsl @@ -0,0 +1,64 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/LetIn 09.fs", false, QualifiedNameOfFile Module, [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([[]], SynArgInfo ([], false, None)), None), + LongIdent + (SynLongIdent ([f], [], [None]), None, None, + Pats [Paren (Const (Unit, (3,6--3,8)), (3,6--3,8))], None, + (3,4--3,8)), None, + Sequential + (SuppressNeither, true, + LetOrUse + { IsRecursive = false + Bindings = + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((4,4), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, + SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named + (SynIdent (x, None), false, None, (4,8--4,9)), + None, Const (Int32 1, (4,12--4,13)), (4,8--4,9), + Yes (4,4--4,13), + { LeadingKeyword = Let (4,4--4,7) + InlineKeyword = None + EqualsRange = Some (4,10--4,11) })] + Body = + App + (NonAtomic, false, + App + (NonAtomic, true, + LongIdent + (false, + SynLongIdent + ([op_Addition], [], + [Some (OriginalNotation "+")]), None, + (4,19--4,20)), Ident x, (4,17--4,20)), + Const (Int32 1, (4,21--4,22)), (4,17--4,22)) + Range = (4,4--4,22) + Trivia = { InKeyword = Some (4,14--4,16) } + IsFromSource = true }, + App + (NonAtomic, false, Ident printfn, + Const + (String ("hello", Regular, (5,12--5,19)), (5,12--5,19)), + (5,4--5,19)), (4,4--5,19), { SeparatorRange = None }), + (3,4--3,8), NoneAtLet, { LeadingKeyword = Let (3,0--3,3) + InlineKeyword = None + EqualsRange = Some (3,9--3,10) })], + (3,0--5,19), { InKeyword = None })], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--5,19), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + WarnDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 10.fs b/tests/service/data/SyntaxTree/Expression/LetIn 10.fs new file mode 100644 index 00000000000..0e6895f4b6a --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 10.fs @@ -0,0 +1,5 @@ +module Module + +let a = 1 in b + c +d diff --git a/tests/service/data/SyntaxTree/Expression/LetIn 10.fs.bsl b/tests/service/data/SyntaxTree/Expression/LetIn 10.fs.bsl new file mode 100644 index 00000000000..3e2bff89305 --- /dev/null +++ b/tests/service/data/SyntaxTree/Expression/LetIn 10.fs.bsl @@ -0,0 +1,33 @@ +ImplFile + (ParsedImplFileInput + ("/root/Expression/LetIn 10.fs", false, QualifiedNameOfFile Module, [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Expr + (LetOrUse + { IsRecursive = false + Bindings = + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), + None), + Named (SynIdent (a, None), false, None, (3,4--3,5)), None, + Const (Int32 1, (3,8--3,9)), (3,4--3,5), Yes (3,0--3,9), + { LeadingKeyword = Let (3,0--3,3) + InlineKeyword = None + EqualsRange = Some (3,6--3,7) })] + Body = + Sequential + (SuppressNeither, true, Ident b, Ident c, (3,13--4,14), + { SeparatorRange = None }) + Range = (3,0--4,14) + Trivia = { InKeyword = Some (3,10--3,12) } + IsFromSource = true }, (3,0--4,14)); + Expr (Ident d, (5,0--5,1))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--5,1), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + WarnDirectives = [] + CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl index 8a70f1d6395..14f792d8a98 100644 --- a/tests/service/data/SyntaxTree/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl @@ -70,7 +70,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,9--2,10) })], (2,0--5,9), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--6,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--5,9), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Expression/Sequential 01.fs.bsl b/tests/service/data/SyntaxTree/Expression/Sequential 01.fs.bsl index 763ab6d97b8..82d4843ec0e 100644 --- a/tests/service/data/SyntaxTree/Expression/Sequential 01.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Sequential 01.fs.bsl @@ -9,10 +9,10 @@ ImplFile (Sequential (SuppressNeither, true, Ident a, Ident b, (1,3--1,8), { SeparatorRange = Some (1,5--1,6) }), (1,0--1,8)), - (1,0--1,8))], PreXmlDocEmpty, [], None, (1,0--2,0), + (1,0--1,8))], PreXmlDocEmpty, [], None, (1,0--1,8), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) -(1,0)-(2,0) parse warning The declarations in this file will be placed in an implicit module 'Sequential 01' based on the file name 'Sequential 01.fs'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. +(1,0)-(1,8) parse warning The declarations in this file will be placed in an implicit module 'Sequential 01' based on the file name 'Sequential 01.fs'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. diff --git a/tests/service/data/SyntaxTree/Expression/Sequential 02.fs.bsl b/tests/service/data/SyntaxTree/Expression/Sequential 02.fs.bsl index 724388842b5..e8e6a6d966a 100644 --- a/tests/service/data/SyntaxTree/Expression/Sequential 02.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Sequential 02.fs.bsl @@ -9,10 +9,10 @@ ImplFile (Sequential (SuppressNeither, false, Ident a, Ident b, (1,3--1,11), { SeparatorRange = Some (1,5--1,9) }), (1,0--1,11)), - (1,0--1,11))], PreXmlDocEmpty, [], None, (1,0--2,0), + (1,0--1,11))], PreXmlDocEmpty, [], None, (1,0--1,11), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) -(1,0)-(2,0) parse warning The declarations in this file will be placed in an implicit module 'Sequential 02' based on the file name 'Sequential 02.fs'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. +(1,0)-(1,11) parse warning The declarations in this file will be placed in an implicit module 'Sequential 02' based on the file name 'Sequential 02.fs'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. diff --git a/tests/service/data/SyntaxTree/Expression/Sequential 03.fs.bsl b/tests/service/data/SyntaxTree/Expression/Sequential 03.fs.bsl index 064662b49c7..8828e47273d 100644 --- a/tests/service/data/SyntaxTree/Expression/Sequential 03.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/Sequential 03.fs.bsl @@ -12,9 +12,9 @@ ImplFile (Ident b, (1,10--1,15), Some (1,18--1,21), (1,10--1,21)), (1,3--1,21), { SeparatorRange = Some (1,5--1,9) }), (1,0--1,21)), (1,0--1,21))], PreXmlDocEmpty, [], None, - (1,0--2,0), { LeadingKeyword = None })], (true, true), + (1,0--1,21), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) -(1,0)-(2,0) parse warning The declarations in this file will be placed in an implicit module 'Sequential 03' based on the file name 'Sequential 03.fs'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. +(1,0)-(1,21) parse warning The declarations in this file will be placed in an implicit module 'Sequential 03' based on the file name 'Sequential 03.fs'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. diff --git a/tests/service/data/SyntaxTree/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs.bsl index 54b08da4d54..047fc84f816 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs.bsl @@ -21,7 +21,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--6,18), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--7,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--6,18), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs.bsl index d2c4077e59c..fd030b652bd 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprForContainsTheRangeOfTheEqualsSign.fs.bsl @@ -15,7 +15,7 @@ ImplFile (NonAtomic, false, Ident printf, Const (String ("%d ", Regular, (3,7--3,12)), (3,7--3,12)), (3,0--3,12)), Ident i, (3,0--3,14)), (2,0--3,14)), - (2,0--3,14))], PreXmlDocEmpty, [], None, (2,0--4,0), + (2,0--3,14))], PreXmlDocEmpty, [], None, (2,0--3,14), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl index b65ca5c4e11..4fb6595cbd2 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl @@ -23,7 +23,7 @@ ImplFile Range = (2,0--2,15) Trivia = { InKeyword = Some (2,10--2,12) } IsFromSource = true }, (2,0--2,15))], PreXmlDocEmpty, [], None, - (2,0--3,0), { LeadingKeyword = None })], (true, true), + (2,0--2,15), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs.bsl index 5ac7a4f817e..52db2919fb0 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs.bsl @@ -25,7 +25,7 @@ ImplFile Range = (3,0--4,2) Trivia = { InKeyword = None } IsFromSource = true }, (2,0--4,2)), (2,0--4,2))], - PreXmlDocEmpty, [], None, (2,0--5,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--4,2), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs.bsl index a49e4e9e41a..62696cf8b40 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWhereBodyExprStartsWithTokenOfTwoCharactersDoesNotContainTheRangeOfInKeyword.fs.bsl @@ -47,7 +47,7 @@ ImplFile Range = (3,0--4,16) Trivia = { InKeyword = None } IsFromSource = true }, (2,0--4,16)), (2,0--4,16))], - PreXmlDocEmpty, [], None, (2,0--5,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--4,16), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs.bsl index e8def5f575a..c700e2cc2f3 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseWithRecursiveBindingContainsTheRangeOfInKeyword.fs.bsl @@ -39,7 +39,7 @@ ImplFile Range = (3,4--5,6) Trivia = { InKeyword = Some (4,15--4,17) } IsFromSource = true }, (2,0--5,6)), (2,0--5,6))], - PreXmlDocEmpty, [], None, (2,0--6,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--5,6), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs.bsl index 871e70098d3..9984c93b774 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprMatchBangContainsTheRangeOfTheMatchAndWithKeyword.fs.bsl @@ -16,7 +16,7 @@ ImplFile BarRange = Some (3,0--3,1) })], (2,0--3,8), { MatchBangKeyword = (2,0--2,6) WithKeyword = (2,9--2,13) }), (2,0--3,8))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,8), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs.bsl index f1e4b950125..3a9249d29ca 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprMatchContainsTheRangeOfTheMatchAndWithKeyword.fs.bsl @@ -16,7 +16,7 @@ ImplFile BarRange = Some (3,0--3,1) })], (2,0--3,8), { MatchKeyword = (2,0--2,5) WithKeyword = (2,8--2,12) }), (2,0--3,8))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,8), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs.bsl index 43d2f88584e..ec65e2c9620 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprTryFinallyContainsTheRangeOfTheTryAndWithKeyword.fs.bsl @@ -12,7 +12,7 @@ ImplFile (Ident x, Const (Unit, (5,0--5,2)), (2,0--5,2), Yes (2,0--2,3), Yes (4,0--4,7), { TryKeyword = (2,0--2,3) FinallyKeyword = (4,0--4,7) }), (2,0--5,2))], - PreXmlDocEmpty, [], None, (2,0--6,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--5,2), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs.bsl index 690618cda81..e5dd44ef813 100644 --- a/tests/service/data/SyntaxTree/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Expression/SynExprTryWithContainsTheRangeOfTheTryAndWithKeyword.fs.bsl @@ -19,7 +19,7 @@ ImplFile TryToWithRange = (2,0--4,4) WithKeyword = (4,0--4,4) WithToEndRange = (4,0--5,9) }), (2,0--5,9))], PreXmlDocEmpty, - [], None, (2,0--6,0), { LeadingKeyword = None })], (true, true), + [], None, (2,0--5,9), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/IfThenElse/Comment after else 01.fs.bsl b/tests/service/data/SyntaxTree/IfThenElse/Comment after else 01.fs.bsl index 15cfd83a38c..ccffe6717d3 100644 --- a/tests/service/data/SyntaxTree/IfThenElse/Comment after else 01.fs.bsl +++ b/tests/service/data/SyntaxTree/IfThenElse/Comment after else 01.fs.bsl @@ -21,7 +21,7 @@ ImplFile ThenKeyword = (1,5--1,9) ElseKeyword = Some (3,0--3,4) IfToThenRange = (1,0--1,9) }), (1,0--4,5))], PreXmlDocEmpty, - [], None, (1,0--5,0), { LeadingKeyword = None })], (true, true), + [], None, (1,0--4,5), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [BlockComment (3,5--3,33)] }, set [])) diff --git a/tests/service/data/SyntaxTree/IfThenElse/Comment after else 02.fs.bsl b/tests/service/data/SyntaxTree/IfThenElse/Comment after else 02.fs.bsl index d3974f75b62..f5e780af6b4 100644 --- a/tests/service/data/SyntaxTree/IfThenElse/Comment after else 02.fs.bsl +++ b/tests/service/data/SyntaxTree/IfThenElse/Comment after else 02.fs.bsl @@ -14,7 +14,7 @@ ImplFile ThenKeyword = (1,5--1,9) ElseKeyword = None IfToThenRange = (1,0--1,9) }), (1,0--1,9)); - Expr (Ident b, (2,0--2,1))], PreXmlDocEmpty, [], None, (1,0--3,0), + Expr (Ident b, (2,0--2,1))], PreXmlDocEmpty, [], None, (1,0--2,1), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/IfThenElse/DeeplyNestedIfThenElse.fs.bsl b/tests/service/data/SyntaxTree/IfThenElse/DeeplyNestedIfThenElse.fs.bsl index 6c91bc3c497..d544773b9f9 100644 --- a/tests/service/data/SyntaxTree/IfThenElse/DeeplyNestedIfThenElse.fs.bsl +++ b/tests/service/data/SyntaxTree/IfThenElse/DeeplyNestedIfThenElse.fs.bsl @@ -30,7 +30,7 @@ ImplFile ThenKeyword = (2,5--2,9) ElseKeyword = None IfToThenRange = (2,0--2,9) }), (2,0--10,13))], PreXmlDocEmpty, - [], None, (2,0--11,0), { LeadingKeyword = None })], (true, true), + [], None, (2,0--10,13), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/IfThenElse/ElseKeywordInSimpleIfThenElse.fs.bsl b/tests/service/data/SyntaxTree/IfThenElse/ElseKeywordInSimpleIfThenElse.fs.bsl index 8880778d7d4..f89e5ce5700 100644 --- a/tests/service/data/SyntaxTree/IfThenElse/ElseKeywordInSimpleIfThenElse.fs.bsl +++ b/tests/service/data/SyntaxTree/IfThenElse/ElseKeywordInSimpleIfThenElse.fs.bsl @@ -12,7 +12,7 @@ ImplFile ThenKeyword = (2,5--2,9) ElseKeyword = Some (2,12--2,16) IfToThenRange = (2,0--2,9) }), (2,0--2,18))], - PreXmlDocEmpty, [], None, (2,0--3,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--2,18), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/IfThenElse/IfKeywordInIfThenElse.fs.bsl b/tests/service/data/SyntaxTree/IfThenElse/IfKeywordInIfThenElse.fs.bsl index e5e31766436..0c3327a2bb2 100644 --- a/tests/service/data/SyntaxTree/IfThenElse/IfKeywordInIfThenElse.fs.bsl +++ b/tests/service/data/SyntaxTree/IfThenElse/IfKeywordInIfThenElse.fs.bsl @@ -12,7 +12,7 @@ ImplFile ThenKeyword = (2,5--2,9) ElseKeyword = None IfToThenRange = (2,0--2,9) }), (2,0--2,11))], PreXmlDocEmpty, - [], None, (2,0--3,0), { LeadingKeyword = None })], (true, true), + [], None, (2,0--2,11), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs.bsl b/tests/service/data/SyntaxTree/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs.bsl index 7ecb4d2a588..c1a8068ad45 100644 --- a/tests/service/data/SyntaxTree/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs.bsl +++ b/tests/service/data/SyntaxTree/IfThenElse/IfThenAndElseKeywordOnSeparateLines.fs.bsl @@ -12,7 +12,7 @@ ImplFile ThenKeyword = (3,0--3,4) ElseKeyword = Some (4,0--4,4) IfToThenRange = (2,0--3,4) }), (2,0--4,6))], - PreXmlDocEmpty, [], None, (2,0--5,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--4,6), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/IfThenElse/NestedElifInIfThenElse.fs.bsl b/tests/service/data/SyntaxTree/IfThenElse/NestedElifInIfThenElse.fs.bsl index 4d59e2371b3..8749ac87a26 100644 --- a/tests/service/data/SyntaxTree/IfThenElse/NestedElifInIfThenElse.fs.bsl +++ b/tests/service/data/SyntaxTree/IfThenElse/NestedElifInIfThenElse.fs.bsl @@ -21,7 +21,7 @@ ImplFile ThenKeyword = (2,5--2,9) ElseKeyword = None IfToThenRange = (2,0--2,9) }), (2,0--4,13))], PreXmlDocEmpty, - [], None, (2,0--5,0), { LeadingKeyword = None })], (true, true), + [], None, (2,0--4,13), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfInIfThenElse.fs.bsl b/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfInIfThenElse.fs.bsl index 8085e2915cd..79ad86a1016 100644 --- a/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfInIfThenElse.fs.bsl +++ b/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfInIfThenElse.fs.bsl @@ -21,7 +21,7 @@ ImplFile ThenKeyword = (2,5--2,9) ElseKeyword = Some (4,0--4,4) IfToThenRange = (2,0--2,9) }), (2,0--5,15))], PreXmlDocEmpty, - [], None, (2,0--6,0), { LeadingKeyword = None })], (true, true), + [], None, (2,0--5,15), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs.bsl b/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs.bsl index 7b9c52347c3..ddaabcd972d 100644 --- a/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs.bsl +++ b/tests/service/data/SyntaxTree/IfThenElse/NestedElseIfOnTheSameLineInIfThenElse.fs.bsl @@ -21,7 +21,7 @@ ImplFile ThenKeyword = (2,5--2,9) ElseKeyword = Some (4,0--4,4) IfToThenRange = (2,0--2,9) }), (2,0--5,5))], PreXmlDocEmpty, - [], None, (2,0--6,0), { LeadingKeyword = None })], (true, true), + [], None, (2,0--5,5), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Lambda/ComplexArgumentsLambdaHasArrowRange.fs.bsl b/tests/service/data/SyntaxTree/Lambda/ComplexArgumentsLambdaHasArrowRange.fs.bsl index 7e0dcdbacdc..2fcdd5fc460 100644 --- a/tests/service/data/SyntaxTree/Lambda/ComplexArgumentsLambdaHasArrowRange.fs.bsl +++ b/tests/service/data/SyntaxTree/Lambda/ComplexArgumentsLambdaHasArrowRange.fs.bsl @@ -166,7 +166,7 @@ ImplFile { MatchKeyword = (3,5--6,13) WithKeyword = (3,5--6,13) })), (2,0--6,13), { ArrowRange = Some (5,4--5,6) }), (2,0--6,13))], - PreXmlDocEmpty, [], None, (2,0--7,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--6,13), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Lambda/DestructedLambdaHasArrowRange.fs.bsl b/tests/service/data/SyntaxTree/Lambda/DestructedLambdaHasArrowRange.fs.bsl index 575a421c923..ff411cdb4eb 100644 --- a/tests/service/data/SyntaxTree/Lambda/DestructedLambdaHasArrowRange.fs.bsl +++ b/tests/service/data/SyntaxTree/Lambda/DestructedLambdaHasArrowRange.fs.bsl @@ -69,7 +69,7 @@ ImplFile { MatchKeyword = (2,4--2,22) WithKeyword = (2,4--2,22) })), (2,0--2,22), { ArrowRange = Some (2,14--2,16) }), (2,0--2,22))], - PreXmlDocEmpty, [], None, (2,0--3,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--2,22), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs.bsl b/tests/service/data/SyntaxTree/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs.bsl index e85c474072a..8cb44086e13 100644 --- a/tests/service/data/SyntaxTree/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs.bsl +++ b/tests/service/data/SyntaxTree/Lambda/LambdaWithTupleParameterWithWildCardGivesCorrectBody.fs.bsl @@ -36,7 +36,7 @@ ImplFile (2,6--2,12)); Named (SynIdent (c, None), false, None, (2,13--2,14))], Ident x), (2,0--2,19), { ArrowRange = Some (2,15--2,17) }), - (2,0--2,19))], PreXmlDocEmpty, [], None, (2,0--3,0), + (2,0--2,19))], PreXmlDocEmpty, [], None, (2,0--2,19), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs.bsl b/tests/service/data/SyntaxTree/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs.bsl index 8e77bc9eed1..a2e36f79086 100644 --- a/tests/service/data/SyntaxTree/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs.bsl +++ b/tests/service/data/SyntaxTree/Lambda/LambdaWithTwoParametersGivesCorrectBody.fs.bsl @@ -20,7 +20,7 @@ ImplFile ([Named (SynIdent (a, None), false, None, (2,4--2,5)); Named (SynIdent (b, None), false, None, (2,6--2,7))], Ident x), (2,0--2,12), { ArrowRange = Some (2,8--2,10) }), - (2,0--2,12))], PreXmlDocEmpty, [], None, (2,0--3,0), + (2,0--2,12))], PreXmlDocEmpty, [], None, (2,0--2,12), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs.bsl b/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs.bsl index e38de7b5537..16a7576c50d 100644 --- a/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs.bsl +++ b/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardParameterGivesCorrectBody.fs.bsl @@ -27,7 +27,7 @@ ImplFile Wild (2,6--2,7); Named (SynIdent (b, None), false, None, (2,8--2,9))], Ident x), (2,0--2,14), { ArrowRange = Some (2,10--2,12) }), - (2,0--2,14))], PreXmlDocEmpty, [], None, (2,0--3,0), + (2,0--2,14))], PreXmlDocEmpty, [], None, (2,0--2,14), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs.bsl b/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs.bsl index eb2ff3402e8..4c530b74aae 100644 --- a/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs.bsl +++ b/tests/service/data/SyntaxTree/Lambda/LambdaWithWildCardThatReturnsALambdaGivesCorrectBody.fs.bsl @@ -30,7 +30,7 @@ ImplFile Some ([Wild (2,13--2,14)], Ident x), (2,9--2,19), { ArrowRange = Some (2,15--2,17) })), (2,0--2,19), { ArrowRange = Some (2,6--2,8) }), (2,0--2,19))], - PreXmlDocEmpty, [], None, (2,0--3,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--2,19), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Lambda/MultilineLambdaHasArrowRange.fs.bsl b/tests/service/data/SyntaxTree/Lambda/MultilineLambdaHasArrowRange.fs.bsl index 40da24ed4d1..a82e1b1d91b 100644 --- a/tests/service/data/SyntaxTree/Lambda/MultilineLambdaHasArrowRange.fs.bsl +++ b/tests/service/data/SyntaxTree/Lambda/MultilineLambdaHasArrowRange.fs.bsl @@ -70,7 +70,7 @@ ImplFile Ident y, (4,32--4,37)), (4,32--4,39)), Ident z, (4,32--4,41))), (2,0--4,41), { ArrowRange = Some (3,28--3,30) }), (2,0--4,41))], - PreXmlDocEmpty, [], None, (2,0--5,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--4,41), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Lambda/SimpleLambdaHasArrowRange.fs.bsl b/tests/service/data/SyntaxTree/Lambda/SimpleLambdaHasArrowRange.fs.bsl index 54ee6a39cde..8c8a79394a5 100644 --- a/tests/service/data/SyntaxTree/Lambda/SimpleLambdaHasArrowRange.fs.bsl +++ b/tests/service/data/SyntaxTree/Lambda/SimpleLambdaHasArrowRange.fs.bsl @@ -13,7 +13,7 @@ ImplFile Some ([Named (SynIdent (x, None), false, None, (2,4--2,5))], Ident x), (2,0--2,10), { ArrowRange = Some (2,6--2,8) }), - (2,0--2,10))], PreXmlDocEmpty, [], None, (2,0--3,0), + (2,0--2,10))], PreXmlDocEmpty, [], None, (2,0--2,10), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Lambda/TupleInLambdaHasArrowRange.fs.bsl b/tests/service/data/SyntaxTree/Lambda/TupleInLambdaHasArrowRange.fs.bsl index 788eb98a507..bbdb4824550 100644 --- a/tests/service/data/SyntaxTree/Lambda/TupleInLambdaHasArrowRange.fs.bsl +++ b/tests/service/data/SyntaxTree/Lambda/TupleInLambdaHasArrowRange.fs.bsl @@ -39,7 +39,7 @@ ImplFile None, (2,16--2,17)), Ident x, (2,14--2,17)), Const (Int32 3, (2,18--2,19)), (2,14--2,19))), (2,0--2,19), { ArrowRange = Some (2,11--2,13) }), (2,0--2,19))], - PreXmlDocEmpty, [], None, (2,0--3,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--2,19), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/AbstractKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/AbstractKeyword.fs.bsl index 34aa70d3379..6390634614e 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/AbstractKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/AbstractKeyword.fs.bsl @@ -35,7 +35,7 @@ ImplFile (2,5--3,20), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,20))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,20), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/AbstractMemberKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/AbstractMemberKeyword.fs.bsl index 9f3ccbf040b..dced6d41a25 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/AbstractMemberKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/AbstractMemberKeyword.fs.bsl @@ -36,7 +36,7 @@ ImplFile (2,5--3,27), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,27))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,27), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/AndKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/AndKeyword.fs.bsl index 4aa2963c410..82b1033363d 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/AndKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/AndKeyword.fs.bsl @@ -57,7 +57,7 @@ ImplFile NoneAtLet, { LeadingKeyword = And (3,0--3,3) InlineKeyword = None EqualsRange = Some (3,8--3,9) })], (2,0--3,15), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--4,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,15), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/DefaultValKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/DefaultValKeyword.fs.bsl index 028585bc0b5..238c30c9aff 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/DefaultValKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/DefaultValKeyword.fs.bsl @@ -38,7 +38,7 @@ ImplFile (2,5--3,27), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--3,27))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,27), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/DoKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/DoKeyword.fs.bsl index 14ae9d51f17..ace49c56f7d 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/DoKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/DoKeyword.fs.bsl @@ -27,7 +27,7 @@ ImplFile (2,5--3,9), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,9))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,9), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/DoStaticKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/DoStaticKeyword.fs.bsl index 74f4d74b17e..0b4fafbd3df 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/DoStaticKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/DoStaticKeyword.fs.bsl @@ -28,7 +28,7 @@ ImplFile (2,5--3,16), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,16))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,16), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/LetKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/LetKeyword.fs.bsl index 982311fccfe..a66eee95b60 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/LetKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/LetKeyword.fs.bsl @@ -31,7 +31,7 @@ ImplFile NoneAtLet, { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,8--2,9) })], (2,0--2,15), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,15), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/LetRecKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/LetRecKeyword.fs.bsl index 2569de7dba4..5f9cefc7eb4 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/LetRecKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/LetRecKeyword.fs.bsl @@ -32,7 +32,7 @@ ImplFile NoneAtLet, { LeadingKeyword = LetRec ((2,0--2,3), (2,4--2,7)) InlineKeyword = None EqualsRange = Some (2,12--2,13) })], (2,0--2,19), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,19), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/MemberKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/MemberKeyword.fs.bsl index 3d161da52e3..a8a06413c0d 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/MemberKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/MemberKeyword.fs.bsl @@ -43,7 +43,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,26))], PreXmlDocEmpty, [], - None, (2,0--4,0), { LeadingKeyword = None })], (true, true), + None, (2,0--3,26), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/MemberValKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/MemberValKeyword.fs.bsl index d9ba80b80df..0794e6a8f28 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/MemberValKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/MemberValKeyword.fs.bsl @@ -38,7 +38,7 @@ ImplFile (2,5--3,26), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,26))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,26), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/NewKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/NewKeyword.fs.bsl index ebc374d1432..95463622f8a 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/NewKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/NewKeyword.fs.bsl @@ -59,7 +59,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--3,30))], PreXmlDocEmpty, [], - None, (2,0--4,0), { LeadingKeyword = None })], (true, true), + None, (2,0--3,30), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/OverrideKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/OverrideKeyword.fs.bsl index f9d0ec25562..88d5905d724 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/OverrideKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/OverrideKeyword.fs.bsl @@ -48,7 +48,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,28))], PreXmlDocEmpty, [], - None, (2,0--4,0), { LeadingKeyword = None })], (true, true), + None, (2,0--3,28), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/OverrideValKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/OverrideValKeyword.fs.bsl index 837e1b368fd..25a131aa4e9 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/OverrideValKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/OverrideValKeyword.fs.bsl @@ -38,7 +38,7 @@ ImplFile (2,5--3,28), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,28))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,28), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractKeyword.fs.bsl index e75b4c25218..ba8b538a823 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractKeyword.fs.bsl @@ -40,7 +40,7 @@ ImplFile (2,5--3,34), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,34))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,34), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractMemberKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractMemberKeyword.fs.bsl index 73e5a522b4b..c06f7a76bd0 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractMemberKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticAbstractMemberKeyword.fs.bsl @@ -41,7 +41,7 @@ ImplFile (2,5--3,41), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,41))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,41), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetKeyword.fs.bsl index ef71149048c..8c2ab6837dc 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetKeyword.fs.bsl @@ -33,7 +33,7 @@ ImplFile None, (2,5--3,24), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,24))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,24), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetRecKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetRecKeyword.fs.bsl index 5251188440d..818ea44fb9a 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetRecKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticLetRecKeyword.fs.bsl @@ -39,7 +39,7 @@ ImplFile None, (2,5--3,41), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,41))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,41), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberKeyword.fs.bsl index 541b6f582a9..c48dc9a4016 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberKeyword.fs.bsl @@ -45,7 +45,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,29))], PreXmlDocEmpty, [], - None, (2,0--4,0), { LeadingKeyword = None })], (true, true), + None, (2,0--3,29), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberValKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberValKeyword.fs.bsl index feb33135568..67eeaf87b8f 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberValKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/StaticMemberValKeyword.fs.bsl @@ -39,7 +39,7 @@ ImplFile (2,5--3,33), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,33))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,33), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/UseKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/UseKeyword.fs.bsl index acb1aa99958..465ce764738 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/UseKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/UseKeyword.fs.bsl @@ -27,7 +27,7 @@ ImplFile Range = (3,4--4,6) Trivia = { InKeyword = None } IsFromSource = true }, (2,0--4,6)), (2,0--4,6))], - PreXmlDocEmpty, [], None, (2,0--5,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--4,6), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/LeadingKeyword/UseRecKeyword.fs.bsl b/tests/service/data/SyntaxTree/LeadingKeyword/UseRecKeyword.fs.bsl index 2e9c69bdb72..f05e5b81acd 100644 --- a/tests/service/data/SyntaxTree/LeadingKeyword/UseRecKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/LeadingKeyword/UseRecKeyword.fs.bsl @@ -27,7 +27,7 @@ ImplFile Range = (3,4--4,6) Trivia = { InKeyword = None } IsFromSource = true }, (2,0--4,6)), (2,0--4,6))], - PreXmlDocEmpty, [], None, (2,0--5,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--4,6), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs.bsl index 4fb707a309e..6856c6777db 100644 --- a/tests/service/data/SyntaxTree/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs.bsl +++ b/tests/service/data/SyntaxTree/MatchClause/NoRangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs.bsl @@ -21,7 +21,7 @@ ImplFile TryToWithRange = (2,0--4,4) WithKeyword = (4,0--4,4) WithToEndRange = (4,0--6,6) }), (2,0--6,6))], - PreXmlDocEmpty, [], None, (2,0--7,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--6,6), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [LineComment (5,4--5,19)] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClause.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClause.fs.bsl index 23af64bcfe3..ad2b0f62c7c 100644 --- a/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClause.fs.bsl +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClause.fs.bsl @@ -17,7 +17,7 @@ ImplFile BarRange = Some (3,0--3,1) })], (2,0--3,15), { MatchKeyword = (2,0--2,5) WithKeyword = (2,10--2,14) }), (2,0--3,15))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,15), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs.bsl index 37445cfd5a1..a8af55281b5 100644 --- a/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs.bsl +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfArrowInSynMatchClauseWithWhenClause.fs.bsl @@ -23,7 +23,7 @@ ImplFile BarRange = Some (3,0--3,1) })], (2,0--3,36), { MatchKeyword = (2,0--2,5) WithKeyword = (2,10--2,14) }), (2,0--3,36))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,36), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs.bsl index 5a1bf39c36b..f2045889333 100644 --- a/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs.bsl +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInAMultipleSynMatchClausesInSynExprTryWith.fs.bsl @@ -31,7 +31,7 @@ ImplFile TryToWithRange = (2,0--4,4) WithKeyword = (4,0--4,4) WithToEndRange = (4,0--8,10) }), (2,0--8,10))], - PreXmlDocEmpty, [], None, (2,0--9,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--8,10), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [LineComment (6,4--6,19)] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs.bsl index 07c297570a9..e29508ddf90 100644 --- a/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs.bsl +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprMatch.fs.bsl @@ -24,7 +24,7 @@ ImplFile BarRange = Some (3,0--3,1) })], (2,0--3,36), { MatchKeyword = (2,0--2,5) WithKeyword = (2,10--2,14) }), (2,0--3,36))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,36), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs.bsl index 8df2cbe5f9f..5579433fe26 100644 --- a/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs.bsl +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInASingleSynMatchClauseInSynExprTryWith.fs.bsl @@ -20,7 +20,7 @@ ImplFile TryToWithRange = (2,0--4,4) WithKeyword = (4,0--4,4) WithToEndRange = (4,0--5,11) }), (2,0--5,11))], - PreXmlDocEmpty, [], None, (2,0--6,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--5,11), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs.bsl index dbe210b96d4..b0ea666f29c 100644 --- a/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs.bsl +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfBarInMultipleSynMatchClausesInSynExprMatch.fs.bsl @@ -35,7 +35,7 @@ ImplFile BarRange = Some (4,0--4,1) })], (2,0--4,20), { MatchKeyword = (2,0--2,5) WithKeyword = (2,10--2,14) }), (2,0--4,20))], PreXmlDocEmpty, - [], None, (2,0--5,0), { LeadingKeyword = None })], (true, true), + [], None, (2,0--4,20), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfMultipleSynMatchClause.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfMultipleSynMatchClause.fs.bsl index 7e93cf92fbc..95148ffdea6 100644 --- a/tests/service/data/SyntaxTree/MatchClause/RangeOfMultipleSynMatchClause.fs.bsl +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfMultipleSynMatchClause.fs.bsl @@ -56,7 +56,7 @@ ImplFile TryToWithRange = (2,0--5,4) WithKeyword = (5,0--5,4) WithToEndRange = (5,0--10,8) }), (2,0--10,8))], - PreXmlDocEmpty, [], None, (2,0--11,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--10,8), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClause.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClause.fs.bsl index 4227bf63c82..4d3804fe949 100644 --- a/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClause.fs.bsl +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClause.fs.bsl @@ -50,7 +50,7 @@ ImplFile TryToWithRange = (2,0--5,4) WithKeyword = (5,0--5,4) WithToEndRange = (5,0--7,8) }), (2,0--7,8))], - PreXmlDocEmpty, [], None, (2,0--8,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--7,8), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs.bsl b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs.bsl index 284e3c115de..7e48d10f291 100644 --- a/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs.bsl +++ b/tests/service/data/SyntaxTree/MatchClause/RangeOfSingleSynMatchClauseFollowedByBar.fs.bsl @@ -40,7 +40,7 @@ ImplFile TryToWithRange = (2,0--5,4) WithKeyword = (5,0--5,4) WithToEndRange = (5,0--8,1) }), - (2,0--8,1))], PreXmlDocEmpty, [], None, (2,0--9,0), + (2,0--8,1))], PreXmlDocEmpty, [], None, (2,0--8,1), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Measure/MeasureContainsTheRangeOfTheConstant.fs.bsl b/tests/service/data/SyntaxTree/Measure/MeasureContainsTheRangeOfTheConstant.fs.bsl index 9dff13b0b57..13cf9421552 100644 --- a/tests/service/data/SyntaxTree/Measure/MeasureContainsTheRangeOfTheConstant.fs.bsl +++ b/tests/service/data/SyntaxTree/Measure/MeasureContainsTheRangeOfTheConstant.fs.bsl @@ -40,7 +40,7 @@ ImplFile InlineKeyword = None EqualsRange = Some (3,6--3,7) })], (3,0--3,17), { InKeyword = None })], PreXmlDocEmpty, [], None, - (2,0--4,0), { LeadingKeyword = None })], (true, true), + (2,0--3,17), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs.bsl b/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs.bsl index 33675b1a3a1..dc1c5fab8ed 100644 --- a/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs.bsl +++ b/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithLeadingSlash.fs.bsl @@ -28,7 +28,7 @@ ImplFile (2,0--2,29), { LeadingKeyword = Type (2,12--2,16) EqualsRange = Some (2,19--2,20) WithKeyword = None })], (2,0--2,29))], - PreXmlDocEmpty, [], None, (2,0--3,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--2,29), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs.bsl b/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs.bsl index fc29ce7d7e1..ad41bdf7457 100644 --- a/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs.bsl +++ b/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithNoSlashes.fs.bsl @@ -28,7 +28,7 @@ ImplFile (2,0--2,26), { LeadingKeyword = Type (2,12--2,16) EqualsRange = Some (2,19--2,20) WithKeyword = None })], (2,0--2,26))], - PreXmlDocEmpty, [], None, (2,0--3,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--2,26), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs.bsl b/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs.bsl index 6e423837385..4dea9a8589b 100644 --- a/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs.bsl +++ b/tests/service/data/SyntaxTree/Measure/SynTypeTupleInMeasureTypeWithStartAndSlash.fs.bsl @@ -30,7 +30,7 @@ ImplFile (2,0--2,30), { LeadingKeyword = Type (2,12--2,16) EqualsRange = Some (2,19--2,20) WithKeyword = None })], (2,0--2,30))], - PreXmlDocEmpty, [], None, (2,0--3,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--2,30), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/GetSetMemberWithInlineKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/GetSetMemberWithInlineKeyword.fs.bsl index f09cb92e147..0c5bb838dce 100644 --- a/tests/service/data/SyntaxTree/Member/GetSetMemberWithInlineKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/GetSetMemberWithInlineKeyword.fs.bsl @@ -81,7 +81,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--5,29))], PreXmlDocEmpty, [], - None, (2,0--6,0), { LeadingKeyword = None })], (true, true), + None, (2,0--5,29), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/ImplicitCtorWithAsKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/ImplicitCtorWithAsKeyword.fs.bsl index 06e7e3f9fdc..4fc0fa00cff 100644 --- a/tests/service/data/SyntaxTree/Member/ImplicitCtorWithAsKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/ImplicitCtorWithAsKeyword.fs.bsl @@ -77,7 +77,7 @@ ImplFile (2,5--8,13), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (4,12--4,13) WithKeyword = None })], (2,0--8,13))], - PreXmlDocEmpty, [], None, (2,0--9,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--8,13), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Member/MemberWithInlineKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/MemberWithInlineKeyword.fs.bsl index 65401553b8f..566f35238c5 100644 --- a/tests/service/data/SyntaxTree/Member/MemberWithInlineKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/MemberWithInlineKeyword.fs.bsl @@ -43,7 +43,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,29))], PreXmlDocEmpty, [], - None, (2,0--4,0), { LeadingKeyword = None })], (true, true), + None, (2,0--3,29), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl index 110af6cd16c..0a431cec9a5 100644 --- a/tests/service/data/SyntaxTree/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/ReadwritePropertyInSynMemberDefnMemberContainsTheRangeOfTheWithKeyword.fs.bsl @@ -98,7 +98,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,11--2,12) WithKeyword = None })], (2,0--6,50))], PreXmlDocEmpty, [], - None, (2,0--7,0), { LeadingKeyword = None })], (true, true), + None, (2,0--6,50), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [LineComment (3,4--3,29)] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs.bsl index 4838003cfc0..9ae806ce733 100644 --- a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAbstractSlotContainsTheRangeOfTheWithKeyword.fs.bsl @@ -50,7 +50,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,11--2,12) WithKeyword = None })], (2,0--3,42))], PreXmlDocEmpty, [], - None, (2,0--4,0), { LeadingKeyword = None })], (true, true), + None, (2,0--3,42), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs.bsl b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs.bsl index 3009a787588..ba137ac80d9 100644 --- a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheEqualsSign.fs.bsl @@ -84,7 +84,7 @@ ImplFile { LeadingKeyword = Type (3,0--3,4) EqualsRange = Some (3,38--3,39) WithKeyword = None })], (2,0--5,40))], PreXmlDocEmpty, [], - None, (3,0--6,0), { LeadingKeyword = None })], (true, true), + None, (3,0--5,40), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs.bsl index f437240766a..44160d14078 100644 --- a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithAutoPropertyContainsTheRangeOfTheWithKeyword.fs.bsl @@ -70,7 +70,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,11--2,12) WithKeyword = None })], (2,0--4,39))], PreXmlDocEmpty, [], - None, (2,0--5,0), { LeadingKeyword = None })], (true, true), + None, (2,0--4,39), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs.bsl b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs.bsl index cf045eeca1f..f417d2eeeec 100644 --- a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithGetHasXmlComment.fs.bsl @@ -50,7 +50,7 @@ ImplFile None, (2,5--4,29), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--4,29))], - PreXmlDocEmpty, [], None, (2,0--5,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--4,29), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithSetget.fs.bsl b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithSetget.fs.bsl index 97c59244fb9..0f3965b45a9 100644 --- a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithSetget.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithMemberWithSetget.fs.bsl @@ -110,7 +110,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--3,62))], PreXmlDocEmpty, [], - None, (2,0--4,0), { LeadingKeyword = None })], (true, true), + None, (2,0--3,62), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithStaticMemberWithGetset.fs.bsl b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithStaticMemberWithGetset.fs.bsl index 7277f5e58c2..4ff5f22cbd9 100644 --- a/tests/service/data/SyntaxTree/Member/SynTypeDefnWithStaticMemberWithGetset.fs.bsl +++ b/tests/service/data/SyntaxTree/Member/SynTypeDefnWithStaticMemberWithGetset.fs.bsl @@ -107,7 +107,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--5,54))], PreXmlDocEmpty, [], - None, (2,0--6,0), { LeadingKeyword = None })], (true, true), + None, (2,0--5,54), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs.bsl b/tests/service/data/SyntaxTree/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs.bsl index 905d4abcc41..85cdd796b00 100644 --- a/tests/service/data/SyntaxTree/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs.bsl +++ b/tests/service/data/SyntaxTree/MemberFlag/SynExprObjMembersHaveCorrectKeywords.fs.bsl @@ -105,7 +105,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,8--2,9) })], (2,0--7,34), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--8,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--7,34), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs.bsl b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs.bsl index bbc45fd79ae..fa3916ab6ff 100644 --- a/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAbstractSlotHasCorrectKeyword.fs.bsl @@ -56,7 +56,7 @@ ImplFile (2,5--4,26), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--4,26))], - PreXmlDocEmpty, [], None, (2,0--5,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--4,26), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs.bsl b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs.bsl index 2f12d930aa0..3e81cf47683 100644 --- a/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnAutoPropertyHasCorrectKeyword.fs.bsl @@ -108,7 +108,7 @@ ImplFile (2,5--6,27), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--6,27))], - PreXmlDocEmpty, [], None, (2,0--7,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--6,27), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs.bsl b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs.bsl index ddf52181d1c..bed97db53de 100644 --- a/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/MemberFlag/SynMemberDefnMemberSynValDataHasCorrectKeyword.fs.bsl @@ -125,7 +125,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--6,25))], PreXmlDocEmpty, [], - None, (2,0--7,0), { LeadingKeyword = None })], (true, true), + None, (2,0--6,25), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/NestedModule/RangeOfEqualSignShouldBePresent.fs.bsl b/tests/service/data/SyntaxTree/NestedModule/RangeOfEqualSignShouldBePresent.fs.bsl index 5b493568519..92374a61895 100644 --- a/tests/service/data/SyntaxTree/NestedModule/RangeOfEqualSignShouldBePresent.fs.bsl +++ b/tests/service/data/SyntaxTree/NestedModule/RangeOfEqualSignShouldBePresent.fs.bsl @@ -12,7 +12,7 @@ ImplFile [Expr (Const (Unit, (3,4--3,6)), (3,4--3,6))], false, (2,0--3,6), { ModuleKeyword = Some (2,0--2,6) EqualsRange = Some (2,9--2,10) })], PreXmlDocEmpty, [], None, - (2,0--4,0), { LeadingKeyword = None })], (true, true), + (2,0--3,6), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Nullness/AbstractClassProperty.fs.bsl b/tests/service/data/SyntaxTree/Nullness/AbstractClassProperty.fs.bsl index d544fd6cd7b..822e649f3e8 100644 --- a/tests/service/data/SyntaxTree/Nullness/AbstractClassProperty.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/AbstractClassProperty.fs.bsl @@ -55,7 +55,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,20--2,21) WithKeyword = None })], (1,0--3,51))], PreXmlDocEmpty, [], - None, (1,0--4,0), { LeadingKeyword = None })], (true, true), + None, (1,0--3,51), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Nullness/DuCaseStringOrNull.fs.bsl b/tests/service/data/SyntaxTree/Nullness/DuCaseStringOrNull.fs.bsl index 13161fa49f4..4b4c20e4bd4 100644 --- a/tests/service/data/SyntaxTree/Nullness/DuCaseStringOrNull.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/DuCaseStringOrNull.fs.bsl @@ -34,7 +34,7 @@ ImplFile { LeadingKeyword = Type (1,0--1,4) EqualsRange = Some (1,8--1,9) WithKeyword = None })], (1,0--1,35))], PreXmlDocEmpty, [], - None, (1,0--2,0), { LeadingKeyword = None })], (true, true), + None, (1,0--1,35), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Nullness/DuCaseTuplePrecedence.fs.bsl b/tests/service/data/SyntaxTree/Nullness/DuCaseTuplePrecedence.fs.bsl index 51050a8e198..450e66b882a 100644 --- a/tests/service/data/SyntaxTree/Nullness/DuCaseTuplePrecedence.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/DuCaseTuplePrecedence.fs.bsl @@ -41,7 +41,7 @@ ImplFile { LeadingKeyword = Type (1,0--1,4) EqualsRange = Some (1,8--1,9) WithKeyword = None })], (1,0--1,41))], PreXmlDocEmpty, [], - None, (1,0--2,0), { LeadingKeyword = None })], (true, true), + None, (1,0--1,41), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Nullness/ExplicitField.fs.bsl b/tests/service/data/SyntaxTree/Nullness/ExplicitField.fs.bsl index 8626a3204af..1caa5cf15fc 100644 --- a/tests/service/data/SyntaxTree/Nullness/ExplicitField.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/ExplicitField.fs.bsl @@ -27,7 +27,7 @@ ImplFile { LeadingKeyword = Type (1,0--1,4) EqualsRange = Some (1,14--1,15) WithKeyword = None })], (1,0--4,7))], PreXmlDocEmpty, [], - None, (1,0--5,0), { LeadingKeyword = None })], (true, true), + None, (1,0--4,7), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Nullness/FunctionArgAsPatternWithNullCase.fs.bsl b/tests/service/data/SyntaxTree/Nullness/FunctionArgAsPatternWithNullCase.fs.bsl index 1163ccbe7a0..0e169633415 100644 --- a/tests/service/data/SyntaxTree/Nullness/FunctionArgAsPatternWithNullCase.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/FunctionArgAsPatternWithNullCase.fs.bsl @@ -43,7 +43,7 @@ ImplFile InlineKeyword = None EqualsRange = Some (1,48--1,49) })], (1,0--1,52), { InKeyword = None })], PreXmlDocEmpty, [], None, - (1,0--2,0), { LeadingKeyword = None })], (true, true), + (1,0--1,52), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Nullness/GenericFunctionReturnTypeNotStructNull.fs.bsl b/tests/service/data/SyntaxTree/Nullness/GenericFunctionReturnTypeNotStructNull.fs.bsl index beef982627b..921c852f5f8 100644 --- a/tests/service/data/SyntaxTree/Nullness/GenericFunctionReturnTypeNotStructNull.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/GenericFunctionReturnTypeNotStructNull.fs.bsl @@ -37,7 +37,7 @@ ImplFile { LeadingKeyword = Let (1,0--1,3) InlineKeyword = None EqualsRange = Some (1,51--1,52) })], (1,0--1,57), - { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--2,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--1,57), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Nullness/GenericFunctionTyparNotNull.fs.bsl b/tests/service/data/SyntaxTree/Nullness/GenericFunctionTyparNotNull.fs.bsl index ced1fa2ca34..16437dcb4e4 100644 --- a/tests/service/data/SyntaxTree/Nullness/GenericFunctionTyparNotNull.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/GenericFunctionTyparNotNull.fs.bsl @@ -32,7 +32,7 @@ ImplFile { LeadingKeyword = Let (1,0--1,3) InlineKeyword = None EqualsRange = Some (1,37--1,38) })], (1,0--1,41), - { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--2,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--1,41), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Nullness/GenericFunctionTyparNull.fs.bsl b/tests/service/data/SyntaxTree/Nullness/GenericFunctionTyparNull.fs.bsl index 04a03f8646c..f07361921e9 100644 --- a/tests/service/data/SyntaxTree/Nullness/GenericFunctionTyparNull.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/GenericFunctionTyparNull.fs.bsl @@ -31,7 +31,7 @@ ImplFile InlineKeyword = None EqualsRange = Some (1,33--1,34) })], (1,0--1,37), { InKeyword = None })], PreXmlDocEmpty, [], None, - (1,0--2,0), { LeadingKeyword = None })], (true, true), + (1,0--1,37), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Nullness/GenericTypeNotNull.fs.bsl b/tests/service/data/SyntaxTree/Nullness/GenericTypeNotNull.fs.bsl index 2e217784614..6bdf6a3ded3 100644 --- a/tests/service/data/SyntaxTree/Nullness/GenericTypeNotNull.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/GenericTypeNotNull.fs.bsl @@ -23,7 +23,7 @@ ImplFile { LeadingKeyword = Type (1,0--1,4) EqualsRange = Some (1,29--1,30) WithKeyword = None })], (1,0--1,40))], PreXmlDocEmpty, [], - None, (1,0--2,0), { LeadingKeyword = None })], (true, true), + None, (1,0--1,40), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Nullness/GenericTypeNotNullAndOtherConstraint.fs.bsl b/tests/service/data/SyntaxTree/Nullness/GenericTypeNotNullAndOtherConstraint.fs.bsl index 4f47caa397c..74ea5bb5b77 100644 --- a/tests/service/data/SyntaxTree/Nullness/GenericTypeNotNullAndOtherConstraint.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/GenericTypeNotNullAndOtherConstraint.fs.bsl @@ -26,7 +26,7 @@ ImplFile { LeadingKeyword = Type (1,0--1,4) EqualsRange = Some (1,45--1,46) WithKeyword = None })], (1,0--1,56))], PreXmlDocEmpty, [], - None, (1,0--2,0), { LeadingKeyword = None })], (true, true), + None, (1,0--1,56), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Nullness/GenericTypeNotStructAndOtherConstraint-I_am_Still_Sane.fs.bsl b/tests/service/data/SyntaxTree/Nullness/GenericTypeNotStructAndOtherConstraint-I_am_Still_Sane.fs.bsl index 0ea0210a109..296f45fab77 100644 --- a/tests/service/data/SyntaxTree/Nullness/GenericTypeNotStructAndOtherConstraint-I_am_Still_Sane.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/GenericTypeNotStructAndOtherConstraint-I_am_Still_Sane.fs.bsl @@ -27,9 +27,9 @@ ImplFile { LeadingKeyword = Type (1,0--1,4) EqualsRange = Some (1,47--1,48) WithKeyword = None })], (1,0--1,58))], PreXmlDocEmpty, [], - None, (1,0--2,0), { LeadingKeyword = None })], (true, true), + None, (1,0--1,58), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) -(1,0)-(2,0) parse warning The declarations in this file will be placed in an implicit module 'GenericTypeNotStructAndOtherConstraint-I_am_Still_Sane' based on the file name 'GenericTypeNotStructAndOtherConstraint-I_am_Still_Sane.fs'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. +(1,0)-(1,58) parse warning The declarations in this file will be placed in an implicit module 'GenericTypeNotStructAndOtherConstraint-I_am_Still_Sane' based on the file name 'GenericTypeNotStructAndOtherConstraint-I_am_Still_Sane.fs'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file. diff --git a/tests/service/data/SyntaxTree/Nullness/GenericTypeNull.fs.bsl b/tests/service/data/SyntaxTree/Nullness/GenericTypeNull.fs.bsl index 59936ebce22..d82c0902345 100644 --- a/tests/service/data/SyntaxTree/Nullness/GenericTypeNull.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/GenericTypeNull.fs.bsl @@ -22,7 +22,7 @@ ImplFile { LeadingKeyword = Type (1,0--1,4) EqualsRange = Some (1,25--1,26) WithKeyword = None })], (1,0--1,36))], PreXmlDocEmpty, [], - None, (1,0--2,0), { LeadingKeyword = None })], (true, true), + None, (1,0--1,36), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Nullness/GenericTypeOtherConstraintAndThenNotNull.fs.bsl b/tests/service/data/SyntaxTree/Nullness/GenericTypeOtherConstraintAndThenNotNull.fs.bsl index 59b59562625..a6ba3707b3d 100644 --- a/tests/service/data/SyntaxTree/Nullness/GenericTypeOtherConstraintAndThenNotNull.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/GenericTypeOtherConstraintAndThenNotNull.fs.bsl @@ -25,7 +25,7 @@ ImplFile { LeadingKeyword = Type (1,0--1,4) EqualsRange = Some (1,45--1,46) WithKeyword = None })], (1,0--1,56))], PreXmlDocEmpty, [], - None, (1,0--2,0), { LeadingKeyword = None })], (true, true), + None, (1,0--1,56), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Nullness/IntListOrNull.fs.bsl b/tests/service/data/SyntaxTree/Nullness/IntListOrNull.fs.bsl index a7ad67de505..9347d0a0328 100644 --- a/tests/service/data/SyntaxTree/Nullness/IntListOrNull.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/IntListOrNull.fs.bsl @@ -34,7 +34,7 @@ ImplFile InlineKeyword = None EqualsRange = Some (1,24--1,25) })], (1,0--1,28), { InKeyword = None })], PreXmlDocEmpty, [], None, - (1,0--2,0), { LeadingKeyword = None })], (true, true), + (1,0--1,28), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Nullness/IntListOrNullOrNullOrNull.fs.bsl b/tests/service/data/SyntaxTree/Nullness/IntListOrNullOrNullOrNull.fs.bsl index 2ba92634916..6834bd9d4bb 100644 --- a/tests/service/data/SyntaxTree/Nullness/IntListOrNullOrNullOrNull.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/IntListOrNullOrNullOrNull.fs.bsl @@ -33,7 +33,7 @@ ImplFile Yes (1,0--1,23), { LeadingKeyword = Let (1,0--1,3) InlineKeyword = None EqualsRange = None })], (1,0--1,23), - { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--2,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--1,23), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Nullness/MatchWithTypeCast.fs.bsl b/tests/service/data/SyntaxTree/Nullness/MatchWithTypeCast.fs.bsl index 773ff445618..9a584a7c79d 100644 --- a/tests/service/data/SyntaxTree/Nullness/MatchWithTypeCast.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/MatchWithTypeCast.fs.bsl @@ -18,7 +18,7 @@ ImplFile BarRange = Some (2,0--2,1) })], (1,0--2,24), { MatchKeyword = (1,0--1,5) WithKeyword = (1,8--1,12) }), (1,0--2,24))], PreXmlDocEmpty, - [], None, (1,0--3,0), { LeadingKeyword = None })], (true, true), + [], None, (1,0--2,24), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Nullness/MatchWithTypeCastParens.fs.bsl b/tests/service/data/SyntaxTree/Nullness/MatchWithTypeCastParens.fs.bsl index 9576ea6b023..b8141c30794 100644 --- a/tests/service/data/SyntaxTree/Nullness/MatchWithTypeCastParens.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/MatchWithTypeCastParens.fs.bsl @@ -19,7 +19,7 @@ ImplFile BarRange = Some (2,0--2,1) })], (1,0--2,26), { MatchKeyword = (1,0--1,5) WithKeyword = (1,8--1,12) }), (1,0--2,26))], PreXmlDocEmpty, - [], None, (1,0--3,0), { LeadingKeyword = None })], (true, true), + [], None, (1,0--2,26), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Nullness/MatchWithTypeCastParensAndSeparateNullCase.fs.bsl b/tests/service/data/SyntaxTree/Nullness/MatchWithTypeCastParensAndSeparateNullCase.fs.bsl index 00f7882ac7f..95b27743722 100644 --- a/tests/service/data/SyntaxTree/Nullness/MatchWithTypeCastParensAndSeparateNullCase.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/MatchWithTypeCastParensAndSeparateNullCase.fs.bsl @@ -21,7 +21,7 @@ ImplFile BarRange = Some (2,0--2,1) })], (1,0--2,33), { MatchKeyword = (1,0--1,5) WithKeyword = (1,8--1,12) }), (1,0--2,33))], PreXmlDocEmpty, - [], None, (1,0--3,0), { LeadingKeyword = None })], (true, true), + [], None, (1,0--2,33), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Nullness/NullAnnotatedExpression.fs.bsl b/tests/service/data/SyntaxTree/Nullness/NullAnnotatedExpression.fs.bsl index 115fe6c5406..a1bc1dd9602 100644 --- a/tests/service/data/SyntaxTree/Nullness/NullAnnotatedExpression.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/NullAnnotatedExpression.fs.bsl @@ -68,7 +68,7 @@ ImplFile { LeadingKeyword = Let (1,0--1,3) InlineKeyword = None EqualsRange = Some (1,64--1,65) })], (1,0--1,70), - { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--2,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--1,70), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Nullness/RegressionChoiceType.fs.bsl b/tests/service/data/SyntaxTree/Nullness/RegressionChoiceType.fs.bsl index 79d2dfce12c..225321337f2 100644 --- a/tests/service/data/SyntaxTree/Nullness/RegressionChoiceType.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/RegressionChoiceType.fs.bsl @@ -50,7 +50,7 @@ ImplFile { LeadingKeyword = Type (1,0--1,4) EqualsRange = Some (1,23--1,24) WithKeyword = None })], (1,0--7,19))], PreXmlDocEmpty, [], - None, (1,0--8,0), { LeadingKeyword = None })], (true, true), + None, (1,0--7,19), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Nullness/RegressionOptionType.fs.bsl b/tests/service/data/SyntaxTree/Nullness/RegressionOptionType.fs.bsl index 502b1ba39e7..a8ab331fe5e 100644 --- a/tests/service/data/SyntaxTree/Nullness/RegressionOptionType.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/RegressionOptionType.fs.bsl @@ -56,7 +56,7 @@ ImplFile { LeadingKeyword = Type (1,0--1,4) EqualsRange = Some (1,16--1,17) WithKeyword = None })], (1,0--3,33))], PreXmlDocEmpty, [], - None, (1,0--3,34), { LeadingKeyword = None })], (true, true), + None, (1,0--3,33), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Nullness/SignatureInAbstractMember.fs.bsl b/tests/service/data/SyntaxTree/Nullness/SignatureInAbstractMember.fs.bsl index 317752b3425..690a3e7fd24 100644 --- a/tests/service/data/SyntaxTree/Nullness/SignatureInAbstractMember.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/SignatureInAbstractMember.fs.bsl @@ -55,7 +55,7 @@ ImplFile { LeadingKeyword = Type (1,0--1,4) EqualsRange = Some (1,20--1,21) WithKeyword = None })], (1,0--2,61))], PreXmlDocEmpty, [], - None, (1,0--3,0), { LeadingKeyword = None })], (true, true), + None, (1,0--2,61), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Nullness/StringOrNull.fs.bsl b/tests/service/data/SyntaxTree/Nullness/StringOrNull.fs.bsl index 7d205e16fef..748146c9dfd 100644 --- a/tests/service/data/SyntaxTree/Nullness/StringOrNull.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/StringOrNull.fs.bsl @@ -27,7 +27,7 @@ ImplFile { LeadingKeyword = Let (1,0--1,3) InlineKeyword = None EqualsRange = Some (1,22--1,23) })], (1,0--1,28), - { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--2,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--1,28), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Nullness/StringOrNullInFunctionArg.fs.bsl b/tests/service/data/SyntaxTree/Nullness/StringOrNullInFunctionArg.fs.bsl index 89a2cf25e55..05886606bdc 100644 --- a/tests/service/data/SyntaxTree/Nullness/StringOrNullInFunctionArg.fs.bsl +++ b/tests/service/data/SyntaxTree/Nullness/StringOrNullInFunctionArg.fs.bsl @@ -32,7 +32,7 @@ ImplFile { LeadingKeyword = Let (1,0--1,3) InlineKeyword = None EqualsRange = Some (1,32--1,33) })], (1,0--1,36), - { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--2,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--1,36), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/OperatorName/ActivePatternDefinition.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/ActivePatternDefinition.fs.bsl index 9e6d6ffa604..9873dfe7cc6 100644 --- a/tests/service/data/SyntaxTree/OperatorName/ActivePatternDefinition.fs.bsl +++ b/tests/service/data/SyntaxTree/OperatorName/ActivePatternDefinition.fs.bsl @@ -60,7 +60,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,26--2,27) })], (2,0--2,59), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,59), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/OperatorName/ActivePatternIdentifierInPrivateMember.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/ActivePatternIdentifierInPrivateMember.fs.bsl index faa01ee9c32..d85b688b2c5 100644 --- a/tests/service/data/SyntaxTree/OperatorName/ActivePatternIdentifierInPrivateMember.fs.bsl +++ b/tests/service/data/SyntaxTree/OperatorName/ActivePatternIdentifierInPrivateMember.fs.bsl @@ -57,7 +57,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--7,6))], PreXmlDocEmpty, [], - None, (2,0--8,0), { LeadingKeyword = None })], (true, true), + None, (2,0--7,6), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/CustomOperatorDefinition.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/CustomOperatorDefinition.fs.bsl index bfe1edd8570..b494fd7611e 100644 --- a/tests/service/data/SyntaxTree/OperatorName/CustomOperatorDefinition.fs.bsl +++ b/tests/service/data/SyntaxTree/OperatorName/CustomOperatorDefinition.fs.bsl @@ -38,7 +38,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,12--2,13) })], (2,0--2,19), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,19), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/OperatorName/ObjectModelWithTwoMembers.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/ObjectModelWithTwoMembers.fs.bsl index 6a073559389..e691253c66a 100644 --- a/tests/service/data/SyntaxTree/OperatorName/ObjectModelWithTwoMembers.fs.bsl +++ b/tests/service/data/SyntaxTree/OperatorName/ObjectModelWithTwoMembers.fs.bsl @@ -109,7 +109,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--4,79))], PreXmlDocEmpty, [], - None, (2,0--5,0), { LeadingKeyword = None })], (true, true), + None, (2,0--4,79), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/OperatorInMemberDefinition.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/OperatorInMemberDefinition.fs.bsl index 5137e642c9a..1fb231f1bf0 100644 --- a/tests/service/data/SyntaxTree/OperatorName/OperatorInMemberDefinition.fs.bsl +++ b/tests/service/data/SyntaxTree/OperatorName/OperatorInMemberDefinition.fs.bsl @@ -58,7 +58,7 @@ ImplFile None, (2,5--3,28), { LeadingKeyword = Type (2,0--2,4) EqualsRange = None WithKeyword = None })], (2,0--3,28))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,28), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinition.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinition.fs.bsl index eea2cad6200..75f40acccd7 100644 --- a/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinition.fs.bsl +++ b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinition.fs.bsl @@ -48,7 +48,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,35--2,36) })], (2,0--2,88), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,88), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs.bsl index 3253f26b962..f297f22b8ef 100644 --- a/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs.bsl +++ b/tests/service/data/SyntaxTree/OperatorName/PartialActivePatternDefinitionWithoutParameters.fs.bsl @@ -25,7 +25,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,18--2,19) })], (2,0--2,33), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,33), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/OperatorName/QualifiedOperatorExpression.fs.bsl b/tests/service/data/SyntaxTree/OperatorName/QualifiedOperatorExpression.fs.bsl index e6a9d22b312..568eab9ee5d 100644 --- a/tests/service/data/SyntaxTree/OperatorName/QualifiedOperatorExpression.fs.bsl +++ b/tests/service/data/SyntaxTree/OperatorName/QualifiedOperatorExpression.fs.bsl @@ -40,7 +40,7 @@ ImplFile NoneAtLet, { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,23--2,24) })], (2,0--2,40), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,40), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Pattern/InHeadPattern.fs.bsl b/tests/service/data/SyntaxTree/Pattern/InHeadPattern.fs.bsl index b051e774443..06390308b66 100644 --- a/tests/service/data/SyntaxTree/Pattern/InHeadPattern.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/InHeadPattern.fs.bsl @@ -27,7 +27,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,11--2,12) })], (2,0--2,24), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,24), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Pattern/OperatorInMatchPattern.fs.bsl b/tests/service/data/SyntaxTree/Pattern/OperatorInMatchPattern.fs.bsl index 53eba0b1b3a..85ac6e19fcb 100644 --- a/tests/service/data/SyntaxTree/Pattern/OperatorInMatchPattern.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/OperatorInMatchPattern.fs.bsl @@ -23,7 +23,7 @@ ImplFile BarRange = Some (3,0--3,1) })], (2,0--3,24), { MatchKeyword = (2,0--2,5) WithKeyword = (2,8--2,12) }), (2,0--3,24))], PreXmlDocEmpty, - [], None, (2,0--4,0), { LeadingKeyword = None })], (true, true), + [], None, (2,0--3,24), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Pattern/OperatorInSynPatLongIdent.fs.bsl b/tests/service/data/SyntaxTree/Pattern/OperatorInSynPatLongIdent.fs.bsl index ef6ff484d63..af10ffc38c7 100644 --- a/tests/service/data/SyntaxTree/Pattern/OperatorInSynPatLongIdent.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/OperatorInSynPatLongIdent.fs.bsl @@ -30,7 +30,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,17--2,18) })], (2,0--2,28), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,28), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs.bsl b/tests/service/data/SyntaxTree/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs.bsl index d8fea47cf6f..5d84ab6ba5d 100644 --- a/tests/service/data/SyntaxTree/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/ParenthesesOfSynArgPatsNamePatPairs.fs.bsl @@ -32,7 +32,7 @@ ImplFile BarRange = Some (6,0--6,1) })], (2,0--6,22), { MatchKeyword = (2,0--2,5) WithKeyword = (2,11--2,15) }), (2,0--6,22))], PreXmlDocEmpty, - [], None, (2,0--7,0), { LeadingKeyword = None })], (true, true), + [], None, (2,0--6,22), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [LineComment (3,15--3,21); BlockComment (5,2--5,11)] }, diff --git a/tests/service/data/SyntaxTree/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs.bsl b/tests/service/data/SyntaxTree/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs.bsl index b25fece4c04..e273e9d8d7b 100644 --- a/tests/service/data/SyntaxTree/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/SynArgPatsNamePatPairsContainsTheRangeOfTheEqualsSign.fs.bsl @@ -25,7 +25,7 @@ ImplFile BarRange = Some (3,0--3,1) })], (2,0--3,16), { MatchKeyword = (2,0--2,5) WithKeyword = (2,8--2,12) }), (2,0--3,16))], PreXmlDocEmpty, - [], None, (2,0--4,0), { LeadingKeyword = None })], (true, true), + [], None, (2,0--3,16), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Pattern/SynPatOrContainsTheRangeOfTheBar.fs.bsl b/tests/service/data/SyntaxTree/Pattern/SynPatOrContainsTheRangeOfTheBar.fs.bsl index 4f60ec0e26f..923ba4326f5 100644 --- a/tests/service/data/SyntaxTree/Pattern/SynPatOrContainsTheRangeOfTheBar.fs.bsl +++ b/tests/service/data/SyntaxTree/Pattern/SynPatOrContainsTheRangeOfTheBar.fs.bsl @@ -25,7 +25,7 @@ ImplFile BarRange = Some (5,0--5,1) })], (2,0--5,9), { MatchKeyword = (2,0--2,5) WithKeyword = (2,8--2,12) }), (2,0--5,9))], PreXmlDocEmpty, - [], None, (2,0--6,0), { LeadingKeyword = None })], (true, true), + [], None, (2,0--5,9), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SignatureType/LeadingKeywordInRecursiveTypes.fsi.bsl b/tests/service/data/SyntaxTree/SignatureType/LeadingKeywordInRecursiveTypes.fsi.bsl index 2a904b29554..bd9494be9bd 100644 --- a/tests/service/data/SyntaxTree/SignatureType/LeadingKeywordInRecursiveTypes.fsi.bsl +++ b/tests/service/data/SyntaxTree/SignatureType/LeadingKeywordInRecursiveTypes.fsi.bsl @@ -29,7 +29,7 @@ SigFile { LeadingKeyword = And (3,0--3,3) EqualsRange = Some (3,6--3,7) WithKeyword = None })], (2,0--3,11))], PreXmlDocEmpty, [], - None, (2,0--4,0), { LeadingKeyword = None })], + None, (2,0--3,11), { LeadingKeyword = None })], { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindRegular.fs.bsl b/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindRegular.fs.bsl index d75deb2559f..1d6e5166b4c 100644 --- a/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindRegular.fs.bsl +++ b/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindRegular.fs.bsl @@ -18,7 +18,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,10--2,11) })], (2,0--2,17), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,17), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindVerbatim.fs.bsl b/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindVerbatim.fs.bsl index 3558453d510..a20bd2188e9 100644 --- a/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindVerbatim.fs.bsl +++ b/tests/service/data/SyntaxTree/String/SynConstBytesWithSynByteStringKindVerbatim.fs.bsl @@ -18,7 +18,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,10--2,11) })], (2,0--2,18), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,18), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindRegular.fs.bsl b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindRegular.fs.bsl index d7e456fbf21..47384a6b664 100644 --- a/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindRegular.fs.bsl +++ b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindRegular.fs.bsl @@ -17,7 +17,7 @@ ImplFile InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--2,12), { InKeyword = None })], PreXmlDocEmpty, [], None, - (2,0--3,0), { LeadingKeyword = None })], (true, true), + (2,0--2,12), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindTripleQuote.fs.bsl b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindTripleQuote.fs.bsl index a6367f49c08..46e536c047d 100644 --- a/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindTripleQuote.fs.bsl +++ b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindTripleQuote.fs.bsl @@ -17,7 +17,7 @@ ImplFile InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--2,16), { InKeyword = None })], PreXmlDocEmpty, [], None, - (2,0--3,0), { LeadingKeyword = None })], (true, true), + (2,0--2,16), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindVerbatim.fs.bsl b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindVerbatim.fs.bsl index 3ac4b59d559..eb2e4bc4191 100644 --- a/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindVerbatim.fs.bsl +++ b/tests/service/data/SyntaxTree/String/SynConstStringWithSynStringKindVerbatim.fs.bsl @@ -17,7 +17,7 @@ ImplFile InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--2,13), { InKeyword = None })], PreXmlDocEmpty, [], None, - (2,0--3,0), { LeadingKeyword = None })], (true, true), + (2,0--2,13), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindRegular.fs.bsl b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindRegular.fs.bsl index 7026b9a1034..9fcb671cc39 100644 --- a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindRegular.fs.bsl +++ b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindRegular.fs.bsl @@ -20,7 +20,7 @@ ImplFile InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--2,18), { InKeyword = None })], PreXmlDocEmpty, [], None, - (2,0--3,0), { LeadingKeyword = None })], (true, true), + (2,0--2,18), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs.bsl b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs.bsl index 9e42b6455ce..02308212063 100644 --- a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs.bsl +++ b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindTripleQuote.fs.bsl @@ -23,7 +23,7 @@ ImplFile InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--2,22), { InKeyword = None })], PreXmlDocEmpty, [], None, - (2,0--3,0), { LeadingKeyword = None })], (true, true), + (2,0--2,22), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs.bsl b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs.bsl index 2fb03900ebf..b3817f4d54a 100644 --- a/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs.bsl +++ b/tests/service/data/SyntaxTree/String/SynExprInterpolatedStringWithSynStringKindVerbatim.fs.bsl @@ -23,7 +23,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,6--2,7) })], (2,0--2,70), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,70), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs.bsl b/tests/service/data/SyntaxTree/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs.bsl index 0519b1b2187..24558691a94 100644 --- a/tests/service/data/SyntaxTree/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/NestedSynTypeOrInsideSynExprTraitCall.fs.bsl @@ -100,7 +100,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = Some (2,4--2,10) EqualsRange = Some (2,34--2,35) })], (2,0--2,100), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,100), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/SynType/SingleSynTypeInsideSynExprTraitCall.fs.bsl b/tests/service/data/SyntaxTree/SynType/SingleSynTypeInsideSynExprTraitCall.fs.bsl index 1e3e4c88ac6..3ebeebbf172 100644 --- a/tests/service/data/SyntaxTree/SynType/SingleSynTypeInsideSynExprTraitCall.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/SingleSynTypeInsideSynExprTraitCall.fs.bsl @@ -189,7 +189,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--4,60))], PreXmlDocEmpty, [], - None, (2,0--5,0), { LeadingKeyword = None })], (true, true), + None, (2,0--4,60), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynExprTraitCall.fs.bsl b/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynExprTraitCall.fs.bsl index de6b23fb759..218867e359b 100644 --- a/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynExprTraitCall.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynExprTraitCall.fs.bsl @@ -77,7 +77,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = Some (2,4--2,10) EqualsRange = Some (2,29--2,30) })], (2,0--2,84), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,84), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs.bsl b/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs.bsl index fe5574fc5fc..e26095d1477 100644 --- a/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/SynTypeOrInsideSynTypeConstraintWhereTyparSupportsMember.fs.bsl @@ -84,7 +84,7 @@ ImplFile InlineKeyword = Some (2,4--2,10) EqualsRange = Some (2,106--2,107) })], (2,0--3,6), { InKeyword = None })], PreXmlDocEmpty, [], None, - (2,0--4,0), { LeadingKeyword = None })], (true, true), + (2,0--3,6), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs.bsl b/tests/service/data/SyntaxTree/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs.bsl index 5e112be7de8..f9937481154 100644 --- a/tests/service/data/SyntaxTree/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs.bsl +++ b/tests/service/data/SyntaxTree/SynType/SynTypeOrWithAppTypeOnTheRightHandSide.fs.bsl @@ -58,7 +58,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = Some (2,4--2,10) EqualsRange = Some (2,21--2,22) })], (2,0--2,64), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,64), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi.bsl b/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi.bsl index c65846b5121..170c53a324d 100644 --- a/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi.bsl +++ b/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterAttributes.fsi.bsl @@ -89,7 +89,7 @@ SigFile (2,5--3,63), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,63))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,63), { LeadingKeyword = None })], { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi.bsl b/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi.bsl index 6519bc1260e..578a1c99fd1 100644 --- a/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi.bsl +++ b/tests/service/data/SyntaxTree/SynType/SynTypeTupleDoesIncludeLeadingParameterName.fsi.bsl @@ -53,7 +53,7 @@ SigFile (2,5--3,34), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,34))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,34), { LeadingKeyword = None })], { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/AttributesInOptionalNamedMemberParameter.fs.bsl b/tests/service/data/SyntaxTree/Type/AttributesInOptionalNamedMemberParameter.fs.bsl index 478489a67f7..10fc6588f58 100644 --- a/tests/service/data/SyntaxTree/Type/AttributesInOptionalNamedMemberParameter.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/AttributesInOptionalNamedMemberParameter.fs.bsl @@ -70,7 +70,7 @@ ImplFile (2,5--3,46), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,46))], - PreXmlDocEmpty, [], None, (2,0--4,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--3,46), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs.bsl b/tests/service/data/SyntaxTree/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs.bsl index 26f912fd463..7e8441649ca 100644 --- a/tests/service/data/SyntaxTree/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/MultipleSynEnumCaseContainsRangeOfConstant.fs.bsl @@ -28,7 +28,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--4,13))], PreXmlDocEmpty, [], - None, (2,0--5,0), { LeadingKeyword = None })], (true, true), + None, (2,0--4,13), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/NamedParametersInDelegateType.fs.bsl b/tests/service/data/SyntaxTree/Type/NamedParametersInDelegateType.fs.bsl index cd9f16db52b..45199687092 100644 --- a/tests/service/data/SyntaxTree/Type/NamedParametersInDelegateType.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/NamedParametersInDelegateType.fs.bsl @@ -85,7 +85,7 @@ ImplFile (2,5--2,46), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--2,46))], - PreXmlDocEmpty, [], None, (2,0--3,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--2,46), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs.bsl b/tests/service/data/SyntaxTree/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs.bsl index 79bbd17b1a6..8d6e6bdf2a0 100644 --- a/tests/service/data/SyntaxTree/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/RangeOfAttributeShouldBeIncludedInSynTypeDefn.fs.bsl @@ -20,7 +20,7 @@ ImplFile { LeadingKeyword = Type (3,0--3,4) EqualsRange = Some (3,9--3,10) WithKeyword = None })], (2,0--5,7))], PreXmlDocEmpty, [], - None, (2,0--6,0), { LeadingKeyword = None })], (true, true), + None, (2,0--5,7), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs.bsl b/tests/service/data/SyntaxTree/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs.bsl index ad592dd5cbb..0681885c74a 100644 --- a/tests/service/data/SyntaxTree/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/RangeOfAttributesShouldBeIncludedInRecursiveTypes.fs.bsl @@ -109,7 +109,7 @@ ImplFile { LeadingKeyword = And (6,0--6,3) EqualsRange = Some (6,56--6,57) WithKeyword = None })], (2,0--10,5))], PreXmlDocEmpty, [], - None, (2,0--11,0), { LeadingKeyword = None })], (true, true), + None, (2,0--10,5), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SingleSynEnumCaseContainsRangeOfConstant.fs.bsl b/tests/service/data/SyntaxTree/Type/SingleSynEnumCaseContainsRangeOfConstant.fs.bsl index eebe5e89043..79b8b0689ab 100644 --- a/tests/service/data/SyntaxTree/Type/SingleSynEnumCaseContainsRangeOfConstant.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/SingleSynEnumCaseContainsRangeOfConstant.fs.bsl @@ -22,7 +22,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--2,27))], PreXmlDocEmpty, [], - None, (2,0--3,0), { LeadingKeyword = None })], (true, true), + None, (2,0--2,27), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs.bsl index 4a03a8854ac..1212bc3c07a 100644 --- a/tests/service/data/SyntaxTree/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/SynMemberDefnInterfaceContainsTheRangeOfTheWithKeyword.fs.bsl @@ -63,7 +63,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,11--2,12) WithKeyword = None })], (2,0--5,19))], PreXmlDocEmpty, [], - None, (2,0--6,0), { LeadingKeyword = None })], (true, true), + None, (2,0--5,19), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs.bsl index bdf9ec74f42..e7ba5e8f867 100644 --- a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAttributeContainsTheRangeOfTheTypeKeyword.fs.bsl @@ -26,7 +26,7 @@ ImplFile { LeadingKeyword = Type (4,0--4,4) EqualsRange = Some (4,7--4,8) WithKeyword = None })], (2,0--4,10))], PreXmlDocEmpty, [], - None, (2,0--5,0), { LeadingKeyword = None })], (true, true), + None, (2,0--4,10), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [LineComment (3,0--3,8)] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs.bsl index 200a42bb6be..e4ae1c86ead 100644 --- a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithAugmentationContainsTheRangeOfTheWithKeyword.fs.bsl @@ -40,7 +40,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = None WithKeyword = None })], (2,0--3,21))], PreXmlDocEmpty, [], - None, (2,0--4,0), { LeadingKeyword = None })], (true, true), + None, (2,0--3,21), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs.bsl index 4ebef606401..53278778d7b 100644 --- a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithEnumContainsTheRangeOfTheEqualsSign.fs.bsl @@ -29,7 +29,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,10--2,11) WithKeyword = None })], (2,0--4,19))], PreXmlDocEmpty, [], - None, (2,0--5,0), { LeadingKeyword = None })], (true, true), + None, (2,0--4,19), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs.bsl index ac4171bbf00..ed03f3c265d 100644 --- a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithObjectModelDelegateContainsTheRangeOfTheEqualsSign.fs.bsl @@ -48,7 +48,7 @@ ImplFile (2,5--2,37), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--2,37))], - PreXmlDocEmpty, [], None, (2,0--3,0), { LeadingKeyword = None })], + PreXmlDocEmpty, [], None, (2,0--2,37), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs.bsl index 7cb9f5a2af5..11685c658c1 100644 --- a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithRecordContainsTheRangeOfTheWithKeyword.fs.bsl @@ -74,7 +74,7 @@ ImplFile None, (2,5--5,46), { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = Some (4,4--4,8) })], - (2,0--5,46))], PreXmlDocEmpty, [], None, (2,0--6,0), + (2,0--5,46))], PreXmlDocEmpty, [], None, (2,0--5,46), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs.bsl index 561ab54725d..d4dd58ca8a4 100644 --- a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithUnionContainsTheRangeOfTheEqualsSign.fs.bsl @@ -50,7 +50,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,11--2,12) WithKeyword = None })], (2,0--4,28))], PreXmlDocEmpty, [], - None, (2,0--5,0), { LeadingKeyword = None })], (true, true), + None, (2,0--4,28), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs.bsl index 98690850046..6a3a72ce342 100644 --- a/tests/service/data/SyntaxTree/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/SynTypeDefnWithXmlDocContainsTheRangeOfTheTypeKeyword.fs.bsl @@ -32,7 +32,7 @@ ImplFile { LeadingKeyword = And (5,0--5,3) EqualsRange = Some (5,6--5,7) WithKeyword = None })], (2,0--5,9))], PreXmlDocEmpty, [], - None, (4,0--6,0), { LeadingKeyword = None })], (true, true), + None, (4,0--5,9), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [LineComment (3,0--3,8)] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeFunHasRangeOfArrow.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeFunHasRangeOfArrow.fs.bsl index 18cf4ffe778..83d242d62c7 100644 --- a/tests/service/data/SyntaxTree/Type/SynTypeFunHasRangeOfArrow.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/SynTypeFunHasRangeOfArrow.fs.bsl @@ -21,7 +21,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,20))], PreXmlDocEmpty, [], - None, (2,0--4,0), { LeadingKeyword = None })], (true, true), + None, (2,0--3,20), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [LineComment (2,19--2,59)] }, set [])) diff --git a/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStruct.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStruct.fs.bsl index a1c7db8a6dc..56d5e500cc9 100644 --- a/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStruct.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStruct.fs.bsl @@ -32,7 +32,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,26--2,27) })], (2,0--2,30), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,30), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStructRecovery.fs.bsl b/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStructRecovery.fs.bsl index a2e63034dd5..636eb8932da 100644 --- a/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStructRecovery.fs.bsl +++ b/tests/service/data/SyntaxTree/Type/SynTypeTupleWithStructRecovery.fs.bsl @@ -32,7 +32,7 @@ ImplFile { LeadingKeyword = Let (2,0--2,3) InlineKeyword = None EqualsRange = Some (2,25--2,26) })], (2,0--2,29), - { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--2,29), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/UnionCase/MultipleSynUnionCasesHaveBarRange.fs.bsl b/tests/service/data/SyntaxTree/UnionCase/MultipleSynUnionCasesHaveBarRange.fs.bsl index 7b2aafa30de..c59f6bf8077 100644 --- a/tests/service/data/SyntaxTree/UnionCase/MultipleSynUnionCasesHaveBarRange.fs.bsl +++ b/tests/service/data/SyntaxTree/UnionCase/MultipleSynUnionCasesHaveBarRange.fs.bsl @@ -41,7 +41,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--4,17))], PreXmlDocEmpty, [], - None, (2,0--5,0), { LeadingKeyword = None })], (true, true), + None, (2,0--4,17), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/UnionCase/PrivateKeywordHasRange.fs.bsl b/tests/service/data/SyntaxTree/UnionCase/PrivateKeywordHasRange.fs.bsl index 732c0e0b8bf..dc3988cd8f6 100644 --- a/tests/service/data/SyntaxTree/UnionCase/PrivateKeywordHasRange.fs.bsl +++ b/tests/service/data/SyntaxTree/UnionCase/PrivateKeywordHasRange.fs.bsl @@ -29,7 +29,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,14--2,15) WithKeyword = None })], (2,0--9,20))], PreXmlDocEmpty, [], - None, (2,0--10,0), { LeadingKeyword = None })], (true, true), + None, (2,0--9,20), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [If (Not (Ident "FABLE_COMPILER"), (6,0--6,19)); EndIf (8,0--8,6)] WarnDirectives = [] diff --git a/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseHasBarRange.fs.bsl b/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseHasBarRange.fs.bsl index 7ed7778c9c9..4537fcf9e84 100644 --- a/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseHasBarRange.fs.bsl +++ b/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseHasBarRange.fs.bsl @@ -29,7 +29,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--2,26))], PreXmlDocEmpty, [], - None, (2,0--3,0), { LeadingKeyword = None })], (true, true), + None, (2,0--2,26), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseWithoutBar.fs.bsl b/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseWithoutBar.fs.bsl index a2888b02b10..a6533c726ef 100644 --- a/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseWithoutBar.fs.bsl +++ b/tests/service/data/SyntaxTree/UnionCase/SingleSynUnionCaseWithoutBar.fs.bsl @@ -29,7 +29,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--2,24))], PreXmlDocEmpty, [], - None, (2,0--3,0), { LeadingKeyword = None })], (true, true), + None, (2,0--2,24), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/UnionCase/SynUnionCaseKindFullType.fs.bsl b/tests/service/data/SyntaxTree/UnionCase/SynUnionCaseKindFullType.fs.bsl index cd3e454e196..be3c2b4cd64 100644 --- a/tests/service/data/SyntaxTree/UnionCase/SynUnionCaseKindFullType.fs.bsl +++ b/tests/service/data/SyntaxTree/UnionCase/SynUnionCaseKindFullType.fs.bsl @@ -35,7 +35,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,7--2,8) WithKeyword = None })], (2,0--3,20))], PreXmlDocEmpty, [], - None, (2,0--4,0), { LeadingKeyword = None })], (true, true), + None, (2,0--3,20), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/UnionCase/UnionCaseFieldsCanHaveComments.fs.bsl b/tests/service/data/SyntaxTree/UnionCase/UnionCaseFieldsCanHaveComments.fs.bsl index 57c3921ba18..dd9c1c6b12e 100644 --- a/tests/service/data/SyntaxTree/UnionCase/UnionCaseFieldsCanHaveComments.fs.bsl +++ b/tests/service/data/SyntaxTree/UnionCase/UnionCaseFieldsCanHaveComments.fs.bsl @@ -36,7 +36,7 @@ ImplFile { LeadingKeyword = Type (2,0--2,4) EqualsRange = Some (2,9--2,10) WithKeyword = None })], (2,0--8,6))], PreXmlDocEmpty, [], - None, (2,0--9,0), { LeadingKeyword = None })], (true, true), + None, (2,0--8,6), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [] CodeComments = [] }, set [])) diff --git a/tests/service/data/SyntaxTree/WarnScope/IndentedWarnDirective.fs.bsl b/tests/service/data/SyntaxTree/WarnScope/IndentedWarnDirective.fs.bsl index 1acf18f6d2b..5342cff2268 100644 --- a/tests/service/data/SyntaxTree/WarnScope/IndentedWarnDirective.fs.bsl +++ b/tests/service/data/SyntaxTree/WarnScope/IndentedWarnDirective.fs.bsl @@ -16,7 +16,7 @@ ImplFile { LeadingKeyword = Let (1,0--1,3) InlineKeyword = None EqualsRange = Some (1,6--1,7) })], (1,0--3,6), - { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--4,0), + { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--3,6), { LeadingKeyword = None })], (true, true), { ConditionalDirectives = [] WarnDirectives = [Nowarn (2,4--2,14)]