@@ -1855,22 +1855,23 @@ type FSharpCheckProjectResults(projectFileName:string, tcConfigOption, keepAssem
18551855member info.GetUsesOfSymbol ( symbol : FSharpSymbol ) =
18561856let ( tcGlobals , _tcImports , _thisCcu , _ccuSig , tcSymbolUses , _topAttribs , _tcAssemblyData , _ilAssemRef , _ad , _tcAssemblyExpr , _dependencyFiles ) = getDetails()
18571857
1858- [| for rin tcSymbolUsesdo yield ! r.GetUsesOfSymbol( symbol.Item) |]
1859- |> Seq.distinctBy( fun ( itemOcc , _denv , m ) -> itemOcc, m)
1860- |> Seq.filter( fun ( itemOcc , _ , _ ) -> itemOcc<> ItemOccurence.RelatedText)
1861- |> Seq.map( fun ( itemOcc , denv , m ) -> FSharpSymbolUse( tcGlobals, denv, symbol, itemOcc, m))
1858+ tcSymbolUses
1859+ |> Seq.collect( fun r -> r.GetUsesOfSymbol symbol.Item)
1860+ |> Seq.distinctBy( fun symbolUse -> symbolUse.ItemOccurence, symbolUse.Range)
1861+ |> Seq.filter( fun symbolUse -> symbolUse.ItemOccurence<> ItemOccurence.RelatedText)
1862+ |> Seq.map( fun symbolUse -> FSharpSymbolUse( tcGlobals, symbolUse.DisplayEnv, symbol, symbolUse.ItemOccurence, symbolUse.Range))
18621863|> Seq.toArray
18631864|> async.Return
18641865
18651866// Not, this does not have to be a SyncOp, it can be called from any thread
18661867member info.GetAllUsesOfAllSymbols () =
18671868let ( tcGlobals , tcImports , thisCcu , _ccuSig , tcSymbolUses , _topAttribs , _tcAssemblyData , _ilAssemRef , _ad , _tcAssemblyExpr , _dependencyFiles ) = getDetails()
18681869
1869- [| for rin tcSymbolUsesdo
1870- for ( item , itemOcc , denv , m ) in r.GetAllUsesOfSymbols () do
1871- if itemOcc <> ItemOccurence.RelatedTextthen
1872- let symbol = FSharpSymbol.Create( tcGlobals, thisCcu, tcImports, item )
1873- yield FSharpSymbolUse( tcGlobals, denv , symbol, itemOcc , m ) |]
1870+ [| for rin tcSymbolUsesdo
1871+ for symbolUse in r.AllUsesOfSymbols do
1872+ if symbolUse.ItemOccurence <> ItemOccurence.RelatedTextthen
1873+ let symbol = FSharpSymbol.Create( tcGlobals, thisCcu, tcImports, symbolUse.Item )
1874+ yield FSharpSymbolUse( tcGlobals, symbolUse.DisplayEnv , symbol, symbolUse.ItemOccurence , symbolUse.Range ) |]
18741875|> async.Return
18751876
18761877member info.ProjectContext =
@@ -2050,7 +2051,7 @@ type FSharpCheckFileResults(filename: string, errors: FSharpErrorInfo[], scopeOp
20502051 threadSafeOp
20512052( fun () -> failwith" not available" )
20522053( fun scope ->
2053- // This operation is not asynchronous - GetReferencedAssemblies can be run on the calling thread
2054+ // This operation is not asynchronous - GetReferencedAssemblies can be run on the calling thread
20542055 FSharpProjectContext( scope.ThisCcu, scope.GetReferencedAssemblies(), scope.AccessRights))
20552056
20562057member info.DependencyFiles = dependencyFiles
@@ -2059,19 +2060,19 @@ type FSharpCheckFileResults(filename: string, errors: FSharpErrorInfo[], scopeOp
20592060 threadSafeOp
20602061( fun () -> [| |])
20612062( fun scope ->
2062- [| for ( item , itemOcc , denv , m ) in scope.ScopeSymbolUses.GetAllUsesOfSymbols () do
2063- if itemOcc <> ItemOccurence.RelatedTextthen
2064- let symbol = FSharpSymbol.Create( scope.TcGlobals, scope.ThisCcu, scope.TcImports, item )
2065- yield FSharpSymbolUse( scope.TcGlobals, denv , symbol, itemOcc , m ) |])
2063+ [| for symbolUse in scope.ScopeSymbolUses.AllUsesOfSymbols do
2064+ if symbolUse.ItemOccurence <> ItemOccurence.RelatedTextthen
2065+ let symbol = FSharpSymbol.Create( scope.TcGlobals, scope.ThisCcu, scope.TcImports, symbolUse.Item )
2066+ yield FSharpSymbolUse( scope.TcGlobals, symbolUse.DisplayEnv , symbol, symbolUse.ItemOccurence , symbolUse.Range ) |])
20662067|> async.Return
20672068
20682069member info.GetUsesOfSymbolInFile ( symbol : FSharpSymbol ) =
20692070 threadSafeOp
20702071( fun () -> [| |])
20712072( fun scope ->
2072- [| for ( itemOcc , denv , m ) in scope.ScopeSymbolUses.GetUsesOfSymbol( symbol.Item) |> Seq.distinctBy( fun ( itemOcc , _denv , m ) -> itemOcc , m ) do
2073- if itemOcc <> ItemOccurence.RelatedTextthen
2074- yield FSharpSymbolUse( scope.TcGlobals, denv , symbol, itemOcc , m ) |])
2073+ [| for symbolUse in scope.ScopeSymbolUses.GetUsesOfSymbol( symbol.Item) |> Seq.distinctBy( fun symbolUse -> symbolUse.ItemOccurence , symbolUse.Range ) do
2074+ if symbolUse.ItemOccurence <> ItemOccurence.RelatedTextthen
2075+ yield FSharpSymbolUse( scope.TcGlobals, symbolUse.DisplayEnv , symbol, symbolUse.ItemOccurence , symbolUse.Range ) |])
20752076|> async.Return
20762077
20772078member info.GetVisibleNamespacesAndModulesAtPoint ( pos : pos ) =