@@ -937,9 +937,10 @@ type TypeCheckInfo
937937 ( fun () ->
938938 match GetDeclItemsForNamesAtPosition( ctok, parseResultsOpt, Some partialName.QualifyingIdents, Some partialName.PartialIdent, partialName.LastDotPos, line, lineStr, partialName.EndColumn + 1 , ResolveTypeNamesToCtors, ResolveOverloads.Yes, getAllEntities, hasTextChangedSinceLastTypecheck) with
939939 | None -> FSharpDeclarationListInfo.Empty
940- | Some ( items, denv, ctx, m) ->
940+ | Some ( items, denv, ctx, m) ->
941+ let cenv = SymbolEnv( g, thisCcu, Some ccuSigForFile, tcImports)
941942 let items = if isInterfaceFile then items |> List.filter ( fun x -> IsValidSignatureFileItem x.Item) else items
942- let getAccessibility item = FSharpSymbol.GetAccessibility ( FSharpSymbol.Create( g , thisCcu , ccuSigForFile , tcImports , item))
943+ let getAccessibility item = FSharpSymbol.GetAccessibility ( FSharpSymbol.Create( cenv , item))
943944 let currentNamespaceOrModule =
944945 parseResultsOpt
945946 |> Option.bind ( fun x -> x.ParseTree)
@@ -1010,16 +1011,16 @@ type TypeCheckInfo
10101011
10111012 items |> List.filter ( fun ( nm , items ) -> not ( isOpItem( nm, items)) && not ( isFSharpList nm))
10121013
1013-
1014+ let cenv = SymbolEnv ( g , thisCcu , Some ccuSigForFile , tcImports )
10141015 let items =
10151016 // Filter out duplicate names
10161017 items |> List.map ( fun ( _nm , itemsWithSameName ) ->
10171018 match itemsWithSameName with
10181019 | [] -> failwith " Unexpected empty bag"
10191020 | items ->
1020- items
1021- |> List.map ( fun item -> let symbol = FSharpSymbol.Create( g , thisCcu , ccuSigForFile , tcImports , item.Item)
1022- FSharpSymbolUse( g, denv, symbol, ItemOccurence.Use, m)))
1021+ items |> List.map ( fun item ->
1022+ let symbol = FSharpSymbol.Create( cenv , item.Item)
1023+ FSharpSymbolUse( g, denv, symbol, ItemOccurence.Use, m)))
10231024
10241025 //end filtering
10251026 items)
@@ -1133,8 +1134,9 @@ type TypeCheckInfo
11331134 match GetDeclItemsForNamesAtPosition ( ctok, None, Some( names), None, None, line, lineStr, colAtEndOfNames, ResolveTypeNamesToCtors, ResolveOverloads.No,( fun () -> []), fun _ -> false ) with
11341135 | None | Some ([],_,_,_) -> None
11351136 | Some ( items, denv, _, m) ->
1137+ let cenv = SymbolEnv( g, thisCcu, Some ccuSigForFile, tcImports)
11361138 let allItems = items |> List.collect ( fun item -> SymbolHelpers.FlattenItems g m item.Item)
1137- let symbols = allItems |> List.map ( fun item -> FSharpSymbol.Create( g , thisCcu , ccuSigForFile , tcImports , item))
1139+ let symbols = allItems |> List.map ( fun item -> FSharpSymbol.Create( cenv , item))
11381140 Some ( symbols, denv, m)
11391141 )
11401142 ( fun msg ->
@@ -1887,11 +1889,12 @@ type FSharpCheckProjectResults(projectFileName:string, tcConfigOption, keepAssem
18871889 // Not, this does not have to be a SyncOp, it can be called from any thread
18881890 member __.GetAllUsesOfAllSymbols () =
18891891 let ( tcGlobals , tcImports , thisCcu , ccuSig , tcSymbolUses , _topAttribs , _tcAssemblyData , _ilAssemRef , _ad , _tcAssemblyExpr , _dependencyFiles ) = getDetails()
1892+ let cenv = SymbolEnv( tcGlobals, thisCcu, Some ccuSig, tcImports)
18901893
18911894 [| for r in tcSymbolUses do
18921895 for symbolUse in r.AllUsesOfSymbols do
18931896 if symbolUse.ItemOccurence <> ItemOccurence.RelatedText then
1894- let symbol = FSharpSymbol.Create( tcGlobals , thisCcu , ccuSig , tcImports , symbolUse.Item)
1897+ let symbol = FSharpSymbol.Create( cenv , symbolUse.Item)
18951898 yield FSharpSymbolUse( tcGlobals, symbolUse.DisplayEnv, symbol, symbolUse.ItemOccurence, symbolUse.Range) |]
18961899 |> async.Return
18971900
@@ -2079,11 +2082,12 @@ type FSharpCheckFileResults(filename: string, errors: FSharpErrorInfo[], scopeOp
20792082
20802083 member info.GetAllUsesOfAllSymbolsInFile () =
20812084 threadSafeOp
2082- ( fun () -> [| |])
2083- ( fun scope ->
2084- [| for symbolUse in scope.ScopeSymbolUses.AllUsesOfSymbols do
2085- if symbolUse.ItemOccurence <> ItemOccurence.RelatedText then
2086- let symbol = FSharpSymbol.Create( scope.TcGlobals, scope.ThisCcu, scope.CcuSigForFile, scope.TcImports, symbolUse.Item)
2085+ ( fun () -> [| |])
2086+ ( fun scope ->
2087+ let cenv = SymbolEnv( scope.TcGlobals, scope.ThisCcu, Some scope.CcuSigForFile, scope.TcImports)
2088+ [| for symbolUse in scope.ScopeSymbolUses.AllUsesOfSymbols do
2089+ if symbolUse.ItemOccurence <> ItemOccurence.RelatedText then
2090+ let symbol = FSharpSymbol.Create( cenv, symbolUse.Item)
20872091 yield FSharpSymbolUse( scope.TcGlobals, symbolUse.DisplayEnv, symbol, symbolUse.ItemOccurence, symbolUse.Range) |])
20882092 |> async.Return
20892093
0 commit comments