From 2b17bb20115cbfd0445d2f335269e3d4a26901af Mon Sep 17 00:00:00 2001 From: Eugene Auduchinok Date: Thu, 7 Mar 2024 11:12:17 -0400 Subject: [PATCH 1/2] Completion: fix completion in empty dot lambda prefix --- src/Compiler/SyntaxTree/SyntaxTreeOps.fs | 2 ++ tests/service/CompletionTests.fs | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Compiler/SyntaxTree/SyntaxTreeOps.fs b/src/Compiler/SyntaxTree/SyntaxTreeOps.fs index a02591eb650..f775e47de8c 100644 --- a/src/Compiler/SyntaxTree/SyntaxTreeOps.fs +++ b/src/Compiler/SyntaxTree/SyntaxTreeOps.fs @@ -100,6 +100,8 @@ let rec pushUnaryArg expr arg = | SynExpr.TypeApp(innerExpr, mLess, tyargs, mCommas, mGreater, mTypars, m) -> let innerExpr = pushUnaryArg innerExpr arg SynExpr.TypeApp(innerExpr, mLess, tyargs, mCommas, mGreater, mTypars, m) + | SynExpr.ArbitraryAfterError(_, m) when m.Start = m.End -> + SynExpr.DiscardAfterMissingQualificationAfterDot(SynExpr.Ident arg, m.StartRange, unionRanges arg.idRange m) | _ -> errorR (Error(FSComp.SR.tcDotLambdaAtNotSupportedExpression (), expr.Range)) expr diff --git a/tests/service/CompletionTests.fs b/tests/service/CompletionTests.fs index 349647e0fa3..18145cf4907 100644 --- a/tests/service/CompletionTests.fs +++ b/tests/service/CompletionTests.fs @@ -71,4 +71,12 @@ let ``Underscore dot lambda - method completion`` () = let myFancyFunc (x:string) = x |> _.ToL""" - assertHasItemWithNames ["ToLower"] info \ No newline at end of file + assertHasItemWithNames ["ToLower"] info + +[] +let ``Underscore dot lambda - No prefix`` () = + let info = getCompletionInfo "[s] |> List.map _. " (3, 18) """ +let s = "" +[s] |> List.map _. +""" + assertHasItemWithNames ["Length"] info From ae49e28b75aa7d378413de4b3d2401eba19c0904 Mon Sep 17 00:00:00 2001 From: Eugene Auduchinok Date: Fri, 8 Mar 2024 11:40:32 -0400 Subject: [PATCH 2/2] Release notes --- docs/release-notes/.FSharp.Compiler.Service/8.0.300.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/release-notes/.FSharp.Compiler.Service/8.0.300.md b/docs/release-notes/.FSharp.Compiler.Service/8.0.300.md index 148f3734185..63a7ca8f08e 100644 --- a/docs/release-notes/.FSharp.Compiler.Service/8.0.300.md +++ b/docs/release-notes/.FSharp.Compiler.Service/8.0.300.md @@ -16,6 +16,7 @@ * Enforce AttributeTargets on let values and functions. ([PR #16692](https://github.com/dotnet/fsharp/pull/16692)) * Enforce AttributeTargets on union case declarations. ([PR #16764](https://github.com/dotnet/fsharp/pull/16764)) * Disallow using base to invoke an abstract base method. ([Issue #13926](https://github.com/dotnet/fsharp/issues/13926), [PR #16773](https://github.com/dotnet/fsharp/pull/16773)) +* Completion: fix completion in empty dot lambda prefix ([#16829](https://github.com/dotnet/fsharp/pull/16829)) ### Added