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

Commit6e8515f

Browse files
vasily-kirichenkoTIHan
authored andcommitted
do not simplify open statements (#4068)
1 parentbc9f2a1 commit6e8515f

File tree

6 files changed

+14
-7
lines changed

6 files changed

+14
-7
lines changed

‎src/fsharp/NameResolution.fs‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1223,6 +1223,8 @@ type ItemOccurence =
12231223
| Implemented
12241224
/// Result gets suppressed over this text range
12251225
| RelatedText
1226+
/// This is a usage of a module or namespace name in open statement
1227+
| Open
12261228

12271229
typeOpenDeclaration=
12281230
{ LongId:Ident list

‎src/fsharp/NameResolution.fsi‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@ type internal ItemOccurence =
246246
| Pattern
247247
| Implemented
248248
| RelatedText
249+
| Open
249250

250251
/// Check for equality, up to signature matching
251252
valItemsAreEffectivelyEqual:TcGlobals->Item->Item->bool

‎src/fsharp/TypeChecker.fs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,7 @@ let OpenModulesOrNamespaces tcSink g amap scopem root env mvvs openDeclaration =
466466
loop acc rest
467467

468468
for item, range in loop [] (List.rev openDeclaration.LongId) do
469-
CallNameResolutionSink tcSink (range, env.NameEnv, item, item, emptyTyparInst, ItemOccurence.Use, env.DisplayEnv, env.eAccessRights)
469+
CallNameResolutionSink tcSink (range, env.NameEnv, item, item, emptyTyparInst, ItemOccurence.Open, env.DisplayEnv, env.eAccessRights)
470470
env
471471

472472
let AddRootModuleOrNamespaceRefs g amap m env modrefs =

‎src/fsharp/symbols/Symbols.fs‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2281,19 +2281,19 @@ type FSharpSymbolUse(g:TcGlobals, denv: DisplayEnv, symbol:FSharpSymbol, itemOcc
22812281
member__.Symbol= symbol
22822282
member__.DisplayContext= FSharpDisplayContext(fun _-> denv)
22832283
memberx.IsDefinition= x.IsFromDefinition
2284-
member__.IsFromDefinition=(matchitemOccwith ItemOccurence.Binding->true|_->false)
2285-
member__.IsFromPattern=(matchitemOccwith ItemOccurence.Pattern->true|_->false)
2286-
member__.IsFromType=(matchitemOccwith ItemOccurence.UseInType->true|_->false)
2287-
member__.IsFromAttribute=(matchitemOccwith ItemOccurence.UseInAttribute->true|_->false)
2288-
member__.IsFromDispatchSlotImplementation=(matchitemOccwith ItemOccurence.Implemented->true|_->false)
2284+
member__.IsFromDefinition= itemOcc= ItemOccurence.Binding
2285+
member__.IsFromPattern= itemOcc= ItemOccurence.Pattern
2286+
member__.IsFromType= itemOcc= ItemOccurence.UseInType
2287+
member__.IsFromAttribute= itemOcc= ItemOccurence.UseInAttribute
2288+
member__.IsFromDispatchSlotImplementation= itemOcc= ItemOccurence.Implemented
22892289
member__.IsFromComputationExpression=
22902290
match symbol.Item, itemOccwith
22912291
// 'seq' in 'seq { ... }' gets colored as keywords
22922292
|(Item.Value vref), ItemOccurence.Usewhen valRefEq g g.seq_vref vref->true
22932293
// custom builders, custom operations get colored as keywords
22942294
|(Item.CustomBuilder_| Item.CustomOperation_), ItemOccurence.Use->true
22952295
|_->false
2296-
2296+
member__.IsFromOpenStatement= itemOcc= ItemOccurence.Open
22972297
member__.FileName= range.FileName
22982298
member__.Range= Range.toZ range
22992299
member__.RangeAlternate= range

‎src/fsharp/symbols/Symbols.fsi‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1125,6 +1125,9 @@ type internal FSharpSymbolUse =
11251125
/// Indicates if the reference is either a builder or a custom operation in a computation expression
11261126
memberIsFromComputationExpression:bool
11271127

1128+
/// Indicates if the reference is in open statement
1129+
memberIsFromOpenStatement:bool
1130+
11281131
/// The file name the reference occurs in
11291132
memberFileName:string
11301133

‎vsintegration/src/FSharp.Editor/Diagnostics/SimplifyNameDiagnosticAnalyzer.fs‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ type internal SimplifyNameDiagnosticAnalyzer() =
6666
let mutableresult= ResizeArray()
6767
letsymbolUses=
6868
symbolUses
69+
|> Array.filter(fun symbolUse->not symbolUse.IsFromOpenStatement)
6970
|> Array.Parallel.map(fun symbolUse->
7071
letlineStr= sourceText.Lines.[Line.toZ symbolUse.RangeAlternate.StartLine].ToString()
7172
// for `System.DateTime.Now` it returns ([|"System"; "DateTime"|], "Now")

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp