@@ -2023,6 +2023,18 @@ type internal TypeCheckInfo
20232023 member scope.IsRelativeNameResolvableFromSymbol ( cursorPos : pos , plid : string list , symbol : FSharpSymbol ) : bool =
20242024 scope.IsRelativeNameResolvable( cursorPos, plid, symbol.Item)
20252025
2026+ member scope.TryGetExpressionType ( range ) =
2027+ sResolutions.CapturedExpressionTypings
2028+ |> Seq.tryFindBack ( fun ( _ , _ , _ , m ) -> equals m range)
2029+ |> Option.map ( fun ( ty , _ , _ , _ ) -> FSharpType ( cenv, ty))
2030+
2031+ member scope.GetExpressionDisplayContext ( range ) =
2032+ sResolutions.CapturedExpressionTypings
2033+ |> Seq.tryFindBack ( fun ( _ , _ , _ , m ) -> equals m range)
2034+ |> Option.map ( fun ( _ , q , _ , _ ) -> FSharpDisplayContext( fun _ -> q.DisplayEnv))
2035+
2036+
2037+
20262038 /// Get the auto-complete items at a location
20272039 member _.GetDeclarations ( parseResultsOpt , line , lineStr , partialName , completionContextAtPos , getAllEntities ) =
20282040 let isSigFile = SourceFileImpl.IsSignatureFile mainInputFileName
@@ -3472,6 +3484,16 @@ type FSharpCheckFileResults
34723484
34733485 member _.DependencyFiles = dependencyFiles
34743486
3487+ member _.GetTypeOfExpression ( range : range ) =
3488+ match details with
3489+ | None -> None
3490+ | Some( scope, _) -> scope.TryGetExpressionType( range)
3491+
3492+ member _.GetExpressionDisplayContext ( range : range ) =
3493+ match details with
3494+ | None -> None
3495+ | Some( scope, _) -> scope.GetExpressionDisplayContext( range)
3496+
34753497 member _.GetAllUsesOfAllSymbolsInFile (? cancellationToken : CancellationToken ) =
34763498 match details with
34773499 | None -> Seq.empty
0 commit comments