diff --git a/src/fsharp/vs/service.fs b/src/fsharp/vs/service.fs
index 5c2fc8f544..8aab8bad58 100755
--- a/src/fsharp/vs/service.fs
+++ b/src/fsharp/vs/service.fs
@@ -901,6 +901,18 @@ type TypeCheckInfo
Trace.TraceInformation(sprintf "FCS: recovering from error in IsRelativeNameResolvable: '%s'" msg)
false)
+ /// Determines if a long ident is resolvable at a specific point.
+ member __.IsRelativeNameResolvable(cursorPos: pos, plid: string list, symbolUse: FSharpSymbolUse) : bool =
+ ErrorScope.Protect
+ Range.range0
+ (fun () ->
+ /// Find items in the best naming environment.
+ let (nenv, ad), m = GetBestEnvForPos cursorPos
+ NameResolution.IsItemResolvable ncenv nenv m ad plid symbolUse.Symbol.Item)
+ (fun msg ->
+ Trace.TraceInformation(sprintf "FCS: recovering from error in IsRelativeNameResolvable: '%s'" msg)
+ false)
+
/// Get the auto-complete items at a location
member __.GetDeclarations (ctok, parseResultsOpt, line, lineStr, colAtEndOfNamesAndResidue, qualifyingNames, partialName, getAllSymbols, hasTextChangedSinceLastTypecheck) =
let isInterfaceFile = SourceFileImpl.IsInterfaceFile mainInputFileName
diff --git a/src/fsharp/vs/service.fsi b/src/fsharp/vs/service.fsi
index 986b9a0e4c..aca216e5c2 100755
--- a/src/fsharp/vs/service.fsi
+++ b/src/fsharp/vs/service.fsi
@@ -262,6 +262,10 @@ type internal FSharpCheckFileResults =
/// An optional string used for tracing compiler operations associated with this request.
member internal IsRelativeNameResolvable: cursorPos : pos * plid : string list * item: Item * ?userOpName: string -> Async
+ /// Determines if a long ident is resolvable at a specific point.
+ /// An optional string used for tracing compiler operations associated with this request.
+ member IsRelativeNameResolvable: cursorPos : pos * plid : string list * symbolUse: FSharpSymbolUse * ?userOpName: string -> Async
+
/// Represents complete typechecked implementation files, including thier typechecked signatures if any.
member ImplementationFiles: FSharpImplementationFileContents list option