Skip to content

Commit e289d98

Browse files
committed
Add GetTypeOfExpression, GetExpressionDisplayContext
1 parent b429fec commit e289d98

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

src/Compiler/Service/FSharpCheckerResults.fs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

src/Compiler/Service/FSharpCheckerResults.fsi

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,9 @@ type public FSharpCheckFileResults =
269269
/// in the documentation for compiler service.
270270
member DependencyFiles: string[]
271271

272+
member GetTypeOfExpression: range -> FSharpType option
273+
member GetExpressionDisplayContext: range -> FSharpDisplayContext option
274+
272275
/// <summary>Get the items for a declaration list</summary>
273276
///
274277
/// <param name="parsedFileResults">

0 commit comments

Comments
 (0)