-
Notifications
You must be signed in to change notification settings - Fork 123
Closed
Description
This is continuation of this Ionide issue.
FCS crashes on DescriptionText call on completion results on FileSystem provider.
Repro steps
I made a repro script:
-
clone https://github.com/jindraivanek/FCS-repro-TP-completion
-
run init.sh or init.cmd
-
run fsharpi completion.fsx
Expected behavior
Don't crash.
In linked repo is patched (by PR #735) FCS dll. By referencing it script works without crash.
Actual behavior
Output on my machine (linux):
- .git
- .gitignore
- .paket
- FSharp.Compiler.Service.dll
- Path
- completion.fsx
- init.sh
- packages
- paket.dependencies
- paket.lock
- .git - FSharpToolTipText
[Single
("type .git =
static val HEAD : string
static val Path : string
static val config : string
static val description : string
nested type branches
nested type hooks
nested type info
nested type objects
nested type refs",
Text
"
A strongly typed interface to '/pub/dev/github/ionide/FCS-bug/.git'")]
System.AggregateException: One or more errors occurred. ---> System.Exception: ILTypeInfo.FromType
at Microsoft.FSharp.Compiler.Infos+ILTypeInfo.FromType (Microsoft.FSharp.Compiler.TcGlobals+TcGlobals g, Microsoft.FSharp.Compiler.Tast+TType ty) [0x00059] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.SourceCodeServices.ItemDescriptionsImpl.metaInfoOfEntityRef (Microsoft.FSharp.Compiler.InfoReader+InfoReader infoReader, Microsoft.FSharp.Compiler.Range+range m, Microsoft.FSharp.Compiler.Tast+EntityRef tcref) [0x0004a] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.SourceCodeServices.ItemDescriptionsImpl.GetXmlDocSigOfILFieldInfo (Microsoft.FSharp.Compiler.InfoReader+InfoReader infoReader, Microsoft.FSharp.Compiler.Range+range m, Microsoft.FSharp.Compiler.Infos+ILFieldInfo finfo) [0x00014] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.SourceCodeServices.ItemDescriptionsImpl.GetXmlDocHelpSigOfItemForLookup (Microsoft.FSharp.Compiler.InfoReader+InfoReader infoReader, Microsoft.FSharp.Compiler.Range+range m, Microsoft.FSharp.Compiler.NameResolution+Item d) [0x00112] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.SourceCodeServices.ItemDescriptionsImpl.GetXmlCommentForItemAux (Microsoft.FSharp.Core.FSharpOption`1[T] xmlDoc, Microsoft.FSharp.Compiler.InfoReader+InfoReader infoReader, Microsoft.FSharp.Compiler.Range+range m, Microsoft.FSharp.Compiler.NameResolution+Item d) [0x00059] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.SourceCodeServices.ItemDescriptionsImpl.GetXmlCommentForItem (Microsoft.FSharp.Compiler.InfoReader+InfoReader infoReader, Microsoft.FSharp.Compiler.Range+range m, Microsoft.FSharp.Compiler.NameResolution+Item d) [0x0006f] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.SourceCodeServices.ItemDescriptionsImpl.FormatItemDescriptionToToolTipElement (System.Boolean isDecl, Microsoft.FSharp.Compiler.InfoReader+InfoReader infoReader, Microsoft.FSharp.Compiler.Range+range m, Microsoft.FSharp.Compiler.Tastops+DisplayEnv denv, Microsoft.FSharp.Compiler.NameResolution+Item d) [0x00017] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.SourceCodeServices.ItemDescriptionsImpl+FormatStructuredDescriptionOfItem@1195.Invoke (Microsoft.FSharp.Core.Unit unitVar0) [0x00001] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.ErrorScope.Protect[a] (Microsoft.FSharp.Compiler.Range+range m, Microsoft.FSharp.Core.FSharpFunc`2[T,TResult] f, Microsoft.FSharp.Core.FSharpFunc`2[T,TResult] err) [0x00009] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.ErrorLogger+ErrorLoggerExtensions.ReraiseIfWatsonable (System.Exception exn) [0x00040] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.ErrorLogger+ErrorLoggerExtensions.ErrorLogger.ErrorRecovery (Microsoft.FSharp.Compiler.ErrorLogger+ErrorLogger x, System.Exception exn, Microsoft.FSharp.Compiler.Range+range m) [0x00087] in <58c02e00ddab8ea7a7450383002ec058>:0
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <f712f98eb8e445c8918edaf595bbe465>:0
at Microsoft.FSharp.Control.AsyncBuilderImpl.commit[a] (Microsoft.FSharp.Control.AsyncBuilderImpl+AsyncImplResult`1[T] res) [0x0002d] in <58d2477fdff9fae1a74503837f47d258>:0
at Microsoft.FSharp.Control.CancellationTokenOps.RunSynchronouslyInCurrentThread[a] (System.Threading.CancellationToken token, Microsoft.FSharp.Control.FSharpAsync`1[T] computation) [0x00029] in <58d2477fdff9fae1a74503837f47d258>:0
at Microsoft.FSharp.Control.CancellationTokenOps.RunSynchronously[a] (System.Threading.CancellationToken token, Microsoft.FSharp.Control.FSharpAsync`1[T] computation, Microsoft.FSharp.Core.FSharpOption`1[T] timeout) [0x00014] in <58d2477fdff9fae1a74503837f47d258>:0
at Microsoft.FSharp.Control.FSharpAsync.RunSynchronously[T] (Microsoft.FSharp.Control.FSharpAsync`1[T] computation, Microsoft.FSharp.Core.FSharpOption`1[T] timeout, Microsoft.FSharp.Core.FSharpOption`1[T] cancellationToken) [0x00071] in <58d2477fdff9fae1a74503837f47d258>:0
at <StartupCode$FSharp-Compiler-Service>.$ServiceDeclarations+get_StructuredDescriptionText@1333.Invoke () [0x0000d] in <58c02e00ddab8ea7a7450383002ec058>:0
at System.Threading.Tasks.Task.InnerInvoke () [0x00012] in <f712f98eb8e445c8918edaf595bbe465>:0
at System.Threading.Tasks.Task.Execute () [0x00016] in <f712f98eb8e445c8918edaf595bbe465>:0
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00014] in <f712f98eb8e445c8918edaf595bbe465>:0
at System.Threading.Tasks.Task.Wait (System.Int32 millisecondsTimeout, System.Threading.CancellationToken cancellationToken) [0x00052] in <f712f98eb8e445c8918edaf595bbe465>:0
at System.Threading.Tasks.Task.Wait (System.Int32 millisecondsTimeout) [0x00000] in <f712f98eb8e445c8918edaf595bbe465>:0
at Microsoft.FSharp.Compiler.SourceCodeServices.FSharpDeclarationListItem.get_StructuredDescriptionText () [0x00069] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.SourceCodeServices.FSharpDeclarationListItem.get_DescriptionText () [0x00001] in <58c02e00ddab8ea7a7450383002ec058>:0
at <StartupCode$FSI_0002>.$FSI_0002.main@ () [0x001b9] in <76f6c439513e49fab7fcb74f9be71cd1>:0
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00038] in <f712f98eb8e445c8918edaf595bbe465>:0
---> (Inner Exception #0) System.Exception: ILTypeInfo.FromType
at Microsoft.FSharp.Compiler.Infos+ILTypeInfo.FromType (Microsoft.FSharp.Compiler.TcGlobals+TcGlobals g, Microsoft.FSharp.Compiler.Tast+TType ty) [0x00059] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.SourceCodeServices.ItemDescriptionsImpl.metaInfoOfEntityRef (Microsoft.FSharp.Compiler.InfoReader+InfoReader infoReader, Microsoft.FSharp.Compiler.Range+range m, Microsoft.FSharp.Compiler.Tast+EntityRef tcref) [0x0004a] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.SourceCodeServices.ItemDescriptionsImpl.GetXmlDocSigOfILFieldInfo (Microsoft.FSharp.Compiler.InfoReader+InfoReader infoReader, Microsoft.FSharp.Compiler.Range+range m, Microsoft.FSharp.Compiler.Infos+ILFieldInfo finfo) [0x00014] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.SourceCodeServices.ItemDescriptionsImpl.GetXmlDocHelpSigOfItemForLookup (Microsoft.FSharp.Compiler.InfoReader+InfoReader infoReader, Microsoft.FSharp.Compiler.Range+range m, Microsoft.FSharp.Compiler.NameResolution+Item d) [0x00112] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.SourceCodeServices.ItemDescriptionsImpl.GetXmlCommentForItemAux (Microsoft.FSharp.Core.FSharpOption`1[T] xmlDoc, Microsoft.FSharp.Compiler.InfoReader+InfoReader infoReader, Microsoft.FSharp.Compiler.Range+range m, Microsoft.FSharp.Compiler.NameResolution+Item d) [0x00059] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.SourceCodeServices.ItemDescriptionsImpl.GetXmlCommentForItem (Microsoft.FSharp.Compiler.InfoReader+InfoReader infoReader, Microsoft.FSharp.Compiler.Range+range m, Microsoft.FSharp.Compiler.NameResolution+Item d) [0x0006f] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.SourceCodeServices.ItemDescriptionsImpl.FormatItemDescriptionToToolTipElement (System.Boolean isDecl, Microsoft.FSharp.Compiler.InfoReader+InfoReader infoReader, Microsoft.FSharp.Compiler.Range+range m, Microsoft.FSharp.Compiler.Tastops+DisplayEnv denv, Microsoft.FSharp.Compiler.NameResolution+Item d) [0x00017] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.SourceCodeServices.ItemDescriptionsImpl+FormatStructuredDescriptionOfItem@1195.Invoke (Microsoft.FSharp.Core.Unit unitVar0) [0x00001] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.ErrorScope.Protect[a] (Microsoft.FSharp.Compiler.Range+range m, Microsoft.FSharp.Core.FSharpFunc`2[T,TResult] f, Microsoft.FSharp.Core.FSharpFunc`2[T,TResult] err) [0x00009] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.ErrorLogger+ErrorLoggerExtensions.ReraiseIfWatsonable (System.Exception exn) [0x00040] in <58c02e00ddab8ea7a7450383002ec058>:0
at Microsoft.FSharp.Compiler.ErrorLogger+ErrorLoggerExtensions.ErrorLogger.ErrorRecovery (Microsoft.FSharp.Compiler.ErrorLogger+ErrorLogger x, System.Exception exn, Microsoft.FSharp.Compiler.Range+range m) [0x00087] in <58c02e00ddab8ea7a7450383002ec058>:0
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <f712f98eb8e445c8918edaf595bbe465>:0
at Microsoft.FSharp.Control.AsyncBuilderImpl.commit[a] (Microsoft.FSharp.Control.AsyncBuilderImpl+AsyncImplResult`1[T] res) [0x0002d] in <58d2477fdff9fae1a74503837f47d258>:0
at Microsoft.FSharp.Control.CancellationTokenOps.RunSynchronouslyInCurrentThread[a] (System.Threading.CancellationToken token, Microsoft.FSharp.Control.FSharpAsync`1[T] computation) [0x00029] in <58d2477fdff9fae1a74503837f47d258>:0
at Microsoft.FSharp.Control.CancellationTokenOps.RunSynchronously[a] (System.Threading.CancellationToken token, Microsoft.FSharp.Control.FSharpAsync`1[T] computation, Microsoft.FSharp.Core.FSharpOption`1[T] timeout) [0x00014] in <58d2477fdff9fae1a74503837f47d258>:0
at Microsoft.FSharp.Control.FSharpAsync.RunSynchronously[T] (Microsoft.FSharp.Control.FSharpAsync`1[T] computation, Microsoft.FSharp.Core.FSharpOption`1[T] timeout, Microsoft.FSharp.Core.FSharpOption`1[T] cancellationToken) [0x00071] in <58d2477fdff9fae1a74503837f47d258>:0
at <StartupCode$FSharp-Compiler-Service>.$ServiceDeclarations+get_StructuredDescriptionText@1333.Invoke () [0x0000d] in <58c02e00ddab8ea7a7450383002ec058>:0
at System.Threading.Tasks.Task.InnerInvoke () [0x00012] in <f712f98eb8e445c8918edaf595bbe465>:0
at System.Threading.Tasks.Task.Execute () [0x00016] in <f712f98eb8e445c8918edaf595bbe465>:0 <---
Stopped due to error
Related information
I noticed that crash doesn't happen on type provider items that correspond to directory.
- Operating system: Linux Mint 18.1
- Mono JIT compiler version 4.8.0 (Stable 4.8.0.520/8f6d0f6 Wed Mar 15 16:18:35 UTC 2017)