File tree Expand file tree Collapse file tree 2 files changed +31
-3
lines changed
tests/FSharp.Compiler.Service.Tests Expand file tree Collapse file tree 2 files changed +31
-3
lines changed Original file line number Diff line number Diff line change @@ -5429,6 +5429,8 @@ let rec TcModuleOrNamespaceElementNonMutRec (cenv: cenv) parent typeNames scopem
54295429 let envNS = LocateEnv kind.IsModule cenv.thisCcu env enclosingNamespacePath
54305430 let envNS = ImplicitlyOpenOwnNamespace cenv.tcSink g cenv.amap m enclosingNamespacePath envNS
54315431
5432+ CallEnvSink cenv.tcSink ( scopem, envNS.NameEnv, env.eAccessRights)
5433+
54325434 let modTyNS = envNS.eModuleOrNamespaceTypeAccumulator.Value
54335435 let modTyRoot , modulNSs = BuildRootModuleType enclosingNamespacePath envNS.eCompPath modTyNS
54345436 let modulNSOpt = List.tryHead modulNSs
Original file line number Diff line number Diff line change @@ -13,11 +13,17 @@ let getCompletionInfo source =
1313let getCompletionItemNames ( completionInfo : DeclarationListInfo ) =
1414 completionInfo.Items |> Array.map ( fun item -> item.NameInCode)
1515
16- let assertHasItemWithNames names ( completionInfo : DeclarationListInfo ) =
16+ let private assertItemsWithNames contains names ( completionInfo : DeclarationListInfo ) =
1717 let itemNames = getCompletionItemNames completionInfo |> set
1818
1919 for name in names do
20- Assert.True( Set.contains name itemNames, $" {name} not found in {itemNames}" )
20+ Assert.True( Set.contains name itemNames = contains)
21+
22+ let assertHasItemWithNames names ( completionInfo : DeclarationListInfo ) =
23+ assertItemsWithNames true names completionInfo
24+
25+ let assertHasNoItemsWithNames names ( completionInfo : DeclarationListInfo ) =
26+ assertItemsWithNames false names completionInfo
2127
2228[<Fact>]
2329let ``Expr - After record decl 01`` () =
@@ -353,4 +359,24 @@ module rec M =
353359
354360 let _: R{caret} = ()
355361"""
356- assertHasItemWithNames [ " Rec1" ; " Rec2" ; " Rec3" ] info
362+ assertHasItemWithNames [ " Rec1" ; " Rec2" ; " Rec3" ] info
363+
364+ [<Fact>]
365+ let ``Not in scope 01`` () =
366+ let info =
367+ getCompletionInfo """
368+ namespace Ns1
369+
370+ type E =
371+ | A = 1
372+ | B = 2
373+ | C = 1
374+
375+ namespace Ns2
376+
377+ module Module =
378+ match Ns1.E.A with
379+ | {caret}
380+
381+ """
382+ assertHasNoItemsWithNames [ " E" ] info
You can’t perform that action at this time.
0 commit comments