Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/release-notes/.FSharp.Compiler.Service/9.0.300.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
* 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))
* 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))
* Fix missing `null` highlighting in tooltips ([PR #18457](https://github.com/dotnet/fsharp/pull/18457))
* Fix range of SynPat.Named doesn't include accessibility ([PR #18526](https://github.com/dotnet/fsharp/pull/18526))
* Allow `_` in `use!` bindings values (lift FS1228 restriction) ([PR #18487](https://github.com/dotnet/fsharp/pull/18487))
* Make `[<CallerMemberName; Struct>]` combination work([PR #18444](https://github.com/dotnet/fsharp/pull/18444/))
* Fix code completion considers types from own namespace non-imported ([PR #18518](https://github.com/dotnet/fsharp/issues/18518))
Expand Down
6 changes: 5 additions & 1 deletion src/Compiler/pars.fsy
Original file line number Diff line number Diff line change
Expand Up @@ -3776,7 +3776,11 @@ atomicPattern:
mkSynPatMaybeVar lidwd vis (lhs parseState)
else
let synIdent = List.head lidwd.IdentsWithTrivia
SynPat.Named(synIdent, false, vis, synIdent.Range) }
let m =
match vis with
| Some vis -> unionRanges vis.Range synIdent.Range
| _ -> synIdent.Range
SynPat.Named(synIdent, false, vis, m) }

| constant
{ SynPat.Const(fst $1, snd $1) }
Expand Down
3 changes: 3 additions & 0 deletions tests/service/data/SyntaxTree/SynType/Named 01.fs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module Module

let value = 42
21 changes: 21 additions & 0 deletions tests/service/data/SyntaxTree/SynType/Named 01.fs.bsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
ImplFile
(ParsedImplFileInput
("/root/SynType/Named 01.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 (value, None), false, None, (3,4--3,9)), None,
Const (Int32 42, (3,12--3,14)), (3,4--3,9), Yes (3,0--3,14),
{ LeadingKeyword = Let (3,0--3,3)
InlineKeyword = None
EqualsRange = Some (3,10--3,11) })], (3,0--3,14))],
PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None,
(1,0--3,14), { LeadingKeyword = Module (1,0--1,6) })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
3 changes: 3 additions & 0 deletions tests/service/data/SyntaxTree/SynType/Named 02.fs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module Module

let private value = 42
23 changes: 23 additions & 0 deletions tests/service/data/SyntaxTree/SynType/Named 02.fs.bsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
ImplFile
(ParsedImplFileInput
("/root/SynType/Named 02.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 (value, None), false, Some (Private (3,4--3,11)),
(3,4--3,17)), None, Const (Int32 42, (3,20--3,22)),
(3,4--3,17), Yes (3,0--3,22),
{ LeadingKeyword = Let (3,0--3,3)
InlineKeyword = None
EqualsRange = Some (3,18--3,19) })], (3,0--3,22))],
PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None,
(1,0--3,22), { LeadingKeyword = Module (1,0--1,6) })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
3 changes: 3 additions & 0 deletions tests/service/data/SyntaxTree/SynType/Named 03.fs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module Module

let (|A|) = 0
24 changes: 24 additions & 0 deletions tests/service/data/SyntaxTree/SynType/Named 03.fs.bsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
ImplFile
(ParsedImplFileInput
("/root/SynType/Named 03.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
(|A|, Some (HasParenthesis ((3,4--3,5), (3,8--3,9)))),
false, None, (3,4--3,9)), None,
Const (Int32 0, (3,12--3,13)), (3,4--3,9), Yes (3,0--3,13),
{ LeadingKeyword = Let (3,0--3,3)
InlineKeyword = None
EqualsRange = Some (3,10--3,11) })], (3,0--3,13))],
PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None,
(1,0--3,13), { LeadingKeyword = Module (1,0--1,6) })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
3 changes: 3 additions & 0 deletions tests/service/data/SyntaxTree/SynType/Named 04.fs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module Module

let private (|A|) = 0
24 changes: 24 additions & 0 deletions tests/service/data/SyntaxTree/SynType/Named 04.fs.bsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
ImplFile
(ParsedImplFileInput
("/root/SynType/Named 04.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
(|A|, Some (HasParenthesis ((3,12--3,13), (3,16--3,17)))),
false, Some (Private (3,4--3,11)), (3,4--3,17)), None,
Const (Int32 0, (3,20--3,21)), (3,4--3,17), Yes (3,0--3,21),
{ LeadingKeyword = Let (3,0--3,3)
InlineKeyword = None
EqualsRange = Some (3,18--3,19) })], (3,0--3,21))],
PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None,
(1,0--3,21), { LeadingKeyword = Module (1,0--1,6) })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
3 changes: 3 additions & 0 deletions tests/service/data/SyntaxTree/SynType/Named 05.fs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module Module

let a, private b = 1, 2
30 changes: 30 additions & 0 deletions tests/service/data/SyntaxTree/SynType/Named 05.fs.bsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
ImplFile
(ParsedImplFileInput
("/root/SynType/Named 05.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),
Tuple
(false,
[Named (SynIdent (a, None), false, None, (3,4--3,5));
Named
(SynIdent (b, None), false, Some (Private (3,7--3,14)),
(3,7--3,16))], [(3,5--3,6)], (3,4--3,16)), None,
Tuple
(false,
[Const (Int32 1, (3,19--3,20));
Const (Int32 2, (3,22--3,23))], [(3,20--3,21)],
(3,19--3,23)), (3,4--3,16), Yes (3,0--3,23),
{ LeadingKeyword = Let (3,0--3,3)
InlineKeyword = None
EqualsRange = Some (3,17--3,18) })], (3,0--3,23))],
PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None,
(1,0--3,23), { LeadingKeyword = Module (1,0--1,6) })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
3 changes: 3 additions & 0 deletions tests/service/data/SyntaxTree/SynType/Named 06.fs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module Module

let private a, private b = 1, 2
32 changes: 32 additions & 0 deletions tests/service/data/SyntaxTree/SynType/Named 06.fs.bsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
ImplFile
(ParsedImplFileInput
("/root/SynType/Named 06.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),
Tuple
(false,
[Named
(SynIdent (a, None), false, Some (Private (3,4--3,11)),
(3,4--3,13));
Named
(SynIdent (b, None), false, Some (Private (3,15--3,22)),
(3,15--3,24))], [(3,13--3,14)], (3,4--3,24)), None,
Tuple
(false,
[Const (Int32 1, (3,27--3,28));
Const (Int32 2, (3,30--3,31))], [(3,28--3,29)],
(3,27--3,31)), (3,4--3,24), Yes (3,0--3,31),
{ LeadingKeyword = Let (3,0--3,3)
InlineKeyword = None
EqualsRange = Some (3,25--3,26) })], (3,0--3,31))],
PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None,
(1,0--3,31), { LeadingKeyword = Module (1,0--1,6) })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
3 changes: 3 additions & 0 deletions tests/service/data/SyntaxTree/SynType/Named 07.fs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module Module

let private a, b = 1, 2
31 changes: 31 additions & 0 deletions tests/service/data/SyntaxTree/SynType/Named 07.fs.bsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
ImplFile
(ParsedImplFileInput
("/root/SynType/Named 07.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),
Tuple
(false,
[Named
(SynIdent (a, None), false, Some (Private (3,4--3,11)),
(3,4--3,13));
Named (SynIdent (b, None), false, None, (3,15--3,16))],
[(3,13--3,14)], (3,4--3,16)), None,
Tuple
(false,
[Const (Int32 1, (3,19--3,20));
Const (Int32 2, (3,22--3,23))], [(3,20--3,21)],
(3,19--3,23)), (3,4--3,16), Yes (3,0--3,23),
{ LeadingKeyword = Let (3,0--3,3)
InlineKeyword = None
EqualsRange = Some (3,17--3,18) })], (3,0--3,23))],
PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None,
(1,0--3,23), { LeadingKeyword = Module (1,0--1,6) })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))
3 changes: 3 additions & 0 deletions tests/service/data/SyntaxTree/SynType/Named 08.fs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module Module

let private (1, 2) = 0
28 changes: 28 additions & 0 deletions tests/service/data/SyntaxTree/SynType/Named 08.fs.bsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
ImplFile
(ParsedImplFileInput
("/root/SynType/Named 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
(op_MultiplyMultiplyMultiplyMultiply,
Some (HasParenthesis ((3,12--3,13), (3,17--3,18)))),
false, Some (Private (3,4--3,11)), (3,4--3,18)), None,
Const (Int32 0, (3,21--3,22)), (3,4--3,18), Yes (3,0--3,22),
{ LeadingKeyword = Let (3,0--3,3)
InlineKeyword = None
EqualsRange = Some (3,19--3,20) })], (3,0--3,22))],
PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None,
(1,0--3,22), { LeadingKeyword = Module (1,0--1,6) })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))

(3,13)-(3,14) parse error Unexpected integer literal in binding
(3,12)-(3,18) parse error Attempted to parse this as an operator name, but failed
4 changes: 4 additions & 0 deletions tests/service/data/SyntaxTree/SynType/Named 09.fs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module Module

match 1 with
| private x -> ()
20 changes: 20 additions & 0 deletions tests/service/data/SyntaxTree/SynType/Named 09.fs.bsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
ImplFile
(ParsedImplFileInput
("/root/SynType/Named 09.fs", false, QualifiedNameOfFile Module, [], [],
[SynModuleOrNamespace
([Module], false, NamedModule,
[Expr
(Match
(Yes (3,0--3,12), Const (Int32 1, (3,6--3,7)),
[SynMatchClause
(Named
(SynIdent (x, None), false, Some (Private (4,2--4,9)),
(4,2--4,11)), None, Const (Unit, (4,15--4,17)),
(4,2--4,17), Yes, { ArrowRange = Some (4,12--4,14)
BarRange = Some (4,0--4,1) })],
(3,0--4,17), { MatchKeyword = (3,0--3,5)
WithKeyword = (3,8--3,12) }), (3,0--4,17))],
PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None,
(1,0--4,17), { LeadingKeyword = Module (1,0--1,6) })], (true, true),
{ ConditionalDirectives = []
CodeComments = [] }, set []))