Skip to content

Commit a3f4ed3

Browse files
authored
Merge pull request #1180 from fsharp/nightly
Merge nightly into main for the release!
2 parents ee65267 + 9cf7b31 commit a3f4ed3

File tree

14 files changed

+76
-66
lines changed

14 files changed

+76
-66
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ jobs:
102102
BuildNet8: ${{ matrix.build_net8 }}
103103

104104
- name: Run and report tests
105-
run: dotnet test -c Release -f ${{ matrix.test_tfm }} --no-restore --no-build --no-build --logger GitHubActions /p:AltCover=true /p:AltCoverAssemblyExcludeFilter="System.Reactive|FSharp.Compiler.Service|Ionide.ProjInfo|FSharp.Analyzers|Analyzer|Humanizer|FSharp.Core|FSharp.DependencyManager" -- Expecto.fail-on-focused-tests=true
105+
run: dotnet test -c Release -f ${{ matrix.test_tfm }} --no-restore --no-build --no-build --logger GitHubActions /p:AltCover=true /p:AltCoverAssemblyExcludeFilter="System.Reactive|FSharp.Compiler.Service|Ionide.ProjInfo|FSharp.Analyzers|Analyzer|Humanizer|FSharp.Core|FSharp.DependencyManager" -- Expecto.fail-on-focused-tests=true --blame-hang --blame-hang-timeout 1m
106106
working-directory: test/FsAutoComplete.Tests.Lsp
107107
env:
108108
BuildNet7: ${{ matrix.build_net7 }}

paket.dependencies

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ framework: netstandard2.0, netstandard2.1, net6.0, net7.0, net8.0
44

55
source https://api.nuget.org/v3/index.json
66
# this is the FCS nightly feed, re-enable at your own risk!
7-
#source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet7/nuget/v3/index.json
7+
# source: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet8/nuget/v3/index.json
88
#source: ./libs
99
storage: none
1010
strategy: min
@@ -13,7 +13,7 @@ lowest_matching: true
1313

1414
nuget BenchmarkDotNet 0.13.5
1515
nuget Fantomas.Client >= 0.9
16-
nuget FSharp.Compiler.Service >= 43.7.400
16+
nuget FSharp.Compiler.Service >= 43.8.100
1717
nuget Ionide.ProjInfo >= 0.62.0
1818
nuget Ionide.ProjInfo.FCS >= 0.62.0
1919
nuget Ionide.ProjInfo.ProjectSystem >= 0.62.0

paket.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ NUGET
5959
FSharp.Compiler.Service (>= 41.0.1) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net5.0)) (&& (== netstandard2.1) (>= net5.0))
6060
FSharp.Core (>= 6.0.1) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net5.0)) (&& (== netstandard2.1) (>= net5.0))
6161
McMaster.NETCore.Plugins (>= 1.4) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net5.0)) (&& (== netstandard2.1) (>= net5.0))
62-
FSharp.Compiler.Service (43.7.400)
63-
FSharp.Core (7.0.400)
62+
FSharp.Compiler.Service (43.8.100)
63+
FSharp.Core (8.0.100)
6464
System.Buffers (>= 4.5.1)
6565
System.Collections.Immutable (>= 7.0)
6666
System.Diagnostics.DiagnosticSource (>= 7.0.2)
@@ -74,7 +74,7 @@ NUGET
7474
FSharp.Control.Reactive (5.0.5) - restriction: || (== net6.0) (== net7.0) (== net8.0) (&& (== netstandard2.0) (>= net6.0)) (&& (== netstandard2.1) (>= net6.0))
7575
FSharp.Core (>= 4.7.2)
7676
System.Reactive (>= 5.0 < 6.0)
77-
FSharp.Core (7.0.400)
77+
FSharp.Core (8.0.100)
7878
FSharp.Data.Adaptive (1.2.13)
7979
FSharp.Core (>= 4.7)
8080
System.Reflection.Emit.Lightweight (>= 4.6)

src/FsAutoComplete.Core/AbstractClassStubGenerator.fs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ type AbstractClassData =
2929

3030
let private (|ExplicitCtor|_|) =
3131
function
32-
| SynMemberDefn.Member(SynBinding(valData = SynValData(Some({ MemberKind = SynMemberKind.Constructor }), _, _)), _) ->
32+
| SynMemberDefn.Member(
33+
memberDefn = SynBinding(valData = SynValData(memberFlags = Some({ MemberKind = SynMemberKind.Constructor })))) ->
3334
Some()
3435
| _ -> None
3536

src/FsAutoComplete.Core/CodeGeneration.fs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -578,14 +578,14 @@ module CodeGenerationUtils =
578578
/// We also get the range of the leading keyword to establish indent position
579579
let (|MemberNamePlusRangeAndKeywordRange|_|) =
580580
function
581-
| SynBinding(valData = SynValData(Some mf, _, _); headPat = LongIdentPattern(name, range); trivia = trivia) when
581+
| SynBinding(valData = SynValData(memberFlags = Some mf); headPat = LongIdentPattern(name, range); trivia = trivia) when
582582
mf.MemberKind = SynMemberKind.PropertyGet
583583
->
584584
if name.StartsWith("get_", StringComparison.Ordinal) then
585585
Some(name, range, trivia.LeadingKeyword.Range)
586586
else
587587
Some("get_" + name, range, trivia.LeadingKeyword.Range)
588-
| SynBinding(valData = SynValData(Some mf, _, _); headPat = LongIdentPattern(name, range); trivia = trivia) when
588+
| SynBinding(valData = SynValData(memberFlags = Some mf); headPat = LongIdentPattern(name, range); trivia = trivia) when
589589
mf.MemberKind = SynMemberKind.PropertySet
590590
->
591591
if name.StartsWith("set_", StringComparison.Ordinal) then
@@ -801,9 +801,11 @@ module CodeGenerationUtils =
801801

802802
let rec (|RationalConst|) =
803803
function
804-
| SynRationalConst.Integer i -> string i
805-
| SynRationalConst.Rational(numerator, denominator, _) -> sprintf "(%i/%i)" numerator denominator
806-
| SynRationalConst.Negate(RationalConst s) -> sprintf "- %s" s
804+
| SynRationalConst.Integer(value = i) -> string i
805+
| SynRationalConst.Rational(numerator = numerator; denominator = denominator) ->
806+
sprintf "(%i/%i)" numerator denominator
807+
| SynRationalConst.Negate(rationalConst = RationalConst s) -> sprintf "- %s" s
808+
| SynRationalConst.Paren(rationalConst = inner) -> (|RationalConst|) inner
807809

808810
let rec (|TypeIdent|_|) =
809811
function

src/FsAutoComplete.Core/FCSPatches.fs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,8 @@ module SyntaxTreeOps =
461461
| SynExpr.YieldOrReturnFrom(_, e, _)
462462
| SynExpr.DoBang(e, _)
463463
| SynExpr.Fixed(e, _)
464-
| SynExpr.Paren(e, _, _, _) -> walkExpr e
464+
| SynExpr.Paren(e, _, _, _)
465+
| SynExpr.DotLambda(expr = e) -> walkExpr e
465466

466467
| SynExpr.NamedIndexedPropertySet(_, e1, e2, _)
467468
| SynExpr.DotSet(e1, _, e2, _)
@@ -495,7 +496,8 @@ module SyntaxTreeOps =
495496
yield! bindings ]
496497

497498
| SynExpr.ForEach(enumExpr = e1; bodyExpr = e2)
498-
| SynExpr.While(whileExpr = e1; doExpr = e2) -> walkExpr e1 || walkExpr e2
499+
| SynExpr.While(whileExpr = e1; doExpr = e2)
500+
| SynExpr.WhileBang(whileExpr = e1; doExpr = e2) -> walkExpr e1 || walkExpr e2
499501

500502
| SynExpr.For(identBody = e1; toBody = e2; doBody = e3) -> walkExpr e1 || walkExpr e2 || walkExpr e3
501503

src/FsAutoComplete.Core/Lexer.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ module Lexer =
6969
| _ -> defines, langVersion)
7070

7171
let sourceTokenizer =
72-
FSharpSourceTokenizer(Seq.toList defines, Some "/tmp.fsx", langVersion)
72+
FSharpSourceTokenizer(Seq.toList defines, Some "/tmp.fsx", langVersion, None)
7373

7474
let lineTokenizer = sourceTokenizer.CreateLineTokenizer lineStr
7575

src/FsAutoComplete.Core/ParseAndCheckResults.fs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,14 @@ type ParseAndCheckResults
558558
if symbol.IsPropertyGetterMethod then
559559
Ok(typ, [], [])
560560
else
561+
let symbol =
562+
// Symbol is a property with both get and set.
563+
// Take the setter symbol in this case.
564+
if symbol.HasGetterMethod && symbol.HasSetterMethod then
565+
symbol.SetterMethod
566+
else
567+
symbol
568+
561569
let parms =
562570
symbol.CurriedParameterGroups
563571
|> Seq.map (
@@ -664,6 +672,7 @@ type ParseAndCheckResults
664672
| CompletionItemKind.Argument -> 4
665673
| CompletionItemKind.Other -> 5
666674
| CompletionItemKind.Method(isExtension = true) -> 6
675+
| CompletionItemKind.SuggestedName -> 7
667676

668677
let decls =
669678
match filter with

src/FsAutoComplete.Core/UnionPatternMatchCaseGenerator.fs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ let private clauseIsCandidateForCodeGen (cursorPos: Position) (SynMatchClause(pa
6060
| SynPat.Null _
6161
| SynPat.IsInst _
6262
| SynPat.QuoteExpr _
63-
| SynPat.DeprecatedCharRange _
6463
| SynPat.InstanceMember _
6564
| SynPat.FromParseError _
6665
| SynPat.As _
@@ -306,7 +305,6 @@ let getWrittenCases (patMatchExpr: PatternMatchExpr) =
306305
| SynPat.InstanceMember(_, _, _, _, _)
307306
| SynPat.IsInst(_, _)
308307
| SynPat.QuoteExpr(_, _)
309-
| SynPat.DeprecatedCharRange(_, _, _)
310308
| SynPat.ListCons _
311309
| SynPat.FromParseError(_, _) -> false
312310

src/FsAutoComplete.Core/UntypedAstUtils.fs

Lines changed: 41 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ module Syntax =
8888

8989
let rec walkImplFileInput (ParsedImplFileInput(contents = moduleOrNamespaceList)) =
9090
List.iter walkSynModuleOrNamespace moduleOrNamespaceList
91+
()
9192

9293
and walkSynModuleOrNamespace (SynModuleOrNamespace(decls = decls; attribs = AllAttrs attrs; range = r) as s) =
9394
walker.WalkSynModuleOrNamespace s
@@ -96,9 +97,10 @@ module Syntax =
9697

9798
and walkAttribute (attr: SynAttribute) = walkExpr attr.ArgExpr
9899

99-
and walkTyparDecl (SynTyparDecl(attributes = AllAttrs attrs; Item2 = typar)) =
100+
and walkTyparDecl (SynTyparDecl(attributes = AllAttrs attrs; typar = typar; intersectionConstraints = ts)) =
100101
List.iter walkAttribute attrs
101102
walkTypar typar
103+
List.iter walkType ts
102104

103105
and walkTyparDecls (typars: SynTyparDecls) =
104106
typars.TyparDecls |> List.iter walkTyparDecl
@@ -155,7 +157,6 @@ module Syntax =
155157
| SynPat.Record(_, r) -> ()
156158
| SynPat.Null(r) -> ()
157159
| SynPat.OptionalVal(_, r) -> ()
158-
| SynPat.DeprecatedCharRange(_, _, r) -> ()
159160
| SynPat.InstanceMember(_, _, _, accessibility, r) -> ()
160161
| SynPat.FromParseError(_, r) -> ()
161162
| SynPat.As(lpat, rpat, r) ->
@@ -223,6 +224,9 @@ module Syntax =
223224
walkType lhs
224225
walkType rhs
225226
| SynType.FromParseError(r) -> ()
227+
| SynType.Intersection(typar, types, _, _) ->
228+
Option.iter walkTypar typar
229+
List.iter walkType types
226230

227231
and walkClause (SynMatchClause(pat, e1, e2, r, _, _) as s) =
228232
walker.WalkClause s
@@ -245,20 +249,23 @@ module Syntax =
245249
walker.WalkExpr s
246250

247251
match s with
248-
| SynExpr.Typed(e, _, r) -> walkExpr e
249-
| SynExpr.Paren(e, _, _, r)
250-
| SynExpr.Quote(_, _, e, _, r)
251-
| SynExpr.InferredUpcast(e, r)
252-
| SynExpr.InferredDowncast(e, r)
253-
| SynExpr.AddressOf(_, e, _, r)
254-
| SynExpr.DoBang(e, r)
255-
| SynExpr.YieldOrReturn(_, e, r)
256-
| SynExpr.ArrayOrListComputed(_, e, r)
257-
| SynExpr.ComputationExpr(_, e, r)
258-
| SynExpr.Do(e, r)
259-
| SynExpr.Assert(e, r)
260-
| SynExpr.Lazy(e, r)
261-
| SynExpr.YieldOrReturnFrom(_, e, r) -> walkExpr e
252+
| SynExpr.Typed(expr = e)
253+
| SynExpr.Paren(expr = e)
254+
| SynExpr.InferredUpcast(expr = e)
255+
| SynExpr.InferredDowncast(expr = e)
256+
| SynExpr.AddressOf(expr = e)
257+
| SynExpr.DoBang(expr = e)
258+
| SynExpr.YieldOrReturn(expr = e)
259+
| SynExpr.ArrayOrListComputed(expr = e)
260+
| SynExpr.ComputationExpr(expr = e)
261+
| SynExpr.Do(expr = e)
262+
| SynExpr.Assert(expr = e)
263+
| SynExpr.Lazy(expr = e)
264+
| SynExpr.YieldOrReturnFrom(expr = e)
265+
| SynExpr.DotLambda(expr = e) -> walkExpr e
266+
| SynExpr.Quote(operator, _, quotedExpr, _, _) ->
267+
walkExpr operator
268+
walkExpr quotedExpr
262269
| SynExpr.SequentialOrImplicitYield(_, e1, e2, ifNotE, r) ->
263270
walkExpr e1
264271
walkExpr e2
@@ -337,7 +344,7 @@ module Syntax =
337344
walkType t
338345
walkMemberSig sign
339346
walkExpr e
340-
| SynExpr.Const(SynConst.Measure(_, _, m), r) -> walkMeasure m
347+
| SynExpr.Const(SynConst.Measure(synMeasure = m), r) -> walkMeasure m
341348
| SynExpr.Const(_, r) -> ()
342349
| SynExpr.AnonRecd(isStruct, copyInfo, recordFields, r, trivia) -> ()
343350
| SynExpr.Sequential(seqPoint, isTrueSeq, expr1, expr2, r) -> ()
@@ -368,22 +375,27 @@ module Syntax =
368375
walkExpr e1
369376
walkExpr e2
370377
| SynExpr.Typar(t, r) -> walkTypar t
378+
| SynExpr.WhileBang(whileExpr = whileExpr; doExpr = doExpr) ->
379+
walkExpr whileExpr
380+
walkExpr doExpr
371381

372382
and walkMeasure s =
373383
walker.WalkMeasure s
374384

375385
match s with
376-
| SynMeasure.Product(m1, m2, r)
377-
| SynMeasure.Divide(m1, m2, r) ->
386+
| SynMeasure.Product(measure1 = m1; measure2 = m2) ->
378387
walkMeasure m1
379388
walkMeasure m2
389+
| SynMeasure.Divide(m1, _, m2, r) ->
390+
Option.iter walkMeasure m1
391+
walkMeasure m2
380392
| SynMeasure.Named(longIdent, r) -> ()
381393
| SynMeasure.Seq(ms, r) -> List.iter walkMeasure ms
382-
| SynMeasure.Power(m, _, r) -> walkMeasure m
394+
| SynMeasure.Power(m, _, _, r) -> walkMeasure m
383395
| SynMeasure.Var(ty, r) -> walkTypar ty
384396
| SynMeasure.Paren(m, r) -> walkMeasure m
385-
| SynMeasure.One
386-
| SynMeasure.Anon _ -> ()
397+
| SynMeasure.One(_)
398+
| SynMeasure.Anon(_) -> ()
387399

388400
and walkSimplePat s =
389401
walker.WalkSimplePat s
@@ -423,14 +435,7 @@ module Syntax =
423435
| SynMemberSig.ValField(f, r) -> walkField f
424436
| SynMemberSig.NestedType(SynTypeDefnSig(typeInfo = info; typeRepr = repr; members = memberSigs), r) ->
425437

426-
let isTypeExtensionOrAlias =
427-
match repr with
428-
| SynTypeDefnSigRepr.Simple(SynTypeDefnSimpleRepr.TypeAbbrev _, _)
429-
| SynTypeDefnSigRepr.ObjectModel(SynTypeDefnKind.Abbrev, _, _)
430-
| SynTypeDefnSigRepr.ObjectModel(SynTypeDefnKind.Augmentation _, _, _) -> true
431-
| _ -> false
432-
433-
walkComponentInfo isTypeExtensionOrAlias info
438+
walkComponentInfo info
434439
walkTypeDefnSigRepr repr
435440
List.iter walkMemberSig memberSigs
436441

@@ -492,7 +497,6 @@ module Syntax =
492497
| SynTypeDefnSimpleRepr.Exception(_) -> ()
493498

494499
and walkComponentInfo
495-
isTypeExtensionOrAlias
496500
(SynComponentInfo(
497501
attributes = AllAttrs attrs; typeParams = typars; constraints = constraints; longId = longIdent; range = r) as s)
498502
=
@@ -520,14 +524,7 @@ module Syntax =
520524
and walkTypeDefn (SynTypeDefn(info, repr, members, implicitCtor, r, _) as s) =
521525
walker.WalkTypeDefn s
522526

523-
let isTypeExtensionOrAlias =
524-
match repr with
525-
| SynTypeDefnRepr.ObjectModel(SynTypeDefnKind.Augmentation _, _, _)
526-
| SynTypeDefnRepr.ObjectModel(SynTypeDefnKind.Abbrev, _, _)
527-
| SynTypeDefnRepr.Simple(SynTypeDefnSimpleRepr.TypeAbbrev _, _) -> true
528-
| _ -> false
529-
530-
walkComponentInfo isTypeExtensionOrAlias info
527+
walkComponentInfo info
531528
walkTypeDefnRepr repr
532529
Option.iter walkMember implicitCtor
533530
List.iter walkMember members
@@ -538,7 +535,7 @@ module Syntax =
538535
match decl with
539536
| SynModuleDecl.NamespaceFragment fragment -> walkSynModuleOrNamespace fragment
540537
| SynModuleDecl.NestedModule(info, _, modules, _, r, _) ->
541-
walkComponentInfo false info
538+
walkComponentInfo info
542539
List.iter walkSynModuleDecl modules
543540
| SynModuleDecl.Let(_, bindings, r) -> List.iter walkBinding bindings
544541
| SynModuleDecl.Expr(expr, r) -> walkExpr expr
@@ -549,6 +546,7 @@ module Syntax =
549546
| SynModuleDecl.Open(longDotId, r) -> ()
550547
| SynModuleDecl.HashDirective(_, r) -> ()
551548

549+
552550
match input with
553551
| ParsedInput.ImplFile input -> walkImplFileInput input
554552
| _ -> ()
@@ -627,9 +625,9 @@ module FoldingRange =
627625
| SynMeasure.Seq(range = r)
628626
| SynMeasure.Power(range = r)
629627
| SynMeasure.Var(range = r)
630-
| SynMeasure.Paren(range = r) -> addIfInside r
631-
| SynMeasure.One
632-
| SynMeasure.Anon _ -> ()
628+
| SynMeasure.Paren(range = r)
629+
| SynMeasure.One(range = r)
630+
| SynMeasure.Anon(range = r) -> addIfInside r
633631

634632
override _.WalkSimplePat p = addIfInside p.Range
635633
override _.WalkField(SynField(range = r)) = addIfInside r

0 commit comments

Comments
 (0)