Skip to content

Commit 443b3ab

Browse files
authored
use new range helper functions in src/Compiler (#15856)
1 parent 30fac68 commit 443b3ab

File tree

10 files changed

+20
-24
lines changed

10 files changed

+20
-24
lines changed

src/Compiler/Checking/CheckExpressions.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8161,7 +8161,7 @@ and TcNameOfExpr (cenv: cenv) env tpenv (synArg: SynExpr) =
81618161

81628162
and TcNameOfExprResult (cenv: cenv) (lastIdent: Ident) m =
81638163
let g = cenv.g
8164-
let constRange = mkRange m.FileName m.Start (mkPos m.StartLine (m.StartColumn + lastIdent.idText.Length + 2)) // `2` are for quotes
8164+
let constRange = withEnd (mkPos m.StartLine (m.StartColumn + lastIdent.idText.Length + 2)) m // `2` are for quotes
81658165
Expr.Const(Const.String(lastIdent.idText), constRange, g.string_ty)
81668166

81678167
//-------------------------------------------------------------------------

src/Compiler/Checking/CheckRecordSyntaxHelpers.fs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,14 @@ let TransformAstForNestedUpdates (cenv: TcFileState) (env: TcEnv) overallTy (lid
7979
| [ _ ] -> [ origSepRng ]
8080
| _ :: t ->
8181
origSepRng
82-
:: List.map (fun (s: Ident, e: Ident) -> mkRange s.idRange.FileName s.idRange.End e.idRange.Start) t
82+
:: List.map (fun (s: Ident, e: Ident) -> withStartEnd s.idRange.End e.idRange.Start s.idRange) t
8383

8484
let lid = buildLid [] id lidwd |> List.rev
8585

8686
(lid, List.pairwise lid |> calcLidSeparatorRanges origSepRng)
8787

8888
let totalRange (origId: Ident) (id: Ident) =
89-
mkRange origId.idRange.FileName origId.idRange.End id.idRange.Start
89+
withStartEnd origId.idRange.End id.idRange.Start origId.idRange
9090

9191
let rangeOfBlockSeperator (id: Ident) =
9292
let idEnd = id.idRange.End
@@ -95,7 +95,7 @@ let TransformAstForNestedUpdates (cenv: TcFileState) (env: TcEnv) overallTy (lid
9595
let blockSeperatorStartPos = mkPos idEnd.Line blockSeperatorStartCol
9696
let blockSeporatorEndPos = mkPos idEnd.Line blockSeperatorEndCol
9797

98-
mkRange id.idRange.FileName blockSeperatorStartPos blockSeporatorEndPos
98+
withStartEnd blockSeperatorStartPos blockSeporatorEndPos id.idRange
9999

100100
match withExpr with
101101
| SynExpr.Ident origId, (sepRange, _) ->

src/Compiler/Driver/CompilerDiagnostics.fs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2001,23 +2001,23 @@ let FormatDiagnosticLocation (tcConfig: TcConfig) m : FormattedDiagnosticLocatio
20012001
// We're adjusting the columns here to be 1-based - both for parity with C# and for MSBuild, which assumes 1-based columns for error output
20022002
| DiagnosticStyle.Default ->
20032003
let file = file.Replace('/', Path.DirectorySeparatorChar)
2004-
let m = mkRange m.FileName (mkPos m.StartLine (m.StartColumn + 1)) m.End
2004+
let m = withStart (mkPos m.StartLine (m.StartColumn + 1)) m
20052005
(sprintf "%s(%d,%d): " file m.StartLine m.StartColumn), m, file
20062006

20072007
// We may also want to change Test to be 1-based
20082008
| DiagnosticStyle.Test ->
20092009
let file = file.Replace("/", "\\")
20102010

20112011
let m =
2012-
mkRange m.FileName (mkPos m.StartLine (m.StartColumn + 1)) (mkPos m.EndLine (m.EndColumn + 1))
2012+
withStartEnd (mkPos m.StartLine (m.StartColumn + 1)) (mkPos m.EndLine (m.EndColumn + 1)) m
20132013

20142014
sprintf "%s(%d,%d-%d,%d): " file m.StartLine m.StartColumn m.EndLine m.EndColumn, m, file
20152015

20162016
| DiagnosticStyle.Gcc ->
20172017
let file = file.Replace('/', Path.DirectorySeparatorChar)
20182018

20192019
let m =
2020-
mkRange m.FileName (mkPos m.StartLine (m.StartColumn + 1)) (mkPos m.EndLine (m.EndColumn + 1))
2020+
withStartEnd (mkPos m.StartLine (m.StartColumn + 1)) (mkPos m.EndLine (m.EndColumn + 1)) m
20212021

20222022
sprintf "%s:%d:%d: " file m.StartLine m.StartColumn, m, file
20232023

@@ -2033,7 +2033,7 @@ let FormatDiagnosticLocation (tcConfig: TcConfig) m : FormattedDiagnosticLocatio
20332033
let file = file.Replace("/", "\\")
20342034

20352035
let m =
2036-
mkRange m.FileName (mkPos m.StartLine (m.StartColumn + 1)) (mkPos m.EndLine (m.EndColumn + 1))
2036+
withStartEnd (mkPos m.StartLine (m.StartColumn + 1)) (mkPos m.EndLine (m.EndColumn + 1)) m
20372037

20382038
sprintf "%s(%d,%d,%d,%d): " file m.StartLine m.StartColumn m.EndLine m.EndColumn, m, file
20392039
else

src/Compiler/Service/ServiceAnalysis.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ module SimplifyNames =
373373
r.EndColumn - name.Length - (getPlidLength necessaryPlid)
374374

375375
let unnecessaryRange =
376-
mkRange r.FileName (Position.mkPos r.StartLine plidStartCol) (Position.mkPos r.EndLine necessaryPlidStartCol)
376+
withStartEnd (Position.mkPos r.StartLine plidStartCol) (Position.mkPos r.EndLine necessaryPlidStartCol) r
377377

378378
let relativeName = (String.concat "." plid) + "." + name
379379

src/Compiler/Service/ServiceParamInfoLocations.fs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ module internal ParameterLocationsImpl =
220220
_pf,
221221
wholem) ->
222222
let lidm = lidwd.Range
223-
let betweenTheBrackets = mkRange wholem.FileName mLess.Start wholem.End
223+
let betweenTheBrackets = withStart mLess.Start wholem
224224

225225
if
226226
SyntaxTraversal.rangeContainsPosEdgesExclusive betweenTheBrackets pos
@@ -290,7 +290,7 @@ module internal ParameterLocationsImpl =
290290
match fResult with
291291
| Some _ -> fResult
292292
| _ ->
293-
let typeArgsm = mkRange mLess.FileName mLess.Start wholem.End
293+
let typeArgsm = withEnd wholem.End mLess
294294

295295
if SyntaxTraversal.rangeContainsPosEdgesExclusive typeArgsm pos then
296296
// We found it, dig out ident
@@ -344,7 +344,7 @@ module internal ParameterLocationsImpl =
344344
match traverseSynExpr synExpr with
345345
| Some _ as r -> r
346346
| None ->
347-
let typeArgsm = mkRange mLess.FileName mLess.Start wholem.End
347+
let typeArgsm = withEnd wholem.End mLess
348348

349349
if
350350
SyntaxTraversal.rangeContainsPosEdgesExclusive typeArgsm pos

src/Compiler/Service/ServiceParsedInputOps.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,7 @@ module ParsedInput =
516516
|> pick expr
517517

518518
| SynExpr.DotGet (exprLeft, mDot, lidwd, _m) ->
519-
let afterDotBeforeLid = mkRange mDot.FileName mDot.End lidwd.Range.Start
519+
let afterDotBeforeLid = withStartEnd mDot.End lidwd.Range.Start mDot
520520

521521
[
522522
dive exprLeft exprLeft.Range traverseSynExpr

src/Compiler/Service/ServiceStructure.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,7 @@ module Structure =
572572
| SynValData(memberFlags = Some {
573573
MemberKind = SynMemberKind.PropertyGet | SynMemberKind.PropertySet
574574
}) ->
575-
let range = mkRange d.Range.FileName (mkPos d.Range.StartLine objectModelRange.StartColumn) d.Range.End
575+
let range = withStart (mkPos d.Range.StartLine objectModelRange.StartColumn) d.Range
576576

577577
let collapse =
578578
match synPat with

src/Compiler/SyntaxTree/ParseHelpers.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -920,7 +920,7 @@ let mkSynExprDecl (e: SynExpr) = SynModuleDecl.Expr(e, e.Range)
920920
let addAttribs attrs p = SynPat.Attrib(p, attrs, p.Range)
921921

922922
let unionRangeWithPos (r: range) p =
923-
let r2 = mkRange r.FileName p p
923+
let r2 = withStartEnd p p r
924924
unionRanges r r2
925925

926926
/// Report a good error at the end of file, e.g. for non-terminated strings

src/Compiler/SyntaxTree/PrettyNaming.fs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -965,16 +965,13 @@ let ActivePatternInfoOfValName nm (m: range) =
965965
let n = nm.IndexOf '|'
966966

967967
if n > 0 then
968-
let m1 =
969-
Range.mkRange mp.FileName mp.Start (Position.mkPos mp.StartLine (mp.StartColumn + n))
968+
let m1 = Range.withEnd (Position.mkPos mp.StartLine (mp.StartColumn + n)) mp
970969

971-
let m2 =
972-
Range.mkRange mp.FileName (Position.mkPos mp.StartLine (mp.StartColumn + n + 1)) mp.End
970+
let m2 = Range.withStart (Position.mkPos mp.StartLine (mp.StartColumn + n + 1)) mp
973971

974972
(nm[0 .. n - 1], m1) :: loop nm[n + 1 ..] m2
975973
else
976-
let m1 =
977-
Range.mkRange mp.FileName mp.Start (Position.mkPos mp.StartLine (mp.StartColumn + nm.Length))
974+
let m1 = Range.withEnd (Position.mkPos mp.StartLine (mp.StartColumn + nm.Length)) mp
978975

979976
[ (nm, m1) ]
980977

@@ -983,7 +980,7 @@ let ActivePatternInfoOfValName nm (m: range) =
983980
if IsActivePatternName nm then
984981
// Skip the '|' at each end when recovering ranges
985982
let m0 =
986-
Range.mkRange m.FileName (Position.mkPos m.StartLine (m.StartColumn + 1)) (Position.mkPos m.EndLine (m.EndColumn - 1))
983+
Range.withStartEnd (Position.mkPos m.StartLine (m.StartColumn + 1)) (Position.mkPos m.EndLine (m.EndColumn - 1)) m
987984

988985
let names = loop nm[1 .. nm.Length - 2] m0
989986
let resH, resT = List.frontAndBack names

src/Compiler/SyntaxTree/SyntaxTree.fs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -825,9 +825,8 @@ type SynExpr =
825825
| SynExpr.SequentialOrImplicitYield (_, e1, _, _, _)
826826
| SynExpr.App (_, _, e1, _, _) -> e1.RangeOfFirstPortion
827827
| SynExpr.ForEach (pat = pat; range = r) ->
828-
let start = r.Start
829828
let e = (pat.Range: range).Start
830-
mkRange r.FileName start e
829+
withEnd e r
831830
| _ -> e.Range
832831

833832
member this.IsArbExprAndThusAlreadyReportedError =

0 commit comments

Comments
 (0)