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
5429
5429
let envNS = LocateEnv kind.IsModule cenv.thisCcu env enclosingNamespacePath
5430
5430
let envNS = ImplicitlyOpenOwnNamespace cenv.tcSink g cenv.amap m enclosingNamespacePath envNS
5431
5431
5432
+ CallEnvSink cenv.tcSink ( scopem, envNS.NameEnv, env.eAccessRights)
5433
+
5432
5434
let modTyNS = envNS.eModuleOrNamespaceTypeAccumulator.Value
5433
5435
let modTyRoot , modulNSs = BuildRootModuleType enclosingNamespacePath envNS.eCompPath modTyNS
5434
5436
let modulNSOpt = List.tryHead modulNSs
Original file line number Diff line number Diff line change @@ -13,11 +13,17 @@ let getCompletionInfo source =
13
13
let getCompletionItemNames ( completionInfo : DeclarationListInfo ) =
14
14
completionInfo.Items |> Array.map ( fun item -> item.NameInCode)
15
15
16
- let assertHasItemWithNames names ( completionInfo : DeclarationListInfo ) =
16
+ let private assertItemsWithNames contains names ( completionInfo : DeclarationListInfo ) =
17
17
let itemNames = getCompletionItemNames completionInfo |> set
18
18
19
19
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
21
27
22
28
[<Fact>]
23
29
let ``Expr - After record decl 01`` () =
@@ -353,4 +359,24 @@ module rec M =
353
359
354
360
let _: R{caret} = ()
355
361
"""
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