@@ -937,9 +937,10 @@ type TypeCheckInfo
937937( fun () ->
938938match 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)
941942let items = if isInterfaceFilethen 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))
943944let 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 )
10141015let items =
10151016// Filter out duplicate names
10161017 items|> List.map( fun ( _nm , itemsWithSameName ) ->
10171018match itemsWithSameNamewith
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
11331134match 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)
11361138let 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
18881890member __.GetAllUsesOfAllSymbols () =
18891891let ( tcGlobals , tcImports , thisCcu , ccuSig , tcSymbolUses , _topAttribs , _tcAssemblyData , _ilAssemRef , _ad , _tcAssemblyExpr , _dependencyFiles ) = getDetails()
1892+ let cenv = SymbolEnv( tcGlobals, thisCcu, Some ccuSig, tcImports)
18901893
18911894[| for rin tcSymbolUsesdo
18921895for symbolUsein r.AllUsesOfSymbolsdo
18931896if symbolUse.ItemOccurence<> ItemOccurence.RelatedTextthen
1894- let symbol = FSharpSymbol.Create( tcGlobals , thisCcu , ccuSig , tcImports , symbolUse.Item)
1897+ let symbol = FSharpSymbol.Create( cenv , symbolUse.Item)
18951898yield 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
20802083member info.GetAllUsesOfAllSymbolsInFile () =
20812084 threadSafeOp
2082- ( fun () -> [| |])
2083- ( fun scope ->
2084- [| for symbolUsein scope.ScopeSymbolUses.AllUsesOfSymbolsdo
2085- if symbolUse.ItemOccurence<> ItemOccurence.RelatedTextthen
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 symbolUsein scope.ScopeSymbolUses.AllUsesOfSymbolsdo
2089+ if symbolUse.ItemOccurence<> ItemOccurence.RelatedTextthen
2090+ let symbol = FSharpSymbol.Create( cenv, symbolUse.Item)
20872091yield FSharpSymbolUse( scope.TcGlobals, symbolUse.DisplayEnv, symbol, symbolUse.ItemOccurence, symbolUse.Range) |])
20882092|> async.Return
20892093