From bd8cb4c910f199ba02f19566e2c701f3e64de325 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/15] Initial plan


From 8f0e2fcbc7451f43427d637cb2e6be963e17c699 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/15] 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 6cc50c2822e..4f5989f292a 100644
--- a/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md
+++ b/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md
@@ -45,3 +45,4 @@
 * Improvements in error and warning messages: new error FS3885 when `let!`/`use!` is the final expression in a computation expression; new warning FS3886 when a list literal contains a single tuple element (likely missing `;` separator); improved wording for FS0003, FS0025, FS0039, FS0072, FS0247, FS0597, FS0670, FS3082, and SRTP operator-not-in-scope hints. ([PR #19398](https://github.com/dotnet/fsharp/pull/19398))
 
 ### Breaking Changes
+* 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 f98bc32259f..3da2bbaffe5 100644
--- a/src/Compiler/Checking/Expressions/CheckExpressions.fs
+++ b/src/Compiler/Checking/Expressions/CheckExpressions.fs
@@ -6066,6 +6066,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 a42dee0d4e4..1d278feaf6f 100644
--- a/src/Compiler/FSComp.txt
+++ b/src/Compiler/FSComp.txt
@@ -1810,6 +1810,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,"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"
@@ -1817,3 +1818,4 @@ featurePreprocessorElif,"#elif preprocessor directive"
 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,parsLetBangCannotBeLastInCE,"'%s' cannot be the final expression in a computation expression. Finish with 'return', 'return!', or a simple expression."
 3886,tcListLiteralWithSingleTupleElement,"This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?"
+3887,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 bc68eb4d7d9..973d62fdbfe 100644
--- a/tests/FSharp.Compiler.ComponentTests/ErrorMessages/WarnExpressionTests.fs
+++ b/tests/FSharp.Compiler.ComponentTests/ErrorMessages/WarnExpressionTests.fs
@@ -293,3 +293,89 @@ extern bool Beep(int frequency, int duration)
         |> asLibrary
         |> typecheck
         |> shouldSucceed
+
+    // https://github.com/dotnet/fsharp/issues/7091
+    [<Fact>]
+    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
+    [<Fact>]
+    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
+    [<Fact>]
+    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
+    [<Fact>]
+    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
+    [<Fact>]
+    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 0f8c53acfbf929bd61a89cc6c9ccaf279a2979d0 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/15] 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 | 1 +
 1 file changed, 1 insertion(+)

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 4f5989f292a..4aa9d536ab7 100644
--- a/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md
+++ b/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md
@@ -46,3 +46,4 @@
 
 ### Breaking Changes
 * 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 3994a2fb0556aab1888f00c38deb760245abcfdb Mon Sep 17 00:00:00 2001
From: Tomas Grosup <tomasgrosup@microsoft.com>
Date: Thu, 9 Apr 2026 13:33:52 +0200
Subject: [PATCH 04/15] 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, 119 insertions(+), 15 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 3db81910019..46f2ac75a15 100644
--- a/src/Compiler/xlf/FSComp.txt.cs.xlf
+++ b/src/Compiler/xlf/FSComp.txt.cs.xlf
@@ -1,4 +1,4 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
   <file datatype="xml" source-language="en" target-language="cs" original="../FSComp.resx">
     <body>
@@ -8975,6 +8975,14 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
+        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
+          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
+          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
+          <note />
+        </trans-unit>
+        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
+          <source>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.</source>
+          <target state="new">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.</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf
index ea40290bdab..8ffd843f2dd 100644
--- a/src/Compiler/xlf/FSComp.txt.de.xlf
+++ b/src/Compiler/xlf/FSComp.txt.de.xlf
@@ -1,4 +1,4 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
   <file datatype="xml" source-language="en" target-language="de" original="../FSComp.resx">
     <body>
@@ -8975,6 +8975,14 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
+        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
+          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
+          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
+          <note />
+        </trans-unit>
+        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
+          <source>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.</source>
+          <target state="new">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.</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf
index 4ee65c31f10..c171342e1ac 100644
--- a/src/Compiler/xlf/FSComp.txt.es.xlf
+++ b/src/Compiler/xlf/FSComp.txt.es.xlf
@@ -1,4 +1,4 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
   <file datatype="xml" source-language="en" target-language="es" original="../FSComp.resx">
     <body>
@@ -8975,6 +8975,14 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
+        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
+          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
+          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
+          <note />
+        </trans-unit>
+        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
+          <source>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.</source>
+          <target state="new">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.</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf
index e32025d28c6..b1bae557e25 100644
--- a/src/Compiler/xlf/FSComp.txt.fr.xlf
+++ b/src/Compiler/xlf/FSComp.txt.fr.xlf
@@ -1,4 +1,4 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
   <file datatype="xml" source-language="en" target-language="fr" original="../FSComp.resx">
     <body>
@@ -8975,6 +8975,14 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
+        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
+          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
+          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
+          <note />
+        </trans-unit>
+        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
+          <source>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.</source>
+          <target state="new">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.</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf
index 6191c2ecd1a..dc0a5be13d6 100644
--- a/src/Compiler/xlf/FSComp.txt.it.xlf
+++ b/src/Compiler/xlf/FSComp.txt.it.xlf
@@ -1,4 +1,4 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
   <file datatype="xml" source-language="en" target-language="it" original="../FSComp.resx">
     <body>
@@ -8975,6 +8975,14 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
+        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
+          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
+          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
+          <note />
+        </trans-unit>
+        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
+          <source>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.</source>
+          <target state="new">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.</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf
index f388600a196..3b8469d7539 100644
--- a/src/Compiler/xlf/FSComp.txt.ja.xlf
+++ b/src/Compiler/xlf/FSComp.txt.ja.xlf
@@ -1,4 +1,4 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
   <file datatype="xml" source-language="en" target-language="ja" original="../FSComp.resx">
     <body>
@@ -8975,6 +8975,14 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
+        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
+          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
+          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
+          <note />
+        </trans-unit>
+        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
+          <source>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.</source>
+          <target state="new">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.</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf
index 399d17705f2..ec7e0b44964 100644
--- a/src/Compiler/xlf/FSComp.txt.ko.xlf
+++ b/src/Compiler/xlf/FSComp.txt.ko.xlf
@@ -1,4 +1,4 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
   <file datatype="xml" source-language="en" target-language="ko" original="../FSComp.resx">
     <body>
@@ -8975,6 +8975,14 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
+        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
+          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
+          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
+          <note />
+        </trans-unit>
+        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
+          <source>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.</source>
+          <target state="new">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.</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf
index 6a18542ccb3..cc1b620a012 100644
--- a/src/Compiler/xlf/FSComp.txt.pl.xlf
+++ b/src/Compiler/xlf/FSComp.txt.pl.xlf
@@ -1,4 +1,4 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
   <file datatype="xml" source-language="en" target-language="pl" original="../FSComp.resx">
     <body>
@@ -8975,6 +8975,14 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
+        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
+          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
+          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
+          <note />
+        </trans-unit>
+        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
+          <source>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.</source>
+          <target state="new">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.</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf
index 7d4db3566e5..d22d870d575 100644
--- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf
+++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf
@@ -1,4 +1,4 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
   <file datatype="xml" source-language="en" target-language="pt-BR" original="../FSComp.resx">
     <body>
@@ -8975,6 +8975,14 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
+        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
+          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
+          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
+          <note />
+        </trans-unit>
+        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
+          <source>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.</source>
+          <target state="new">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.</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf
index 9739a35bb1c..3c9f52c5aaa 100644
--- a/src/Compiler/xlf/FSComp.txt.ru.xlf
+++ b/src/Compiler/xlf/FSComp.txt.ru.xlf
@@ -1,4 +1,4 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
   <file datatype="xml" source-language="en" target-language="ru" original="../FSComp.resx">
     <body>
@@ -8975,6 +8975,14 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
+        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
+          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
+          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
+          <note />
+        </trans-unit>
+        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
+          <source>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.</source>
+          <target state="new">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.</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf
index 911944a991d..c0d416b4011 100644
--- a/src/Compiler/xlf/FSComp.txt.tr.xlf
+++ b/src/Compiler/xlf/FSComp.txt.tr.xlf
@@ -1,4 +1,4 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
   <file datatype="xml" source-language="en" target-language="tr" original="../FSComp.resx">
     <body>
@@ -8975,6 +8975,14 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
+        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
+          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
+          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
+          <note />
+        </trans-unit>
+        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
+          <source>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.</source>
+          <target state="new">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.</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf
index b745cb2aaef..93f9f46611b 100644
--- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf
+++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf
@@ -1,4 +1,4 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
   <file datatype="xml" source-language="en" target-language="zh-Hans" original="../FSComp.resx">
     <body>
@@ -8975,6 +8975,14 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
+        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
+          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
+          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
+          <note />
+        </trans-unit>
+        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
+          <source>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.</source>
+          <target state="new">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.</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf
index 69e43194e81..aedb62d3014 100644
--- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf
+++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf
@@ -1,4 +1,4 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
 <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
   <file datatype="xml" source-language="en" target-language="zh-Hant" original="../FSComp.resx">
     <body>
@@ -8975,6 +8975,14 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
+        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
+          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
+          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
+          <note />
+        </trans-unit>
+        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
+          <source>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.</source>
+          <target state="new">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.</target>
           <note />
         </trans-unit>
     </body>

From 27abd40a0a8b715ae5ef13b401c4e15ae75f427a Mon Sep 17 00:00:00 2001
From: Tomas Grosup <tomasgrosup@microsoft.com>
Date: Thu, 9 Apr 2026 14:59:43 +0200
Subject: [PATCH 05/15] 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       | 1 +
 docs/release-notes/.Language/preview.md                       | 1 +
 .../CodeFixes/RemoveUnnecessaryParenthesesTests.fs            | 4 ++--
 3 files changed, 4 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 4aa9d536ab7..d3cf10cb61e 100644
--- a/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md
+++ b/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md
@@ -47,3 +47,4 @@
 ### Breaking Changes
 * 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))
+* 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 c9eaca97e4e0a7ff210d31e24edc6cb686a9eefd Mon Sep 17 00:00:00 2001
From: Tomas Grosup <tomasgrosup@microsoft.com>
Date: Thu, 9 Apr 2026 16:31:52 +0200
Subject: [PATCH 06/15] 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 | 1 +
 docs/release-notes/.Language/preview.md                 | 2 +-
 2 files changed, 2 insertions(+), 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 d3cf10cb61e..435f030402b 100644
--- a/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md
+++ b/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md
@@ -48,3 +48,4 @@
 * 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))
 * 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 81d334f73f7660af30d6112dfaa9e74effe40b5f Mon Sep 17 00:00:00 2001
From: Tomas Grosup <tomasgrosup@microsoft.com>
Date: Thu, 9 Apr 2026 18:17:34 +0200
Subject: [PATCH 07/15] Retrigger CI: FindReferences flaky test failure
 unrelated to PR changes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

From b0501b0fcc0b151e381e51f2a64e19be6f4122e5 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/15] 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 3da2bbaffe5..f98bc32259f 100644
--- a/src/Compiler/Checking/Expressions/CheckExpressions.fs
+++ b/src/Compiler/Checking/Expressions/CheckExpressions.fs
@@ -6066,16 +6066,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 973d62fdbfe..542b2721734 100644
--- a/tests/FSharp.Compiler.ComponentTests/ErrorMessages/WarnExpressionTests.fs
+++ b/tests/FSharp.Compiler.ComponentTests/ErrorMessages/WarnExpressionTests.fs
@@ -308,9 +308,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'.")
@@ -374,8 +372,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 5ee2d0027055a91895fda0b4777160ed0ba44a9b Mon Sep 17 00:00:00 2001
From: Tomas Grosup <Tomas.Grosup@gmail.com>
Date: Wed, 15 Apr 2026 10:06:02 +0200
Subject: [PATCH 09/15] 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 1d278feaf6f..96d82304a17 100644
--- a/src/Compiler/FSComp.txt
+++ b/src/Compiler/FSComp.txt
@@ -1810,7 +1810,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,"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"
@@ -1818,4 +1818,3 @@ featureWarnOnLetInSequenceExpression,"Warn when 'let ... in' is used in a sequen
 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,parsLetBangCannotBeLastInCE,"'%s' cannot be the final expression in a computation expression. Finish with 'return', 'return!', or a simple expression."
 3886,tcListLiteralWithSingleTupleElement,"This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?"
-3887,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 46f2ac75a15..8aaac44b530 100644
--- a/src/Compiler/xlf/FSComp.txt.cs.xlf
+++ b/src/Compiler/xlf/FSComp.txt.cs.xlf
@@ -8976,13 +8976,8 @@
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
         <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
-          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
-          <note />
-        </trans-unit>
-        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
-          <source>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.</source>
-          <target state="new">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.</target>
+          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf
index 8ffd843f2dd..9c6976b2b8c 100644
--- a/src/Compiler/xlf/FSComp.txt.de.xlf
+++ b/src/Compiler/xlf/FSComp.txt.de.xlf
@@ -8976,13 +8976,8 @@
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
         <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
-          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
-          <note />
-        </trans-unit>
-        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
-          <source>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.</source>
-          <target state="new">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.</target>
+          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf
index c171342e1ac..f087148a9a1 100644
--- a/src/Compiler/xlf/FSComp.txt.es.xlf
+++ b/src/Compiler/xlf/FSComp.txt.es.xlf
@@ -8976,13 +8976,8 @@
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
         <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
-          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
-          <note />
-        </trans-unit>
-        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
-          <source>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.</source>
-          <target state="new">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.</target>
+          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf
index b1bae557e25..ffcca354250 100644
--- a/src/Compiler/xlf/FSComp.txt.fr.xlf
+++ b/src/Compiler/xlf/FSComp.txt.fr.xlf
@@ -8976,13 +8976,8 @@
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
         <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
-          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
-          <note />
-        </trans-unit>
-        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
-          <source>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.</source>
-          <target state="new">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.</target>
+          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf
index dc0a5be13d6..4e6eb731adb 100644
--- a/src/Compiler/xlf/FSComp.txt.it.xlf
+++ b/src/Compiler/xlf/FSComp.txt.it.xlf
@@ -8976,13 +8976,8 @@
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
         <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
-          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
-          <note />
-        </trans-unit>
-        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
-          <source>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.</source>
-          <target state="new">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.</target>
+          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf
index 3b8469d7539..a7b1717794e 100644
--- a/src/Compiler/xlf/FSComp.txt.ja.xlf
+++ b/src/Compiler/xlf/FSComp.txt.ja.xlf
@@ -8976,13 +8976,8 @@
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
         <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
-          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
-          <note />
-        </trans-unit>
-        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
-          <source>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.</source>
-          <target state="new">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.</target>
+          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf
index ec7e0b44964..543d60de0a7 100644
--- a/src/Compiler/xlf/FSComp.txt.ko.xlf
+++ b/src/Compiler/xlf/FSComp.txt.ko.xlf
@@ -8976,13 +8976,8 @@
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
         <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
-          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
-          <note />
-        </trans-unit>
-        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
-          <source>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.</source>
-          <target state="new">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.</target>
+          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf
index cc1b620a012..055e3eff70e 100644
--- a/src/Compiler/xlf/FSComp.txt.pl.xlf
+++ b/src/Compiler/xlf/FSComp.txt.pl.xlf
@@ -8976,13 +8976,8 @@
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
         <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
-          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
-          <note />
-        </trans-unit>
-        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
-          <source>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.</source>
-          <target state="new">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.</target>
+          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf
index d22d870d575..dbaeca0500b 100644
--- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf
+++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf
@@ -8976,13 +8976,8 @@
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
         <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
-          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
-          <note />
-        </trans-unit>
-        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
-          <source>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.</source>
-          <target state="new">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.</target>
+          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf
index 3c9f52c5aaa..1ee944f79d4 100644
--- a/src/Compiler/xlf/FSComp.txt.ru.xlf
+++ b/src/Compiler/xlf/FSComp.txt.ru.xlf
@@ -8976,13 +8976,8 @@
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
         <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
-          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
-          <note />
-        </trans-unit>
-        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
-          <source>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.</source>
-          <target state="new">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.</target>
+          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf
index c0d416b4011..9d3feecb5fe 100644
--- a/src/Compiler/xlf/FSComp.txt.tr.xlf
+++ b/src/Compiler/xlf/FSComp.txt.tr.xlf
@@ -8976,13 +8976,8 @@
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
         <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
-          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
-          <note />
-        </trans-unit>
-        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
-          <source>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.</source>
-          <target state="new">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.</target>
+          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf
index 93f9f46611b..e0a8a272ed6 100644
--- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf
+++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf
@@ -8976,13 +8976,8 @@
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
         <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
-          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
-          <note />
-        </trans-unit>
-        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
-          <source>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.</source>
-          <target state="new">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.</target>
+          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
     </body>
diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf
index aedb62d3014..3569b7eb169 100644
--- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf
+++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf
@@ -8976,13 +8976,8 @@
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
         <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</source>
-          <target state="new">Warn when 'let ... in' is used in a sequence expression and the body extends to subsequent lines</target>
-          <note />
-        </trans-unit>
-        <trans-unit id="tcLetExpressionWithInHasMultiLineBody" translate="yes" xml:space="preserve">
-          <source>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.</source>
-          <target state="new">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.</target>
+          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
     </body>
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 eca94fbb30b24d566de172abcb9a8c7928bc7873 Mon Sep 17 00:00:00 2001
From: Tomas Grosup <Tomas.Grosup@gmail.com>
Date: Wed, 15 Apr 2026 21:41:45 +0200
Subject: [PATCH 10/15] 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      |  1 +
 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            |  5 +-
 src/Compiler/xlf/FSComp.txt.de.xlf            |  5 +-
 src/Compiler/xlf/FSComp.txt.es.xlf            |  5 +-
 src/Compiler/xlf/FSComp.txt.fr.xlf            |  5 +-
 src/Compiler/xlf/FSComp.txt.it.xlf            |  5 +-
 src/Compiler/xlf/FSComp.txt.ja.xlf            |  5 +-
 src/Compiler/xlf/FSComp.txt.ko.xlf            |  5 +-
 src/Compiler/xlf/FSComp.txt.pl.xlf            |  5 +-
 src/Compiler/xlf/FSComp.txt.pt-BR.xlf         |  5 +-
 src/Compiler/xlf/FSComp.txt.ru.xlf            |  5 +-
 src/Compiler/xlf/FSComp.txt.tr.xlf            |  5 +-
 src/Compiler/xlf/FSComp.txt.zh-Hans.xlf       |  5 +-
 src/Compiler/xlf/FSComp.txt.zh-Hant.xlf       |  5 +-
 .../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, 444 insertions(+), 246 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 435f030402b..49a52d24763 100644
--- a/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md
+++ b/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md
@@ -34,6 +34,7 @@
 * Fix signature generation: backtick escaping for identifiers containing backticks. ([Issue #15389](https://github.com/dotnet/fsharp/issues/15389), [PR #19586](https://github.com/dotnet/fsharp/pull/19586))
 * Fix signature generation: `private` keyword placement for prefix-style type abbreviations. ([Issue #15560](https://github.com/dotnet/fsharp/issues/15560), [PR #19586](https://github.com/dotnet/fsharp/pull/19586))
 * Fix signature generation: missing `[<Class>]` attribute for types without visible constructors. ([Issue #16531](https://github.com/dotnet/fsharp/issues/16531), [PR #19586](https://github.com/dotnet/fsharp/pull/19586))
+* 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
 
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 96d82304a17..0d2742ae0b0 100644
--- a/src/Compiler/FSComp.txt
+++ b/src/Compiler/FSComp.txt
@@ -1810,7 +1810,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 3d9967a5724..4162c17a5d8 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 8aaac44b530..b6c2cffa0d7 100644
--- a/src/Compiler/xlf/FSComp.txt.cs.xlf
+++ b/src/Compiler/xlf/FSComp.txt.cs.xlf
@@ -8975,8 +8975,9 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
-        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <note />
+        </trans-unit>
+        <trans-unit id="featureLetInBodyScoping" translate="yes" xml:space="preserve">          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
           <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf
index 9c6976b2b8c..aabe855452d 100644
--- a/src/Compiler/xlf/FSComp.txt.de.xlf
+++ b/src/Compiler/xlf/FSComp.txt.de.xlf
@@ -8975,8 +8975,9 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
-        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <note />
+        </trans-unit>
+        <trans-unit id="featureLetInBodyScoping" translate="yes" xml:space="preserve">          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
           <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf
index f087148a9a1..986eb83a5a6 100644
--- a/src/Compiler/xlf/FSComp.txt.es.xlf
+++ b/src/Compiler/xlf/FSComp.txt.es.xlf
@@ -8975,8 +8975,9 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
-        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <note />
+        </trans-unit>
+        <trans-unit id="featureLetInBodyScoping" translate="yes" xml:space="preserve">          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
           <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf
index ffcca354250..6a58c6f4b1e 100644
--- a/src/Compiler/xlf/FSComp.txt.fr.xlf
+++ b/src/Compiler/xlf/FSComp.txt.fr.xlf
@@ -8975,8 +8975,9 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
-        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <note />
+        </trans-unit>
+        <trans-unit id="featureLetInBodyScoping" translate="yes" xml:space="preserve">          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
           <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf
index 4e6eb731adb..731da9ff499 100644
--- a/src/Compiler/xlf/FSComp.txt.it.xlf
+++ b/src/Compiler/xlf/FSComp.txt.it.xlf
@@ -8975,8 +8975,9 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
-        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <note />
+        </trans-unit>
+        <trans-unit id="featureLetInBodyScoping" translate="yes" xml:space="preserve">          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
           <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf
index a7b1717794e..821543febed 100644
--- a/src/Compiler/xlf/FSComp.txt.ja.xlf
+++ b/src/Compiler/xlf/FSComp.txt.ja.xlf
@@ -8975,8 +8975,9 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
-        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <note />
+        </trans-unit>
+        <trans-unit id="featureLetInBodyScoping" translate="yes" xml:space="preserve">          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
           <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf
index 543d60de0a7..49444c3f10d 100644
--- a/src/Compiler/xlf/FSComp.txt.ko.xlf
+++ b/src/Compiler/xlf/FSComp.txt.ko.xlf
@@ -8975,8 +8975,9 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
-        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <note />
+        </trans-unit>
+        <trans-unit id="featureLetInBodyScoping" translate="yes" xml:space="preserve">          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
           <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf
index 055e3eff70e..68c57aa9274 100644
--- a/src/Compiler/xlf/FSComp.txt.pl.xlf
+++ b/src/Compiler/xlf/FSComp.txt.pl.xlf
@@ -8975,8 +8975,9 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
-        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <note />
+        </trans-unit>
+        <trans-unit id="featureLetInBodyScoping" translate="yes" xml:space="preserve">          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
           <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf
index dbaeca0500b..5c21cb60109 100644
--- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf
+++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf
@@ -8975,8 +8975,9 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
-        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <note />
+        </trans-unit>
+        <trans-unit id="featureLetInBodyScoping" translate="yes" xml:space="preserve">          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
           <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf
index 1ee944f79d4..4803d71b910 100644
--- a/src/Compiler/xlf/FSComp.txt.ru.xlf
+++ b/src/Compiler/xlf/FSComp.txt.ru.xlf
@@ -8975,8 +8975,9 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
-        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <note />
+        </trans-unit>
+        <trans-unit id="featureLetInBodyScoping" translate="yes" xml:space="preserve">          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
           <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf
index 9d3feecb5fe..126f44f33f9 100644
--- a/src/Compiler/xlf/FSComp.txt.tr.xlf
+++ b/src/Compiler/xlf/FSComp.txt.tr.xlf
@@ -8975,8 +8975,9 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
-        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <note />
+        </trans-unit>
+        <trans-unit id="featureLetInBodyScoping" translate="yes" xml:space="preserve">          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
           <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf
index e0a8a272ed6..4e3aa96cac0 100644
--- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf
+++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf
@@ -8975,8 +8975,9 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
-        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <note />
+        </trans-unit>
+        <trans-unit id="featureLetInBodyScoping" translate="yes" xml:space="preserve">          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
           <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf
index 3569b7eb169..97881cfe7a8 100644
--- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf
+++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf
@@ -8975,8 +8975,9 @@
         <trans-unit id="tcListLiteralWithSingleTupleElement">
           <source>This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</source>
           <target state="new">This list expression contains a single tuple element. Did you mean to use ';' instead of ',' to separate list elements?</target>
-        <trans-unit id="featureWarnOnLetInSequenceExpression" translate="yes" xml:space="preserve">
-          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
+          <note />
+        </trans-unit>
+        <trans-unit id="featureLetInBodyScoping" translate="yes" xml:space="preserve">          <source>Scope 'let ... in' body to the same line in sequence expressions</source>
           <target state="new">Scope 'let ... in' body to the same line in sequence expressions</target>
           <note />
         </trans-unit>
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)]

From eaf6aae15d4e88777769088dd666913dcee622ec Mon Sep 17 00:00:00 2001
From: Tomas Grosup <tomasgrosup@microsoft.com>
Date: Mon, 20 Apr 2026 16:47:56 +0200
Subject: [PATCH 11/15] Fix CI: update diagnostic range in WarnExpressionTests
 after LexFilter scoping change

The LexFilter LetInBodyScoping change correctly scopes 'let x = 1 in x + 1'
to just that line. The 'x' on the next line is now in the outer scope,
so Warning 20 targets (6,5)-(6,6) instead of the old (5,5)-(6,6).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
 .../ErrorMessages/WarnExpressionTests.fs                        | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/FSharp.Compiler.ComponentTests/ErrorMessages/WarnExpressionTests.fs b/tests/FSharp.Compiler.ComponentTests/ErrorMessages/WarnExpressionTests.fs
index 542b2721734..26cd56ff9fa 100644
--- a/tests/FSharp.Compiler.ComponentTests/ErrorMessages/WarnExpressionTests.fs
+++ b/tests/FSharp.Compiler.ComponentTests/ErrorMessages/WarnExpressionTests.fs
@@ -310,7 +310,7 @@ do
         |> withDiagnostics [
             (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,
+            (Warning 20, Line 6, 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'.")
         ]
 

From d5209aa49d5182e04d3b844b215df6d519e5e7f7 Mon Sep 17 00:00:00 2001
From: Tomas Grosup <tomasgrosup@microsoft.com>
Date: Mon, 20 Apr 2026 17:01:49 +0200
Subject: [PATCH 12/15] Fix comment: clarify seq block scoping includes
 continuation lines

The body scope extends to continuation lines at the same or greater
indentation, not just the single line. Updated comment to reflect this.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
 src/Compiler/SyntaxTree/LexFilter.fs | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/Compiler/SyntaxTree/LexFilter.fs b/src/Compiler/SyntaxTree/LexFilter.fs
index 505d17de22b..dc3cb380d7d 100644
--- a/src/Compiler/SyntaxTree/LexFilter.fs
+++ b/src/Compiler/SyntaxTree/LexFilter.fs
@@ -1687,8 +1687,9 @@ type LexFilterImpl (
 
                 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.
+                    // push a new seq block anchored at the body's start column. Offside rules then limit
+                    // the body to the indented block starting on this line, preventing the parser from
+                    // greedily capturing subsequent lines at lower indentation as part of the let body.
                     pushCtxtSeqBlock tokenTup AddBlockEnd
                 else
                     // Body starts on a new line after 'in' — the user intentionally placed the body

From 2f19f896535d876c7a8fc10e264b5f0e75996dad Mon Sep 17 00:00:00 2001
From: Tomas Grosup <tomasgrosup@microsoft.com>
Date: Mon, 20 Apr 2026 18:22:30 +0200
Subject: [PATCH 13/15] Revert pars.fsy AnonModule range change to fix IDE
 completions

The AnonModule range change (ending at lastDecl.Range.End instead of
OBLOCKEND/EOF position) broke IDE completions at end-of-file positions.
This caused failures in EditorTests (Find function from var),
CompletionTests (AllowObsolete), and Warning 988 position changes
(CustomEquality01_fs, W_ImplIComparable_fs).

Revert the pars.fsy change and restore SyntaxTree baselines. The
AnonModule range redesign can be done in a separate PR with proper
service-layer adjustments.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
 src/Compiler/pars.fsy                             | 15 ++-------------
 .../SyntaxTree/Attribute/RangeOfAttribute.fs.bsl  |  2 +-
 .../Attribute/RangeOfAttributeWithPath.fs.bsl     |  2 +-
 .../Attribute/RangeOfAttributeWithTarget.fs.bsl   |  2 +-
 .../ColonBeforeReturnTypeIsPartOfTrivia.fs.bsl    |  2 +-
 ...oreReturnTypeIsPartOfTriviaInProperties.fs.bsl |  2 +-
 ...ConditionalDirectiveAroundInlineKeyword.fs.bsl |  2 +-
 .../Binding/InlineKeywordInBinding.fs.bsl         |  2 +-
 ...tternShouldBeIncludedInSynModuleDeclLet.fs.bsl |  2 +-
 ...ncludedInConstructorSynMemberDefnMember.fs.bsl |  2 +-
 ...ConstructorSynMemberDefnMemberOptAsSpec.fs.bsl |  2 +-
 ...cludedInFullSynMemberDefnMemberProperty.fs.bsl |  2 +-
 ...eShouldBeIncludedInSecondaryConstructor.fs.bsl |  2 +-
 ...uldBeIncludedInSynMemberDefnLetBindings.fs.bsl |  2 +-
 ...teShouldBeIncludedInSynMemberDefnMember.fs.bsl |  2 +-
 ...ibuteShouldBeIncludedInSynModuleDeclLet.fs.bsl |  2 +-
 ...dInWriteOnlySynMemberDefnMemberProperty.fs.bsl |  2 +-
 ...ualSignShouldBePresentInLocalLetBinding.fs.bsl |  2 +-
 ...gnShouldBePresentInLocalLetBindingTyped.fs.bsl |  2 +-
 ...EqualSignShouldBePresentInMemberBinding.fs.bsl |  2 +-
 ...dBePresentInMemberBindingWithParameters.fs.bsl |  2 +-
 ...dBePresentInMemberBindingWithReturnType.fs.bsl |  2 +-
 ...ngeOfEqualSignShouldBePresentInProperty.fs.bsl |  2 +-
 ...houldBePresentInSynModuleDeclLetBinding.fs.bsl |  2 +-
 ...BePresentInSynModuleDeclLetBindingTyped.fs.bsl |  2 +-
 ...ShouldBePresentInSynExprLetOrUseBinding.fs.bsl |  2 +-
 ...houldBePresentInSynModuleDeclLetBinding.fs.bsl |  2 +-
 ...InSynModuleDeclLetBindingWithAttributes.fs.bsl |  2 +-
 ...leReturnTypeOfBindingShouldContainStars.fs.bsl |  2 +-
 .../CodeComment/BlockCommentInSourceCode.fs.bsl   |  2 +-
 ...ouldBeCapturedIfUsedInAnInvalidLocation.fs.bsl |  2 +-
 .../TripleSlashCommentShouldNotBeCaptured.fs.bsl  |  2 +-
 ...nMultilineCommentAreNotReportedAsTrivia.fs.bsl |  2 +-
 ...InMultilineStringAreNotReportedAsTrivia.fs.bsl |  2 +-
 .../ConditionalDirective/NestedIfElseEndif.fs.bsl |  2 +-
 .../NestedIfEndifWithComplexExpressions.fs.bsl    |  2 +-
 .../ConditionalDirective/SingleIfElseEndif.fs.bsl |  2 +-
 .../ConditionalDirective/SingleIfEndif.fs.bsl     |  2 +-
 .../MultipleSynEnumCasesHaveBarRange.fs.bsl       |  2 +-
 .../EnumCase/SingleSynEnumCaseHasBarRange.fs.bsl  |  2 +-
 .../EnumCase/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 +-
 ...ExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl |  2 +-
 .../SyntaxTree/Expression/Sequential 01.fs.bsl    |  4 ++--
 .../SyntaxTree/Expression/Sequential 02.fs.bsl    |  4 ++--
 .../SyntaxTree/Expression/Sequential 03.fs.bsl    |  4 ++--
 ...SynExprDoContainsTheRangeOfTheDoKeyword.fs.bsl |  2 +-
 ...nExprForContainsTheRangeOfTheEqualsSign.fs.bsl |  2 +-
 ...ExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl |  2 +-
 ...tOrUseDoesNotContainTheRangeOfInKeyword.fs.bsl |  2 +-
 ...actersDoesNotContainTheRangeOfInKeyword.fs.bsl |  2 +-
 ...rsiveBindingContainsTheRangeOfInKeyword.fs.bsl |  2 +-
 ...ontainsTheRangeOfTheMatchAndWithKeyword.fs.bsl |  2 +-
 ...ontainsTheRangeOfTheMatchAndWithKeyword.fs.bsl |  2 +-
 ...yContainsTheRangeOfTheTryAndWithKeyword.fs.bsl |  2 +-
 ...hContainsTheRangeOfTheTryAndWithKeyword.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 +-
 .../IfThenElse/NestedElseIfInIfThenElse.fs.bsl    |  2 +-
 .../NestedElseIfOnTheSameLineInIfThenElse.fs.bsl  |  2 +-
 .../ComplexArgumentsLambdaHasArrowRange.fs.bsl    |  2 +-
 .../Lambda/DestructedLambdaHasArrowRange.fs.bsl   |  2 +-
 ...leParameterWithWildCardGivesCorrectBody.fs.bsl |  2 +-
 ...LambdaWithTwoParametersGivesCorrectBody.fs.bsl |  2 +-
 ...daWithWildCardParameterGivesCorrectBody.fs.bsl |  2 +-
 ...dCardThatReturnsALambdaGivesCorrectBody.fs.bsl |  2 +-
 .../Lambda/MultilineLambdaHasArrowRange.fs.bsl    |  2 +-
 .../Lambda/SimpleLambdaHasArrowRange.fs.bsl       |  2 +-
 .../Lambda/TupleInLambdaHasArrowRange.fs.bsl      |  2 +-
 .../LeadingKeyword/AbstractKeyword.fs.bsl         |  2 +-
 .../LeadingKeyword/AbstractMemberKeyword.fs.bsl   |  2 +-
 .../SyntaxTree/LeadingKeyword/AndKeyword.fs.bsl   |  2 +-
 .../LeadingKeyword/DefaultValKeyword.fs.bsl       |  2 +-
 .../SyntaxTree/LeadingKeyword/DoKeyword.fs.bsl    |  2 +-
 .../LeadingKeyword/DoStaticKeyword.fs.bsl         |  2 +-
 .../SyntaxTree/LeadingKeyword/LetKeyword.fs.bsl   |  2 +-
 .../LeadingKeyword/LetRecKeyword.fs.bsl           |  2 +-
 .../LeadingKeyword/MemberKeyword.fs.bsl           |  2 +-
 .../LeadingKeyword/MemberValKeyword.fs.bsl        |  2 +-
 .../SyntaxTree/LeadingKeyword/NewKeyword.fs.bsl   |  2 +-
 .../LeadingKeyword/OverrideKeyword.fs.bsl         |  2 +-
 .../LeadingKeyword/OverrideValKeyword.fs.bsl      |  2 +-
 .../LeadingKeyword/StaticAbstractKeyword.fs.bsl   |  2 +-
 .../StaticAbstractMemberKeyword.fs.bsl            |  2 +-
 .../LeadingKeyword/StaticLetKeyword.fs.bsl        |  2 +-
 .../LeadingKeyword/StaticLetRecKeyword.fs.bsl     |  2 +-
 .../LeadingKeyword/StaticMemberKeyword.fs.bsl     |  2 +-
 .../LeadingKeyword/StaticMemberValKeyword.fs.bsl  |  2 +-
 .../SyntaxTree/LeadingKeyword/UseKeyword.fs.bsl   |  2 +-
 .../LeadingKeyword/UseRecKeyword.fs.bsl           |  2 +-
 ...InASingleSynMatchClauseInSynExprTryWith.fs.bsl |  2 +-
 .../RangeOfArrowInSynMatchClause.fs.bsl           |  2 +-
 ...geOfArrowInSynMatchClauseWithWhenClause.fs.bsl |  2 +-
 ...MultipleSynMatchClausesInSynExprTryWith.fs.bsl |  2 +-
 ...arInASingleSynMatchClauseInSynExprMatch.fs.bsl |  2 +-
 ...InASingleSynMatchClauseInSynExprTryWith.fs.bsl |  2 +-
 ...InMultipleSynMatchClausesInSynExprMatch.fs.bsl |  2 +-
 .../RangeOfMultipleSynMatchClause.fs.bsl          |  2 +-
 .../RangeOfSingleSynMatchClause.fs.bsl            |  2 +-
 ...angeOfSingleSynMatchClauseFollowedByBar.fs.bsl |  2 +-
 .../MeasureContainsTheRangeOfTheConstant.fs.bsl   |  2 +-
 ...nTypeTupleInMeasureTypeWithLeadingSlash.fs.bsl |  2 +-
 .../SynTypeTupleInMeasureTypeWithNoSlashes.fs.bsl |  2 +-
 ...TypeTupleInMeasureTypeWithStartAndSlash.fs.bsl |  2 +-
 .../Member/GetSetMemberWithInlineKeyword.fs.bsl   |  2 +-
 .../Member/ImplicitCtorWithAsKeyword.fs.bsl       |  2 +-
 .../Member/MemberWithInlineKeyword.fs.bsl         |  2 +-
 ...nMemberContainsTheRangeOfTheWithKeyword.fs.bsl |  2 +-
 ...actSlotContainsTheRangeOfTheWithKeyword.fs.bsl |  2 +-
 ...PropertyContainsTheRangeOfTheEqualsSign.fs.bsl |  2 +-
 ...ropertyContainsTheRangeOfTheWithKeyword.fs.bsl |  2 +-
 ...nTypeDefnWithMemberWithGetHasXmlComment.fs.bsl |  2 +-
 .../Member/SynTypeDefnWithMemberWithSetget.fs.bsl |  2 +-
 .../SynTypeDefnWithStaticMemberWithGetset.fs.bsl  |  2 +-
 .../SynExprObjMembersHaveCorrectKeywords.fs.bsl   |  2 +-
 ...MemberDefnAbstractSlotHasCorrectKeyword.fs.bsl |  2 +-
 ...MemberDefnAutoPropertyHasCorrectKeyword.fs.bsl |  2 +-
 ...erDefnMemberSynValDataHasCorrectKeyword.fs.bsl |  2 +-
 .../RangeOfEqualSignShouldBePresent.fs.bsl        |  2 +-
 .../Nullness/AbstractClassProperty.fs.bsl         |  2 +-
 .../SyntaxTree/Nullness/DuCaseStringOrNull.fs.bsl |  2 +-
 .../Nullness/DuCaseTuplePrecedence.fs.bsl         |  2 +-
 .../data/SyntaxTree/Nullness/ExplicitField.fs.bsl |  2 +-
 .../FunctionArgAsPatternWithNullCase.fs.bsl       |  2 +-
 .../GenericFunctionReturnTypeNotStructNull.fs.bsl |  2 +-
 .../Nullness/GenericFunctionTyparNotNull.fs.bsl   |  2 +-
 .../Nullness/GenericFunctionTyparNull.fs.bsl      |  2 +-
 .../SyntaxTree/Nullness/GenericTypeNotNull.fs.bsl |  2 +-
 .../GenericTypeNotNullAndOtherConstraint.fs.bsl   |  2 +-
 ...tructAndOtherConstraint-I_am_Still_Sane.fs.bsl |  4 ++--
 .../SyntaxTree/Nullness/GenericTypeNull.fs.bsl    |  2 +-
 ...enericTypeOtherConstraintAndThenNotNull.fs.bsl |  2 +-
 .../data/SyntaxTree/Nullness/IntListOrNull.fs.bsl |  2 +-
 .../Nullness/IntListOrNullOrNullOrNull.fs.bsl     |  2 +-
 .../SyntaxTree/Nullness/MatchWithTypeCast.fs.bsl  |  2 +-
 .../Nullness/MatchWithTypeCastParens.fs.bsl       |  2 +-
 ...chWithTypeCastParensAndSeparateNullCase.fs.bsl |  2 +-
 .../Nullness/NullAnnotatedExpression.fs.bsl       |  2 +-
 .../Nullness/RegressionChoiceType.fs.bsl          |  2 +-
 .../Nullness/RegressionOptionType.fs.bsl          |  2 +-
 .../Nullness/SignatureInAbstractMember.fs.bsl     |  2 +-
 .../data/SyntaxTree/Nullness/StringOrNull.fs.bsl  |  2 +-
 .../Nullness/StringOrNullInFunctionArg.fs.bsl     |  2 +-
 .../OperatorName/ActivePatternDefinition.fs.bsl   |  2 +-
 .../ActivePatternIdentifierInPrivateMember.fs.bsl |  2 +-
 .../OperatorName/CustomOperatorDefinition.fs.bsl  |  2 +-
 .../OperatorName/ObjectModelWithTwoMembers.fs.bsl |  2 +-
 .../OperatorInMemberDefinition.fs.bsl             |  2 +-
 .../PartialActivePatternDefinition.fs.bsl         |  2 +-
 ...ctivePatternDefinitionWithoutParameters.fs.bsl |  2 +-
 .../QualifiedOperatorExpression.fs.bsl            |  2 +-
 .../data/SyntaxTree/Pattern/InHeadPattern.fs.bsl  |  2 +-
 .../Pattern/OperatorInMatchPattern.fs.bsl         |  2 +-
 .../Pattern/OperatorInSynPatLongIdent.fs.bsl      |  2 +-
 .../ParenthesesOfSynArgPatsNamePatPairs.fs.bsl    |  2 +-
 ...PatPairsContainsTheRangeOfTheEqualsSign.fs.bsl |  2 +-
 .../SynPatOrContainsTheRangeOfTheBar.fs.bsl       |  2 +-
 .../LeadingKeywordInRecursiveTypes.fsi.bsl        |  2 +-
 ...nConstBytesWithSynByteStringKindRegular.fs.bsl |  2 +-
 ...ConstBytesWithSynByteStringKindVerbatim.fs.bsl |  2 +-
 .../SynConstStringWithSynStringKindRegular.fs.bsl |  2 +-
 ...ConstStringWithSynStringKindTripleQuote.fs.bsl |  2 +-
 ...SynConstStringWithSynStringKindVerbatim.fs.bsl |  2 +-
 ...erpolatedStringWithSynStringKindRegular.fs.bsl |  2 +-
 ...latedStringWithSynStringKindTripleQuote.fs.bsl |  2 +-
 ...rpolatedStringWithSynStringKindVerbatim.fs.bsl |  2 +-
 .../NestedSynTypeOrInsideSynExprTraitCall.fs.bsl  |  2 +-
 .../SingleSynTypeInsideSynExprTraitCall.fs.bsl    |  2 +-
 .../SynTypeOrInsideSynExprTraitCall.fs.bsl        |  2 +-
 ...nTypeConstraintWhereTyparSupportsMember.fs.bsl |  2 +-
 .../SynTypeOrWithAppTypeOnTheRightHandSide.fs.bsl |  2 +-
 ...eDoesIncludeLeadingParameterAttributes.fsi.bsl |  2 +-
 ...peTupleDoesIncludeLeadingParameterName.fsi.bsl |  2 +-
 ...ttributesInOptionalNamedMemberParameter.fs.bsl |  2 +-
 ...tipleSynEnumCaseContainsRangeOfConstant.fs.bsl |  2 +-
 .../Type/NamedParametersInDelegateType.fs.bsl     |  2 +-
 ...fAttributeShouldBeIncludedInSynTypeDefn.fs.bsl |  2 +-
 ...ributesShouldBeIncludedInRecursiveTypes.fs.bsl |  2 +-
 ...ingleSynEnumCaseContainsRangeOfConstant.fs.bsl |  2 +-
 ...terfaceContainsTheRangeOfTheWithKeyword.fs.bsl |  2 +-
 ...tributeContainsTheRangeOfTheTypeKeyword.fs.bsl |  2 +-
 ...ntationContainsTheRangeOfTheWithKeyword.fs.bsl |  2 +-
 ...WithEnumContainsTheRangeOfTheEqualsSign.fs.bsl |  2 +-
 ...DelegateContainsTheRangeOfTheEqualsSign.fs.bsl |  2 +-
 ...hRecordContainsTheRangeOfTheWithKeyword.fs.bsl |  2 +-
 ...ithUnionContainsTheRangeOfTheEqualsSign.fs.bsl |  2 +-
 ...hXmlDocContainsTheRangeOfTheTypeKeyword.fs.bsl |  2 +-
 .../Type/SynTypeFunHasRangeOfArrow.fs.bsl         |  2 +-
 .../SyntaxTree/Type/SynTypeTupleWithStruct.fs.bsl |  2 +-
 .../Type/SynTypeTupleWithStructRecovery.fs.bsl    |  2 +-
 .../MultipleSynUnionCasesHaveBarRange.fs.bsl      |  2 +-
 .../UnionCase/PrivateKeywordHasRange.fs.bsl       |  2 +-
 .../SingleSynUnionCaseHasBarRange.fs.bsl          |  2 +-
 .../UnionCase/SingleSynUnionCaseWithoutBar.fs.bsl |  2 +-
 .../UnionCase/SynUnionCaseKindFullType.fs.bsl     |  2 +-
 .../UnionCaseFieldsCanHaveComments.fs.bsl         |  2 +-
 .../WarnScope/IndentedWarnDirective.fs.bsl        |  2 +-
 205 files changed, 213 insertions(+), 224 deletions(-)

diff --git a/src/Compiler/pars.fsy b/src/Compiler/pars.fsy
index 4162c17a5d8..3d9967a5724 100644
--- a/src/Compiler/pars.fsy
+++ b/src/Compiler/pars.fsy
@@ -616,12 +616,7 @@ fileModuleSpec:
     { let m = (rhs parseState 1)
       (fun (mNamespaceOpt, isRec, path, xml) ->
         match path with
-        | [] ->
-            let m =
-                match List.tryLast $1 with
-                | Some lastDecl -> Range.withEnd lastDecl.Range.End m
-                | None -> m
-            ParsedSigFileFragment.AnonModule($1, 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
@@ -1205,13 +1200,7 @@ fileModuleImpl:
     { let m = (rhs parseState 1)
       (fun (mNamespaceOpt, isRec, path, xml) ->
         match path, mNamespaceOpt with
-        | [], 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)
+        | [], None -> 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/tests/service/data/SyntaxTree/Attribute/RangeOfAttribute.fs.bsl b/tests/service/data/SyntaxTree/Attribute/RangeOfAttribute.fs.bsl
index 1e8bcd5c4e6..8e83e55acfa 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--3,5), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 d3b1978861e..4db0f069189 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--3,5), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 d8e0babd349..38b51a3bffd 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--3,5), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 dabcb16e268..065ab43c1c4 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--2,31), { LeadingKeyword = None })], (true, true),
+          (2,0--3,0), { 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 9f1a87a211d..92d2ae4ebfc 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--3,62), { LeadingKeyword = None })], (true, true),
+          None, (2,0--4,0), { 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 d3ec6d1d1c8..aab2187eed5 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--6,42),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--7,0),
           { 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 0ae04a1f247..74c98cb33a9 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--4,6),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--5,0),
           { 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 5f173741c6d..13347c94622 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--2,25),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 ed223807374..f53b47a4eaa 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--4,15), { LeadingKeyword = None })], (true, true),
+          None, (2,0--5,0), { 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 a235a196953..dde24f9afc2 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--4,23), { LeadingKeyword = None })], (true, true),
+          None, (2,0--5,0), { 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 5e864edc085..3a657b48cb7 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--6,50), { LeadingKeyword = None })], (true, true),
+          None, (2,0--7,0), { 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 c38db4fccb5..566cba41a61 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--11,12), { LeadingKeyword = None })], (true, true),
+          None, (2,0--12,0), { 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 de657641448..cd43cce87f7 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--4,13), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--5,0), { 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 f95cdf05b54..ff220a2a034 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--4,33), { LeadingKeyword = None })], (true, true),
+          None, (2,0--5,0), { 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 c266d02aef4..8731bb1d5b5 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--3,9),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--4,0),
           { 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 10e2d7988a5..8698f8ddc7c 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--4,79), { LeadingKeyword = None })], (true, true),
+          None, (2,0--5,0), { 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 65197e80ec2..fe96a80165c 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--4,6), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--5,0), { 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 aeefee72bf3..5ddcfdc594f 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--4,6), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--5,0), { 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 4260bd5fe41..0a48a4272fc 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--3,21), { LeadingKeyword = None })], (true, true),
+          None, (2,0--4,0), { 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 e7b766b5ff9..c8eb3a32a50 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--3,24), { LeadingKeyword = None })], (true, true),
+          None, (2,0--4,0), { 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 0e45f4b496e..431946b6f94 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--3,33), { LeadingKeyword = None })], (true, true),
+          None, (2,0--4,0), { 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 816b682535c..72ee28c403d 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--5,50), { LeadingKeyword = None })], (true, true),
+          None, (2,0--6,0), { 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 dbbd1476b56..25a5aa97f25 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--2,10),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 dd7b1233e15..3fad6c6ce95 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--2,16),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 c84a43075f6..4b2d72c287d 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--4,6),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--5,0),
           { 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 38ce6fd44a5..444e70f8b63 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--2,10),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 7f8a9fce264..6db963f547d 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--5,10),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (3,0--6,0),
           { 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 98b0f1c3dd9..a3c7a7589fc 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--3,42),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--4,0),
           { 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 aa0e3ad884e..e4901fa263f 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--2,25),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 ac48c46922d..01db4a77f0d 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--9,9),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (3,0--10,0),
           { 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 fc8ee617371..874620f3a24 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--3,9),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (3,0--4,0),
           { 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 a0a6aa8e1d2..3fb68701b0d 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--8,6),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--9,0),
           { 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 cd7b0dcd89f..bf1517651e9 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--7,3),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--8,0),
           { 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 25e22d6c372..0f6e8574919 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--10,9),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--12,0),
           { 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 9a54564d9af..95b3b1193c2 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--11,6),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--12,0),
           { 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 1d55ec0e68a..309e45cb72d 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--6,6),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--8,0),
           { 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 ed586cf11ba..0d60a023eaf 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--6,6),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--7,0),
           { 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 18a182d8eb0..65b7c6c556f 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--4,14), { LeadingKeyword = None })], (true, true),
+          None, (2,0--5,0), { 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 8245dab5007..ca80ebf45a9 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--2,20), { LeadingKeyword = None })], (true, true),
+          None, (2,0--3,0), { 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 c5f1c9e9498..4ac684664e3 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--2,18), { LeadingKeyword = None })], (true, true),
+          None, (2,0--3,0), { 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 39a94694d13..64a376f178c 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--1,2),
+              (1,0--1,2))], PreXmlDocEmpty, [], None, (1,0--2,0),
           { LeadingKeyword = None })], (true, true),
       { ConditionalDirectives = []
         WarnDirectives = []
         CodeComments = [] }, set []))
 
 (1,0)-(1,2) parse error Unmatched '{|'
-(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.
+(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.
diff --git a/tests/service/data/SyntaxTree/Expression/AnonymousRecords-05.fs.bsl b/tests/service/data/SyntaxTree/Expression/AnonymousRecords-05.fs.bsl
index 0befae14e81..38eb618a0ed 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--1,9),
+              (1,0--1,9))], PreXmlDocEmpty, [], None, (1,0--2,0),
           { LeadingKeyword = None })], (true, true),
       { ConditionalDirectives = []
         WarnDirectives = []
         CodeComments = [] }, set []))
 
 (1,7)-(1,9) parse error Unmatched '{|'
-(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.
+(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.
diff --git a/tests/service/data/SyntaxTree/Expression/AnonymousRecords-06.fs.bsl b/tests/service/data/SyntaxTree/Expression/AnonymousRecords-06.fs.bsl
index 726c35d41e1..b58b5e4c944 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--1,39),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--2,0),
           { LeadingKeyword = None })], (true, true),
       { ConditionalDirectives = []
         WarnDirectives = []
         CodeComments = [] }, set []))
 
-(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.
+(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.
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 da1a9cf7daf..721b79a0308 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--3,19),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--4,0),
           { LeadingKeyword = None })], (true, true),
       { ConditionalDirectives = []
         WarnDirectives = []
diff --git a/tests/service/data/SyntaxTree/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/NestedSynExprLetOrUseContainsTheRangeOfInKeyword.fs.bsl
index 14f792d8a98..8a70f1d6395 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--5,9),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--6,0),
           { 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 82d4843ec0e..763ab6d97b8 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--1,8),
+              (1,0--1,8))], PreXmlDocEmpty, [], None, (1,0--2,0),
           { LeadingKeyword = None })], (true, true),
       { ConditionalDirectives = []
         WarnDirectives = []
         CodeComments = [] }, set []))
 
-(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.
+(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.
diff --git a/tests/service/data/SyntaxTree/Expression/Sequential 02.fs.bsl b/tests/service/data/SyntaxTree/Expression/Sequential 02.fs.bsl
index e8e6a6d966a..724388842b5 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--1,11),
+              (1,0--1,11))], PreXmlDocEmpty, [], None, (1,0--2,0),
           { LeadingKeyword = None })], (true, true),
       { ConditionalDirectives = []
         WarnDirectives = []
         CodeComments = [] }, set []))
 
-(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.
+(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.
diff --git a/tests/service/data/SyntaxTree/Expression/Sequential 03.fs.bsl b/tests/service/data/SyntaxTree/Expression/Sequential 03.fs.bsl
index 8828e47273d..064662b49c7 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--1,21), { LeadingKeyword = None })], (true, true),
+          (1,0--2,0), { LeadingKeyword = None })], (true, true),
       { ConditionalDirectives = []
         WarnDirectives = []
         CodeComments = [] }, set []))
 
-(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.
+(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.
diff --git a/tests/service/data/SyntaxTree/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprDoContainsTheRangeOfTheDoKeyword.fs.bsl
index 047fc84f816..54b08da4d54 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--6,18),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--7,0),
           { 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 fd030b652bd..d2c4077e59c 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--3,14),
+              (2,0--3,14))], PreXmlDocEmpty, [], None, (2,0--4,0),
           { 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 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 []))
diff --git a/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs.bsl b/tests/service/data/SyntaxTree/Expression/SynExprLetOrUseDoesNotContainTheRangeOfInKeyword.fs.bsl
index 52db2919fb0..5ac7a4f817e 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--4,2), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--5,0), { 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 62696cf8b40..a49e4e9e41a 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--4,16), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--5,0), { 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 c700e2cc2f3..e8def5f575a 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--5,6), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--6,0), { 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 9984c93b774..871e70098d3 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--3,8), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 3a9249d29ca..f1e4b950125 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--3,8), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 ec65e2c9620..43d2f88584e 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--5,2), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--6,0), { 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 e5dd44ef813..690618cda81 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--5,9), { LeadingKeyword = None })], (true, true),
+          [], None, (2,0--6,0), { 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 ccffe6717d3..15cfd83a38c 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--4,5), { LeadingKeyword = None })], (true, true),
+          [], None, (1,0--5,0), { 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 f5e780af6b4..d3974f75b62 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--2,1),
+           Expr (Ident b, (2,0--2,1))], PreXmlDocEmpty, [], None, (1,0--3,0),
           { 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 d544773b9f9..6c91bc3c497 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--10,13), { LeadingKeyword = None })], (true, true),
+          [], None, (2,0--11,0), { 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 f89e5ce5700..8880778d7d4 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--2,18), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--3,0), { 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 0c3327a2bb2..e5e31766436 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--2,11), { LeadingKeyword = None })], (true, true),
+          [], None, (2,0--3,0), { 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 c1a8068ad45..7ecb4d2a588 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--4,6), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--5,0), { 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 8749ac87a26..4d59e2371b3 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--4,13), { LeadingKeyword = None })], (true, true),
+          [], None, (2,0--5,0), { 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 79ad86a1016..8085e2915cd 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--5,15), { LeadingKeyword = None })], (true, true),
+          [], None, (2,0--6,0), { 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 ddaabcd972d..7b9c52347c3 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--5,5), { LeadingKeyword = None })], (true, true),
+          [], None, (2,0--6,0), { 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 2fcdd5fc460..7e0dcdbacdc 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--6,13), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--7,0), { 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 ff411cdb4eb..575a421c923 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--2,22), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--3,0), { 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 8cb44086e13..e85c474072a 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--2,19),
+              (2,0--2,19))], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 a2e36f79086..8e77bc9eed1 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--2,12),
+              (2,0--2,12))], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 16a7576c50d..e38de7b5537 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--2,14),
+              (2,0--2,14))], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 4c530b74aae..eb2ff3402e8 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--2,19), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--3,0), { 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 a82e1b1d91b..40da24ed4d1 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--4,41), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--5,0), { 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 8c8a79394a5..54ee6a39cde 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--2,10),
+              (2,0--2,10))], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 bbdb4824550..788eb98a507 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--2,19), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--3,0), { 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 6390634614e..34aa70d3379 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--3,20), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 dced6d41a25..9f3ccbf040b 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--3,27), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 82b1033363d..4aa2963c410 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--3,15),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--4,0),
           { 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 238c30c9aff..028585bc0b5 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--3,27), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 ace49c56f7d..14ae9d51f17 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--3,9), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 0b4fafbd3df..74f4d74b17e 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--3,16), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 a66eee95b60..982311fccfe 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--2,15),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 5f9cefc7eb4..2569de7dba4 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--2,19),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 a8a06413c0d..3d161da52e3 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--3,26), { LeadingKeyword = None })], (true, true),
+          None, (2,0--4,0), { 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 0794e6a8f28..d9ba80b80df 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--3,26), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 95463622f8a..ebc374d1432 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--3,30), { LeadingKeyword = None })], (true, true),
+          None, (2,0--4,0), { 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 88d5905d724..f9d0ec25562 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--3,28), { LeadingKeyword = None })], (true, true),
+          None, (2,0--4,0), { 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 25a131aa4e9..837e1b368fd 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--3,28), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 ba8b538a823..e75b4c25218 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--3,34), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 c06f7a76bd0..73e5a522b4b 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--3,41), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 8c2ab6837dc..ef71149048c 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--3,24), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 818ea44fb9a..5251188440d 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--3,41), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 c48dc9a4016..541b6f582a9 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--3,29), { LeadingKeyword = None })], (true, true),
+          None, (2,0--4,0), { 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 67eeaf87b8f..feb33135568 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--3,33), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 465ce764738..acb1aa99958 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--4,6), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--5,0), { 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 f05e5b81acd..2e9c69bdb72 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--4,6), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--5,0), { 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 6856c6777db..4fb707a309e 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--6,6), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--7,0), { 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 ad2b0f62c7c..23af64bcfe3 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--3,15), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 a8af55281b5..37445cfd5a1 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--3,36), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 f2045889333..5a1bf39c36b 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--8,10), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--9,0), { 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 e29508ddf90..07c297570a9 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--3,36), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 5579433fe26..8df2cbe5f9f 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--5,11), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--6,0), { 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 b0ea666f29c..dbe210b96d4 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--4,20), { LeadingKeyword = None })], (true, true),
+          [], None, (2,0--5,0), { 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 95148ffdea6..7e93cf92fbc 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--10,8), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--11,0), { 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 4d3804fe949..4227bf63c82 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--7,8), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--8,0), { 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 7e48d10f291..284e3c115de 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--8,1),
+              (2,0--8,1))], PreXmlDocEmpty, [], None, (2,0--9,0),
           { 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 13cf9421552..9dff13b0b57 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--3,17), { LeadingKeyword = None })], (true, true),
+          (2,0--4,0), { 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 dc1c5fab8ed..33675b1a3a1 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--2,29), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--3,0), { 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 ad41bdf7457..fc29ce7d7e1 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--2,26), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--3,0), { 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 4dea9a8589b..6e423837385 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--2,30), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--3,0), { 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 0c5bb838dce..f09cb92e147 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--5,29), { LeadingKeyword = None })], (true, true),
+          None, (2,0--6,0), { 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 4fc0fa00cff..06e7e3f9fdc 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--8,13), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--9,0), { 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 566f35238c5..65401553b8f 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--3,29), { LeadingKeyword = None })], (true, true),
+          None, (2,0--4,0), { 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 0a431cec9a5..110af6cd16c 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--6,50), { LeadingKeyword = None })], (true, true),
+          None, (2,0--7,0), { 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 9ae806ce733..4838003cfc0 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--3,42), { LeadingKeyword = None })], (true, true),
+          None, (2,0--4,0), { 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 ba137ac80d9..3009a787588 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--5,40), { LeadingKeyword = None })], (true, true),
+          None, (3,0--6,0), { 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 44160d14078..f437240766a 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--4,39), { LeadingKeyword = None })], (true, true),
+          None, (2,0--5,0), { 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 f417d2eeeec..cf045eeca1f 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--4,29), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--5,0), { 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 0f3965b45a9..97c59244fb9 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--3,62), { LeadingKeyword = None })], (true, true),
+          None, (2,0--4,0), { 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 4ff5f22cbd9..7277f5e58c2 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--5,54), { LeadingKeyword = None })], (true, true),
+          None, (2,0--6,0), { 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 85cdd796b00..905d4abcc41 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--7,34),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--8,0),
           { 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 fa3916ab6ff..bbc45fd79ae 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--4,26), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--5,0), { 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 3e81cf47683..2f12d930aa0 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--6,27), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--7,0), { 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 bed97db53de..ddf52181d1c 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--6,25), { LeadingKeyword = None })], (true, true),
+          None, (2,0--7,0), { 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 92374a61895..5b493568519 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--3,6), { LeadingKeyword = None })], (true, true),
+          (2,0--4,0), { 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 822e649f3e8..d544fd6cd7b 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--3,51), { LeadingKeyword = None })], (true, true),
+          None, (1,0--4,0), { 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 4b4c20e4bd4..13161fa49f4 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--1,35), { LeadingKeyword = None })], (true, true),
+          None, (1,0--2,0), { 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 450e66b882a..51050a8e198 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--1,41), { LeadingKeyword = None })], (true, true),
+          None, (1,0--2,0), { 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 1caa5cf15fc..8626a3204af 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--4,7), { LeadingKeyword = None })], (true, true),
+          None, (1,0--5,0), { 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 0e169633415..1163ccbe7a0 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--1,52), { LeadingKeyword = None })], (true, true),
+          (1,0--2,0), { 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 921c852f5f8..beef982627b 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--1,57),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--2,0),
           { 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 16437dcb4e4..ced1fa2ca34 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--1,41),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--2,0),
           { 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 f07361921e9..04a03f8646c 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--1,37), { LeadingKeyword = None })], (true, true),
+          (1,0--2,0), { 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 6bdf6a3ded3..2e217784614 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--1,40), { LeadingKeyword = None })], (true, true),
+          None, (1,0--2,0), { 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 74ea5bb5b77..4f47caa397c 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--1,56), { LeadingKeyword = None })], (true, true),
+          None, (1,0--2,0), { 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 296f45fab77..0ea0210a109 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--1,58), { LeadingKeyword = None })], (true, true),
+          None, (1,0--2,0), { LeadingKeyword = None })], (true, true),
       { ConditionalDirectives = []
         WarnDirectives = []
         CodeComments = [] }, set []))
 
-(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.
+(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.
diff --git a/tests/service/data/SyntaxTree/Nullness/GenericTypeNull.fs.bsl b/tests/service/data/SyntaxTree/Nullness/GenericTypeNull.fs.bsl
index d82c0902345..59936ebce22 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--1,36), { LeadingKeyword = None })], (true, true),
+          None, (1,0--2,0), { 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 a6ba3707b3d..59b59562625 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--1,56), { LeadingKeyword = None })], (true, true),
+          None, (1,0--2,0), { 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 9347d0a0328..a7ad67de505 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--1,28), { LeadingKeyword = None })], (true, true),
+          (1,0--2,0), { 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 6834bd9d4bb..2ba92634916 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--1,23),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--2,0),
           { 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 9a584a7c79d..773ff445618 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--2,24), { LeadingKeyword = None })], (true, true),
+          [], None, (1,0--3,0), { 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 b8141c30794..9576ea6b023 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--2,26), { LeadingKeyword = None })], (true, true),
+          [], None, (1,0--3,0), { 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 95b27743722..00f7882ac7f 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--2,33), { LeadingKeyword = None })], (true, true),
+          [], None, (1,0--3,0), { 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 a1bc1dd9602..115fe6c5406 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--1,70),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--2,0),
           { 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 225321337f2..79d2dfce12c 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--7,19), { LeadingKeyword = None })], (true, true),
+          None, (1,0--8,0), { 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 a8ab331fe5e..502b1ba39e7 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,33), { LeadingKeyword = None })], (true, true),
+          None, (1,0--3,34), { 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 690a3e7fd24..317752b3425 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--2,61), { LeadingKeyword = None })], (true, true),
+          None, (1,0--3,0), { 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 748146c9dfd..7d205e16fef 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--1,28),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--2,0),
           { 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 05886606bdc..89a2cf25e55 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--1,36),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--2,0),
           { 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 9873dfe7cc6..9e6d6ffa604 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--2,59),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 d85b688b2c5..faa01ee9c32 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--7,6), { LeadingKeyword = None })], (true, true),
+          None, (2,0--8,0), { 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 b494fd7611e..bfe1edd8570 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--2,19),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 e691253c66a..6a073559389 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--4,79), { LeadingKeyword = None })], (true, true),
+          None, (2,0--5,0), { 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 1fb231f1bf0..5137e642c9a 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--3,28), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 75f40acccd7..eea2cad6200 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--2,88),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 f297f22b8ef..3253f26b962 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--2,33),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 568eab9ee5d..e6a9d22b312 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--2,40),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 06390308b66..b051e774443 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--2,24),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 85ac6e19fcb..53eba0b1b3a 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--3,24), { LeadingKeyword = None })], (true, true),
+          [], None, (2,0--4,0), { 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 af10ffc38c7..ef6ff484d63 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--2,28),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 5d84ab6ba5d..d8fea47cf6f 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--6,22), { LeadingKeyword = None })], (true, true),
+          [], None, (2,0--7,0), { 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 e273e9d8d7b..b25fece4c04 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--3,16), { LeadingKeyword = None })], (true, true),
+          [], None, (2,0--4,0), { 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 923ba4326f5..4f60ec0e26f 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--5,9), { LeadingKeyword = None })], (true, true),
+          [], None, (2,0--6,0), { 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 bd9494be9bd..2a904b29554 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--3,11), { LeadingKeyword = None })],
+          None, (2,0--4,0), { 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 1d6e5166b4c..d75deb2559f 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--2,17),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 a20bd2188e9..3558453d510 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--2,18),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 47384a6b664..d7e456fbf21 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--2,12), { LeadingKeyword = None })], (true, true),
+          (2,0--3,0), { 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 46e536c047d..a6367f49c08 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--2,16), { LeadingKeyword = None })], (true, true),
+          (2,0--3,0), { 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 eb2e4bc4191..3ac4b59d559 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--2,13), { LeadingKeyword = None })], (true, true),
+          (2,0--3,0), { 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 9fcb671cc39..7026b9a1034 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--2,18), { LeadingKeyword = None })], (true, true),
+          (2,0--3,0), { 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 02308212063..9e42b6455ce 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--2,22), { LeadingKeyword = None })], (true, true),
+          (2,0--3,0), { 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 b3817f4d54a..2fb03900ebf 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--2,70),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 24558691a94..0519b1b2187 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--2,100),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 3ebeebbf172..1e3e4c88ac6 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--4,60), { LeadingKeyword = None })], (true, true),
+          None, (2,0--5,0), { 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 218867e359b..de6b23fb759 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--2,84),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 e26095d1477..fe5574fc5fc 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--3,6), { LeadingKeyword = None })], (true, true),
+          (2,0--4,0), { 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 f9937481154..5e112be7de8 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--2,64),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 170c53a324d..c65846b5121 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--3,63), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 578a1c99fd1..6519bc1260e 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--3,34), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 10fc6588f58..478489a67f7 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--3,46), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--4,0), { 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 7e8441649ca..26f912fd463 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--4,13), { LeadingKeyword = None })], (true, true),
+          None, (2,0--5,0), { 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 45199687092..cd9f16db52b 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--2,46), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--3,0), { 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 8d6e6bdf2a0..79bbd17b1a6 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--5,7), { LeadingKeyword = None })], (true, true),
+          None, (2,0--6,0), { 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 0681885c74a..ad592dd5cbb 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--10,5), { LeadingKeyword = None })], (true, true),
+          None, (2,0--11,0), { 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 79b8b0689ab..eebe5e89043 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--2,27), { LeadingKeyword = None })], (true, true),
+          None, (2,0--3,0), { 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 1212bc3c07a..4a03a8854ac 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--5,19), { LeadingKeyword = None })], (true, true),
+          None, (2,0--6,0), { 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 e7ba5e8f867..bdf9ec74f42 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--4,10), { LeadingKeyword = None })], (true, true),
+          None, (2,0--5,0), { 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 e4ae1c86ead..200a42bb6be 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--3,21), { LeadingKeyword = None })], (true, true),
+          None, (2,0--4,0), { 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 53278778d7b..4ebef606401 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--4,19), { LeadingKeyword = None })], (true, true),
+          None, (2,0--5,0), { 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 ed03f3c265d..ac4171bbf00 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--2,37), { LeadingKeyword = None })],
+          PreXmlDocEmpty, [], None, (2,0--3,0), { 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 11685c658c1..7cb9f5a2af5 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--5,46),
+              (2,0--5,46))], PreXmlDocEmpty, [], None, (2,0--6,0),
           { 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 d4dd58ca8a4..561ab54725d 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--4,28), { LeadingKeyword = None })], (true, true),
+          None, (2,0--5,0), { 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 6a3a72ce342..98690850046 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--5,9), { LeadingKeyword = None })], (true, true),
+          None, (4,0--6,0), { 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 83d242d62c7..18cf4ffe778 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--3,20), { LeadingKeyword = None })], (true, true),
+          None, (2,0--4,0), { 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 56d5e500cc9..a1c7db8a6dc 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--2,30),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 636eb8932da..a2e63034dd5 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--2,29),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (2,0--3,0),
           { 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 c59f6bf8077..7b2aafa30de 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--4,17), { LeadingKeyword = None })], (true, true),
+          None, (2,0--5,0), { 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 dc3988cd8f6..732c0e0b8bf 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--9,20), { LeadingKeyword = None })], (true, true),
+          None, (2,0--10,0), { 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 4537fcf9e84..7ed7778c9c9 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--2,26), { LeadingKeyword = None })], (true, true),
+          None, (2,0--3,0), { 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 a6533c726ef..a2888b02b10 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--2,24), { LeadingKeyword = None })], (true, true),
+          None, (2,0--3,0), { 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 be3c2b4cd64..cd3e454e196 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--3,20), { LeadingKeyword = None })], (true, true),
+          None, (2,0--4,0), { 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 dd9c1c6b12e..57c3921ba18 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--8,6), { LeadingKeyword = None })], (true, true),
+          None, (2,0--9,0), { 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 5342cff2268..1acf18f6d2b 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--3,6),
+              { InKeyword = None })], PreXmlDocEmpty, [], None, (1,0--4,0),
           { LeadingKeyword = None })], (true, true),
       { ConditionalDirectives = []
         WarnDirectives = [Nowarn (2,4--2,14)]

From 72bcc29fca2dede1d3819d4e5f8e60f1e53bc92e Mon Sep 17 00:00:00 2001
From: Tomas Grosup <tomasgrosup@microsoft.com>
Date: Tue, 21 Apr 2026 08:46:43 +0200
Subject: [PATCH 14/15] Fix merge conflicts with main and update baselines for
 improved diagnostics

- Resolve FSComp.txt number conflict: bump PR entry to 3887 (later removed by LexFilter commit)
- Resolve XLF conflicts: keep main's parsLetBangCannotBeLastInCE and tcListLiteralWithSingleTupleElement entries
- Update Auto property 08/09/10 baselines for improved diagnostic messages from main (#19398)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
 .../SyntaxTree/Member/Auto property 08.fs.bsl | 19 ++++++++++++++++++-
 .../SyntaxTree/Member/Auto property 09.fs.bsl | 19 ++++++++++++++++++-
 .../SyntaxTree/Member/Auto property 10.fs.bsl | 19 ++++++++++++++++++-
 3 files changed, 54 insertions(+), 3 deletions(-)

diff --git a/tests/service/data/SyntaxTree/Member/Auto property 08.fs.bsl b/tests/service/data/SyntaxTree/Member/Auto property 08.fs.bsl
index c758fcae4a9..cb57654d7c9 100644
--- a/tests/service/data/SyntaxTree/Member/Auto property 08.fs.bsl	
+++ b/tests/service/data/SyntaxTree/Member/Auto property 08.fs.bsl	
@@ -46,4 +46,21 @@ ImplFile
 
 (6,0)-(6,1) parse error Unexpected syntax or possible incorrect indentation: this token is offside of context started at position (4:22). Try indenting this further.
 To continue using non-conforming indentation, pass the '--strict-indentation-' flag to the compiler, or set the language version to F# 7.
-(6,0)-(6,1) parse error Incomplete structured construct at or before this point. Expected identifier, '(', '(*)' or other token.
+(6,0)-(6,1) parse error Incomplete structured construct at or before this point. (no 'in' context found: [[NONTERM_classMemberSpfnGetSetElements];
+ [NONTERM_classMemberSpfnGetSetElements; NONTERM_classMemberSpfnGetSetElements];
+ [NONTERM_classMemberSpfnGetSetElements; NONTERM_classMemberSpfnGetSetElements;
+  NONTERM_classMemberSpfnGetSetElements];
+ [NONTERM_classMemberSpfnGetSetElements; NONTERM_classMemberSpfnGetSetElements;
+  NONTERM_classMemberSpfnGetSetElements];
+ [NONTERM_classMemberSpfnGetSet; NONTERM_classMemberSpfnGetSet];
+ [NONTERM_autoPropsDefnDecl]; [NONTERM_autoPropsDefnDecl];
+ [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
+  NONTERM_autoPropsDefnDecl];
+ [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
+  NONTERM_autoPropsDefnDecl];
+ [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
+  NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl];
+ [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
+  NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl];
+ [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
+  NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl]]). Expected identifier, '(', '(*)' or other token.
diff --git a/tests/service/data/SyntaxTree/Member/Auto property 09.fs.bsl b/tests/service/data/SyntaxTree/Member/Auto property 09.fs.bsl
index 70796107bed..e8589af0fe7 100644
--- a/tests/service/data/SyntaxTree/Member/Auto property 09.fs.bsl	
+++ b/tests/service/data/SyntaxTree/Member/Auto property 09.fs.bsl	
@@ -69,4 +69,21 @@ ImplFile
 
 (5,4)-(5,10) parse error Unexpected syntax or possible incorrect indentation: this token is offside of context started at position (4:23). Try indenting this further.
 To continue using non-conforming indentation, pass the '--strict-indentation-' flag to the compiler, or set the language version to F# 7.
-(5,4)-(5,10) parse error Incomplete structured construct at or before this point. Expected identifier, '(', '(*)' or other token.
+(5,4)-(5,10) parse error Incomplete structured construct at or before this point. (no 'in' context found: [[NONTERM_classMemberSpfnGetSetElements];
+ [NONTERM_classMemberSpfnGetSetElements; NONTERM_classMemberSpfnGetSetElements];
+ [NONTERM_classMemberSpfnGetSetElements; NONTERM_classMemberSpfnGetSetElements;
+  NONTERM_classMemberSpfnGetSetElements];
+ [NONTERM_classMemberSpfnGetSetElements; NONTERM_classMemberSpfnGetSetElements;
+  NONTERM_classMemberSpfnGetSetElements];
+ [NONTERM_classMemberSpfnGetSet; NONTERM_classMemberSpfnGetSet];
+ [NONTERM_autoPropsDefnDecl]; [NONTERM_autoPropsDefnDecl];
+ [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
+  NONTERM_autoPropsDefnDecl];
+ [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
+  NONTERM_autoPropsDefnDecl];
+ [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
+  NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl];
+ [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
+  NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl];
+ [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
+  NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl]]). Expected identifier, '(', '(*)' or other token.
diff --git a/tests/service/data/SyntaxTree/Member/Auto property 10.fs.bsl b/tests/service/data/SyntaxTree/Member/Auto property 10.fs.bsl
index ba04b1a3de7..bfa6c0034a7 100644
--- a/tests/service/data/SyntaxTree/Member/Auto property 10.fs.bsl	
+++ b/tests/service/data/SyntaxTree/Member/Auto property 10.fs.bsl	
@@ -45,4 +45,21 @@ ImplFile
 
 (5,0)-(5,0) parse error Unexpected syntax or possible incorrect indentation: this token is offside of context started at position (4:22). Try indenting this further.
 To continue using non-conforming indentation, pass the '--strict-indentation-' flag to the compiler, or set the language version to F# 7.
-(5,0)-(5,0) parse error Incomplete structured construct at or before this point. Expected identifier, '(', '(*)' or other token.
+(5,0)-(5,0) parse error Incomplete structured construct at or before this point. (no 'in' context found: [[NONTERM_classMemberSpfnGetSetElements];
+ [NONTERM_classMemberSpfnGetSetElements; NONTERM_classMemberSpfnGetSetElements];
+ [NONTERM_classMemberSpfnGetSetElements; NONTERM_classMemberSpfnGetSetElements;
+  NONTERM_classMemberSpfnGetSetElements];
+ [NONTERM_classMemberSpfnGetSetElements; NONTERM_classMemberSpfnGetSetElements;
+  NONTERM_classMemberSpfnGetSetElements];
+ [NONTERM_classMemberSpfnGetSet; NONTERM_classMemberSpfnGetSet];
+ [NONTERM_autoPropsDefnDecl]; [NONTERM_autoPropsDefnDecl];
+ [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
+  NONTERM_autoPropsDefnDecl];
+ [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
+  NONTERM_autoPropsDefnDecl];
+ [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
+  NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl];
+ [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
+  NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl];
+ [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
+  NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl]]). Expected identifier, '(', '(*)' or other token.

From 32f46ad8e1534874159478174c33f0a92dd28071 Mon Sep 17 00:00:00 2001
From: Tomas Grosup <tomasgrosup@microsoft.com>
Date: Tue, 21 Apr 2026 08:53:08 +0200
Subject: [PATCH 15/15] Fix review: revert Debug-build baselines, deduplicate
 release notes

- Revert Auto property 08/09/10 baselines that were incorrectly regenerated
  with a Debug build, leaking #if DEBUG parser internals (NONTERM_* state)
  into error messages
- Replace 4 duplicate Breaking Changes release note entries (referencing
  wrong issues/PRs and stale FS3885 warning) with one correct entry

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
 .../.FSharp.Compiler.Service/11.0.100.md      |  5 +----
 .../SyntaxTree/Member/Auto property 08.fs.bsl | 19 +------------------
 .../SyntaxTree/Member/Auto property 09.fs.bsl | 19 +------------------
 .../SyntaxTree/Member/Auto property 10.fs.bsl | 19 +------------------
 4 files changed, 4 insertions(+), 58 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 49a52d24763..9501a77ed27 100644
--- a/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md
+++ b/docs/release-notes/.FSharp.Compiler.Service/11.0.100.md
@@ -46,7 +46,4 @@
 * Improvements in error and warning messages: new error FS3885 when `let!`/`use!` is the final expression in a computation expression; new warning FS3886 when a list literal contains a single tuple element (likely missing `;` separator); improved wording for FS0003, FS0025, FS0039, FS0072, FS0247, FS0597, FS0670, FS3082, and SRTP operator-not-in-scope hints. ([PR #19398](https://github.com/dotnet/fsharp/pull/19398))
 
 ### Breaking Changes
-* 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))
-* 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))
+* `let ... in` with explicit `in` keyword in light syntax now scopes the body to the same line, preventing the parser from greedily capturing subsequent lines. Code that relied on the old multi-line scoping behavior may need adjustment. ([Issue #7741](https://github.com/dotnet/fsharp/issues/7741), [PR #19501](https://github.com/dotnet/fsharp/pull/19501))
diff --git a/tests/service/data/SyntaxTree/Member/Auto property 08.fs.bsl b/tests/service/data/SyntaxTree/Member/Auto property 08.fs.bsl
index cb57654d7c9..c758fcae4a9 100644
--- a/tests/service/data/SyntaxTree/Member/Auto property 08.fs.bsl	
+++ b/tests/service/data/SyntaxTree/Member/Auto property 08.fs.bsl	
@@ -46,21 +46,4 @@ ImplFile
 
 (6,0)-(6,1) parse error Unexpected syntax or possible incorrect indentation: this token is offside of context started at position (4:22). Try indenting this further.
 To continue using non-conforming indentation, pass the '--strict-indentation-' flag to the compiler, or set the language version to F# 7.
-(6,0)-(6,1) parse error Incomplete structured construct at or before this point. (no 'in' context found: [[NONTERM_classMemberSpfnGetSetElements];
- [NONTERM_classMemberSpfnGetSetElements; NONTERM_classMemberSpfnGetSetElements];
- [NONTERM_classMemberSpfnGetSetElements; NONTERM_classMemberSpfnGetSetElements;
-  NONTERM_classMemberSpfnGetSetElements];
- [NONTERM_classMemberSpfnGetSetElements; NONTERM_classMemberSpfnGetSetElements;
-  NONTERM_classMemberSpfnGetSetElements];
- [NONTERM_classMemberSpfnGetSet; NONTERM_classMemberSpfnGetSet];
- [NONTERM_autoPropsDefnDecl]; [NONTERM_autoPropsDefnDecl];
- [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
-  NONTERM_autoPropsDefnDecl];
- [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
-  NONTERM_autoPropsDefnDecl];
- [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
-  NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl];
- [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
-  NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl];
- [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
-  NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl]]). Expected identifier, '(', '(*)' or other token.
+(6,0)-(6,1) parse error Incomplete structured construct at or before this point. Expected identifier, '(', '(*)' or other token.
diff --git a/tests/service/data/SyntaxTree/Member/Auto property 09.fs.bsl b/tests/service/data/SyntaxTree/Member/Auto property 09.fs.bsl
index e8589af0fe7..70796107bed 100644
--- a/tests/service/data/SyntaxTree/Member/Auto property 09.fs.bsl	
+++ b/tests/service/data/SyntaxTree/Member/Auto property 09.fs.bsl	
@@ -69,21 +69,4 @@ ImplFile
 
 (5,4)-(5,10) parse error Unexpected syntax or possible incorrect indentation: this token is offside of context started at position (4:23). Try indenting this further.
 To continue using non-conforming indentation, pass the '--strict-indentation-' flag to the compiler, or set the language version to F# 7.
-(5,4)-(5,10) parse error Incomplete structured construct at or before this point. (no 'in' context found: [[NONTERM_classMemberSpfnGetSetElements];
- [NONTERM_classMemberSpfnGetSetElements; NONTERM_classMemberSpfnGetSetElements];
- [NONTERM_classMemberSpfnGetSetElements; NONTERM_classMemberSpfnGetSetElements;
-  NONTERM_classMemberSpfnGetSetElements];
- [NONTERM_classMemberSpfnGetSetElements; NONTERM_classMemberSpfnGetSetElements;
-  NONTERM_classMemberSpfnGetSetElements];
- [NONTERM_classMemberSpfnGetSet; NONTERM_classMemberSpfnGetSet];
- [NONTERM_autoPropsDefnDecl]; [NONTERM_autoPropsDefnDecl];
- [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
-  NONTERM_autoPropsDefnDecl];
- [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
-  NONTERM_autoPropsDefnDecl];
- [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
-  NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl];
- [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
-  NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl];
- [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
-  NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl]]). Expected identifier, '(', '(*)' or other token.
+(5,4)-(5,10) parse error Incomplete structured construct at or before this point. Expected identifier, '(', '(*)' or other token.
diff --git a/tests/service/data/SyntaxTree/Member/Auto property 10.fs.bsl b/tests/service/data/SyntaxTree/Member/Auto property 10.fs.bsl
index bfa6c0034a7..ba04b1a3de7 100644
--- a/tests/service/data/SyntaxTree/Member/Auto property 10.fs.bsl	
+++ b/tests/service/data/SyntaxTree/Member/Auto property 10.fs.bsl	
@@ -45,21 +45,4 @@ ImplFile
 
 (5,0)-(5,0) parse error Unexpected syntax or possible incorrect indentation: this token is offside of context started at position (4:22). Try indenting this further.
 To continue using non-conforming indentation, pass the '--strict-indentation-' flag to the compiler, or set the language version to F# 7.
-(5,0)-(5,0) parse error Incomplete structured construct at or before this point. (no 'in' context found: [[NONTERM_classMemberSpfnGetSetElements];
- [NONTERM_classMemberSpfnGetSetElements; NONTERM_classMemberSpfnGetSetElements];
- [NONTERM_classMemberSpfnGetSetElements; NONTERM_classMemberSpfnGetSetElements;
-  NONTERM_classMemberSpfnGetSetElements];
- [NONTERM_classMemberSpfnGetSetElements; NONTERM_classMemberSpfnGetSetElements;
-  NONTERM_classMemberSpfnGetSetElements];
- [NONTERM_classMemberSpfnGetSet; NONTERM_classMemberSpfnGetSet];
- [NONTERM_autoPropsDefnDecl]; [NONTERM_autoPropsDefnDecl];
- [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
-  NONTERM_autoPropsDefnDecl];
- [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
-  NONTERM_autoPropsDefnDecl];
- [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
-  NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl];
- [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
-  NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl];
- [NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl;
-  NONTERM_autoPropsDefnDecl; NONTERM_autoPropsDefnDecl]]). Expected identifier, '(', '(*)' or other token.
+(5,0)-(5,0) parse error Incomplete structured construct at or before this point. Expected identifier, '(', '(*)' or other token.
