Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit55859f9

Browse files
fix auto opens
1 parent0037eb1 commit55859f9

File tree

2 files changed

+33
-5
lines changed

2 files changed

+33
-5
lines changed

‎src/fsharp/vs/ServiceAnalysis.fs‎

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,20 @@ module UnusedOpens =
9393
letgetUsedModules(openStatement:OpenStatement)=
9494
letnotAlreadyUsedModuleGroups=
9595
openStatement.Modules
96-
|> List.filter(fun x->
97-
not(usedModules
98-
|> List.exists(fun used->
99-
rangeContainsRange used.AppliedScope openStatement.AppliedScope&&
100-
x.Modules|> List.exists(fun x->not x.IsNestedAutoOpen&& used.Module.IsEffectivelySameAs x.Entity))))
96+
|> List.choose(fun x->
97+
letnotUsedModules=
98+
x.Modules
99+
|> List.filter(fun x->
100+
not(usedModules
101+
|> List.exists(fun used->
102+
rangeContainsRange used.AppliedScope openStatement.AppliedScope&&
103+
used.Module.IsEffectivelySameAs x.Entity)))
104+
105+
match notUsedModuleswith
106+
|[]-> None
107+
|_when notUsedModules|> List.exists(fun x->not x.IsNestedAutoOpen)->
108+
Some{ Modules= notUsedModules}
109+
|_-> None)
101110

102111
match notAlreadyUsedModuleGroupswith
103112
|[]->[]

‎vsintegration/tests/unittests/UnusedOpensTests.fs‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,25 @@ open NormalModule.AutoOpenModule1.NestedNormalModule.AutoOpenModule2
183183
let _ = Class()
184184
"""
185185
=>[13,(5,68)]
186+
187+
[<Test>]
188+
let``opening parent module after one of its auto open module was opened should be marked as unused``()=
189+
"""
190+
module NormalModule =
191+
[<AutoOpen>]
192+
module AutoOpenModule1 =
193+
module NestedNormalModule =
194+
[<AutoOpen>]
195+
module AutoOpenModule2 =
196+
[<AutoOpen>]
197+
module AutoOpenModule3 =
198+
type Class() = class end
199+
200+
open NormalModule.AutoOpenModule1.NestedNormalModule.AutoOpenModule2
201+
open NormalModule.AutoOpenModule1.NestedNormalModule
202+
let _ = Class()
203+
"""
204+
=>[13,(5,52)]
186205

187206
[<Test>]
188207
let``open declaration is not marked as unused if there is a shortened attribute symbol from it``()=

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp