Skip to content

Commit e0cc65a

Browse files
authored
Merge branch 'main' into fix-attr-targets
2 parents e270b88 + 172dc31 commit e0cc65a

20 files changed

+267
-1
lines changed

docs/release-notes/.FSharp.Compiler.Service/9.0.300.md

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
* Fixed [#18433](https://github.com/dotnet/fsharp/issues/18433), a rare case of an internal error in xml comment processing. ([PR #18436](https://github.com/dotnet/fsharp/pull/18436))
2626
* Fix confusing type inference error in task expression ([Issue #13789](https://github.com/dotnet/fsharp/issues/13789), [PR #18450](https://github.com/dotnet/fsharp/pull/18450))
2727
* Fix missing `null` highlighting in tooltips ([PR #18457](https://github.com/dotnet/fsharp/pull/18457))
28+
* Fix range of SynPat.Named doesn't include accessibility ([PR #18526](https://github.com/dotnet/fsharp/pull/18526))
2829
* Allow `_` in `use!` bindings values (lift FS1228 restriction) ([PR #18487](https://github.com/dotnet/fsharp/pull/18487))
2930
* Make `[<CallerMemberName; Struct>]` combination work([PR #18444](https://github.com/dotnet/fsharp/pull/18444/))
3031
* Fix code completion considers types from own namespace non-imported ([PR #18518](https://github.com/dotnet/fsharp/issues/18518))

src/Compiler/pars.fsy

+5-1
Original file line numberDiff line numberDiff line change
@@ -3776,7 +3776,11 @@ atomicPattern:
37763776
mkSynPatMaybeVar lidwd vis (lhs parseState)
37773777
else
37783778
let synIdent = List.head lidwd.IdentsWithTrivia
3779-
SynPat.Named(synIdent, false, vis, synIdent.Range) }
3779+
let m =
3780+
match vis with
3781+
| Some vis -> unionRanges vis.Range synIdent.Range
3782+
| _ -> synIdent.Range
3783+
SynPat.Named(synIdent, false, vis, m) }
37803784

37813785
| constant
37823786
{ SynPat.Const(fst $1, snd $1) }
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module Module
2+
3+
let value = 42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
ImplFile
2+
(ParsedImplFileInput
3+
("/root/SynType/Named 01.fs", false, QualifiedNameOfFile Module, [], [],
4+
[SynModuleOrNamespace
5+
([Module], false, NamedModule,
6+
[Let
7+
(false,
8+
[SynBinding
9+
(None, Normal, false, false, [],
10+
PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector),
11+
SynValData
12+
(None, SynValInfo ([], SynArgInfo ([], false, None)), None),
13+
Named (SynIdent (value, None), false, None, (3,4--3,9)), None,
14+
Const (Int32 42, (3,12--3,14)), (3,4--3,9), Yes (3,0--3,14),
15+
{ LeadingKeyword = Let (3,0--3,3)
16+
InlineKeyword = None
17+
EqualsRange = Some (3,10--3,11) })], (3,0--3,14))],
18+
PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None,
19+
(1,0--3,14), { LeadingKeyword = Module (1,0--1,6) })], (true, true),
20+
{ ConditionalDirectives = []
21+
CodeComments = [] }, set []))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module Module
2+
3+
let private value = 42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
ImplFile
2+
(ParsedImplFileInput
3+
("/root/SynType/Named 02.fs", false, QualifiedNameOfFile Module, [], [],
4+
[SynModuleOrNamespace
5+
([Module], false, NamedModule,
6+
[Let
7+
(false,
8+
[SynBinding
9+
(None, Normal, false, false, [],
10+
PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector),
11+
SynValData
12+
(None, SynValInfo ([], SynArgInfo ([], false, None)), None),
13+
Named
14+
(SynIdent (value, None), false, Some (Private (3,4--3,11)),
15+
(3,4--3,17)), None, Const (Int32 42, (3,20--3,22)),
16+
(3,4--3,17), Yes (3,0--3,22),
17+
{ LeadingKeyword = Let (3,0--3,3)
18+
InlineKeyword = None
19+
EqualsRange = Some (3,18--3,19) })], (3,0--3,22))],
20+
PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None,
21+
(1,0--3,22), { LeadingKeyword = Module (1,0--1,6) })], (true, true),
22+
{ ConditionalDirectives = []
23+
CodeComments = [] }, set []))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module Module
2+
3+
let (|A|) = 0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
ImplFile
2+
(ParsedImplFileInput
3+
("/root/SynType/Named 03.fs", false, QualifiedNameOfFile Module, [], [],
4+
[SynModuleOrNamespace
5+
([Module], false, NamedModule,
6+
[Let
7+
(false,
8+
[SynBinding
9+
(None, Normal, false, false, [],
10+
PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector),
11+
SynValData
12+
(None, SynValInfo ([], SynArgInfo ([], false, None)), None),
13+
Named
14+
(SynIdent
15+
(|A|, Some (HasParenthesis ((3,4--3,5), (3,8--3,9)))),
16+
false, None, (3,4--3,9)), None,
17+
Const (Int32 0, (3,12--3,13)), (3,4--3,9), Yes (3,0--3,13),
18+
{ LeadingKeyword = Let (3,0--3,3)
19+
InlineKeyword = None
20+
EqualsRange = Some (3,10--3,11) })], (3,0--3,13))],
21+
PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None,
22+
(1,0--3,13), { LeadingKeyword = Module (1,0--1,6) })], (true, true),
23+
{ ConditionalDirectives = []
24+
CodeComments = [] }, set []))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module Module
2+
3+
let private (|A|) = 0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
ImplFile
2+
(ParsedImplFileInput
3+
("/root/SynType/Named 04.fs", false, QualifiedNameOfFile Module, [], [],
4+
[SynModuleOrNamespace
5+
([Module], false, NamedModule,
6+
[Let
7+
(false,
8+
[SynBinding
9+
(None, Normal, false, false, [],
10+
PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector),
11+
SynValData
12+
(None, SynValInfo ([], SynArgInfo ([], false, None)), None),
13+
Named
14+
(SynIdent
15+
(|A|, Some (HasParenthesis ((3,12--3,13), (3,16--3,17)))),
16+
false, Some (Private (3,4--3,11)), (3,4--3,17)), None,
17+
Const (Int32 0, (3,20--3,21)), (3,4--3,17), Yes (3,0--3,21),
18+
{ LeadingKeyword = Let (3,0--3,3)
19+
InlineKeyword = None
20+
EqualsRange = Some (3,18--3,19) })], (3,0--3,21))],
21+
PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None,
22+
(1,0--3,21), { LeadingKeyword = Module (1,0--1,6) })], (true, true),
23+
{ ConditionalDirectives = []
24+
CodeComments = [] }, set []))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module Module
2+
3+
let a, private b = 1, 2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
ImplFile
2+
(ParsedImplFileInput
3+
("/root/SynType/Named 05.fs", false, QualifiedNameOfFile Module, [], [],
4+
[SynModuleOrNamespace
5+
([Module], false, NamedModule,
6+
[Let
7+
(false,
8+
[SynBinding
9+
(None, Normal, false, false, [],
10+
PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector),
11+
SynValData
12+
(None, SynValInfo ([], SynArgInfo ([], false, None)), None),
13+
Tuple
14+
(false,
15+
[Named (SynIdent (a, None), false, None, (3,4--3,5));
16+
Named
17+
(SynIdent (b, None), false, Some (Private (3,7--3,14)),
18+
(3,7--3,16))], [(3,5--3,6)], (3,4--3,16)), None,
19+
Tuple
20+
(false,
21+
[Const (Int32 1, (3,19--3,20));
22+
Const (Int32 2, (3,22--3,23))], [(3,20--3,21)],
23+
(3,19--3,23)), (3,4--3,16), Yes (3,0--3,23),
24+
{ LeadingKeyword = Let (3,0--3,3)
25+
InlineKeyword = None
26+
EqualsRange = Some (3,17--3,18) })], (3,0--3,23))],
27+
PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None,
28+
(1,0--3,23), { LeadingKeyword = Module (1,0--1,6) })], (true, true),
29+
{ ConditionalDirectives = []
30+
CodeComments = [] }, set []))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module Module
2+
3+
let private a, private b = 1, 2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
ImplFile
2+
(ParsedImplFileInput
3+
("/root/SynType/Named 06.fs", false, QualifiedNameOfFile Module, [], [],
4+
[SynModuleOrNamespace
5+
([Module], false, NamedModule,
6+
[Let
7+
(false,
8+
[SynBinding
9+
(None, Normal, false, false, [],
10+
PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector),
11+
SynValData
12+
(None, SynValInfo ([], SynArgInfo ([], false, None)), None),
13+
Tuple
14+
(false,
15+
[Named
16+
(SynIdent (a, None), false, Some (Private (3,4--3,11)),
17+
(3,4--3,13));
18+
Named
19+
(SynIdent (b, None), false, Some (Private (3,15--3,22)),
20+
(3,15--3,24))], [(3,13--3,14)], (3,4--3,24)), None,
21+
Tuple
22+
(false,
23+
[Const (Int32 1, (3,27--3,28));
24+
Const (Int32 2, (3,30--3,31))], [(3,28--3,29)],
25+
(3,27--3,31)), (3,4--3,24), Yes (3,0--3,31),
26+
{ LeadingKeyword = Let (3,0--3,3)
27+
InlineKeyword = None
28+
EqualsRange = Some (3,25--3,26) })], (3,0--3,31))],
29+
PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None,
30+
(1,0--3,31), { LeadingKeyword = Module (1,0--1,6) })], (true, true),
31+
{ ConditionalDirectives = []
32+
CodeComments = [] }, set []))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module Module
2+
3+
let private a, b = 1, 2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
ImplFile
2+
(ParsedImplFileInput
3+
("/root/SynType/Named 07.fs", false, QualifiedNameOfFile Module, [], [],
4+
[SynModuleOrNamespace
5+
([Module], false, NamedModule,
6+
[Let
7+
(false,
8+
[SynBinding
9+
(None, Normal, false, false, [],
10+
PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector),
11+
SynValData
12+
(None, SynValInfo ([], SynArgInfo ([], false, None)), None),
13+
Tuple
14+
(false,
15+
[Named
16+
(SynIdent (a, None), false, Some (Private (3,4--3,11)),
17+
(3,4--3,13));
18+
Named (SynIdent (b, None), false, None, (3,15--3,16))],
19+
[(3,13--3,14)], (3,4--3,16)), None,
20+
Tuple
21+
(false,
22+
[Const (Int32 1, (3,19--3,20));
23+
Const (Int32 2, (3,22--3,23))], [(3,20--3,21)],
24+
(3,19--3,23)), (3,4--3,16), Yes (3,0--3,23),
25+
{ LeadingKeyword = Let (3,0--3,3)
26+
InlineKeyword = None
27+
EqualsRange = Some (3,17--3,18) })], (3,0--3,23))],
28+
PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None,
29+
(1,0--3,23), { LeadingKeyword = Module (1,0--1,6) })], (true, true),
30+
{ ConditionalDirectives = []
31+
CodeComments = [] }, set []))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module Module
2+
3+
let private (1, 2) = 0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
ImplFile
2+
(ParsedImplFileInput
3+
("/root/SynType/Named 08.fs", false, QualifiedNameOfFile Module, [], [],
4+
[SynModuleOrNamespace
5+
([Module], false, NamedModule,
6+
[Let
7+
(false,
8+
[SynBinding
9+
(None, Normal, false, false, [],
10+
PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector),
11+
SynValData
12+
(None, SynValInfo ([], SynArgInfo ([], false, None)), None),
13+
Named
14+
(SynIdent
15+
(op_MultiplyMultiplyMultiplyMultiply,
16+
Some (HasParenthesis ((3,12--3,13), (3,17--3,18)))),
17+
false, Some (Private (3,4--3,11)), (3,4--3,18)), None,
18+
Const (Int32 0, (3,21--3,22)), (3,4--3,18), Yes (3,0--3,22),
19+
{ LeadingKeyword = Let (3,0--3,3)
20+
InlineKeyword = None
21+
EqualsRange = Some (3,19--3,20) })], (3,0--3,22))],
22+
PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None,
23+
(1,0--3,22), { LeadingKeyword = Module (1,0--1,6) })], (true, true),
24+
{ ConditionalDirectives = []
25+
CodeComments = [] }, set []))
26+
27+
(3,13)-(3,14) parse error Unexpected integer literal in binding
28+
(3,12)-(3,18) parse error Attempted to parse this as an operator name, but failed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
module Module
2+
3+
match 1 with
4+
| private x -> ()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
ImplFile
2+
(ParsedImplFileInput
3+
("/root/SynType/Named 09.fs", false, QualifiedNameOfFile Module, [], [],
4+
[SynModuleOrNamespace
5+
([Module], false, NamedModule,
6+
[Expr
7+
(Match
8+
(Yes (3,0--3,12), Const (Int32 1, (3,6--3,7)),
9+
[SynMatchClause
10+
(Named
11+
(SynIdent (x, None), false, Some (Private (4,2--4,9)),
12+
(4,2--4,11)), None, Const (Unit, (4,15--4,17)),
13+
(4,2--4,17), Yes, { ArrowRange = Some (4,12--4,14)
14+
BarRange = Some (4,0--4,1) })],
15+
(3,0--4,17), { MatchKeyword = (3,0--3,5)
16+
WithKeyword = (3,8--3,12) }), (3,0--4,17))],
17+
PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None,
18+
(1,0--4,17), { LeadingKeyword = Module (1,0--1,6) })], (true, true),
19+
{ ConditionalDirectives = []
20+
CodeComments = [] }, set []))

0 commit comments

Comments
 (0)