aBothe / Mono-D

D Add-In for MonoDevelop
http://wiki.dlang.org/Mono-D
Other
113 stars 26 forks source link

goto def of `HTTPClientRequest` in vibe.d gives TargetInvocationException #562

Closed extrawurst closed 9 years ago

extrawurst commented 9 years ago
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.AggregateException: One or more errors occurred. ---> D_Parser.Resolver.TooManyResolutionErrors: Too many resolution errors!
   at D_Parser.Resolver.ResolutionContext.LogError(ResolutionError err)
   at D_Parser.Resolver.TypeResolution.DResolver.ResolveClassOrInterface(DClassLike dc, ResolutionContext ctxt, ISyntaxRegion instanceDeclaration, Boolean ResolveFirstBaseIdOnly, IEnumerable`1 extraDeducedTemplateParams)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.DeepScanClass(UserDefinedType udt, MemberFilter vis, Boolean resolveBaseClassIfRequired)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.ScanBlock(IBlockNode curScope, CodeLocation Caret, MemberFilter VisibleMembers, Boolean publicImportsOnly)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.ScanBlockUpward(IBlockNode curScope, CodeLocation Caret, MemberFilter VisibleMembers)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.IterateThroughScopeLayers(CodeLocation Caret, MemberFilter VisibleMembers)
   at D_Parser.Resolver.ASTScanner.NameScan.SearchAndResolve(ResolutionContext ctxt, CodeLocation caret, Int32 nameHash, ISyntaxRegion idObject)
   at D_Parser.Resolver.TypeResolution.TypeDeclarationResolver.ResolveIdentifier(Int32 idHash, ResolutionContext ctxt, ISyntaxRegion idObject, Boolean ModuleScope)
   at D_Parser.Resolver.ExpressionSemantics.ExpressionTypeEvaluation.GetOverloads(TemplateInstanceExpression tix, ResolutionContext ctxt, IEnumerable`1 resultBases, Boolean deduceParameters)
   at D_Parser.Resolver.ExpressionSemantics.Evaluation.Visit(TemplateInstanceExpression tix)
   at D_Parser.Dom.Expressions.TemplateInstanceExpression.Accept[R](ExpressionVisitor`1 vis)
   at D_Parser.Resolver.ExpressionSemantics.Evaluation.GetRawCallOverloads(ResolutionContext ctxt, PostfixExpression_MethodCall call, AbstractType[]& baseExpression, ISymbolValue& baseValue, TemplateInstanceExpression& tix)
   at D_Parser.Resolver.ExpressionSemantics.Evaluation.Visit(PostfixExpression_MethodCall call)
   at D_Parser.Dom.Expressions.PostfixExpression_MethodCall.Accept[R](ExpressionVisitor`1 vis)
   at D_Parser.Resolver.ExpressionSemantics.Evaluation.EvaluateValue(IExpression x, AbstractSymbolValueProvider vp)
   at D_Parser.Resolver.ExpressionSemantics.Evaluation.EvaluateValue(IExpression x, ResolutionContext ctxt, Boolean lazyVariableValueEvaluation)
   at D_Parser.Resolver.MixinAnalysis.GetMixinContent(MixinStatement mx, ResolutionContext ctxt, Boolean takeStmtCache, VariableValue& evaluatedVariable)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.StatementHandler.HandleMixin(MixinStatement mx, Boolean parseDeclDefs, MemberFilter vis)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.StatementHandler.VisitMixinStatement(MixinStatement s)
   at D_Parser.Dom.Statements.MixinStatement.Accept[R](StatementVisitor`1 vis)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.StatementHandler.Visit(DBlockNode dbn)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.StatementHandler.Visit(DClassLike dc)
   at D_Parser.Dom.DClassLike.Accept[R](NodeVisitor`1 vis)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.scanChildren(DBlockNode curScope, MemberFilter VisibleMembers, Boolean publicImports, Boolean isBaseClass, Boolean isMixinAst, Boolean takeStaticChildrenOnly, Boolean scopeIsInInheritanceHierarchy, DSymbol resolvedCurScope)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.DeepScanClass(UserDefinedType udt, MemberFilter vis, Boolean resolveBaseClassIfRequired)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.ScanBlock(IBlockNode curScope, CodeLocation Caret, MemberFilter VisibleMembers, Boolean publicImportsOnly)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.ScanBlockUpward(IBlockNode curScope, CodeLocation Caret, MemberFilter VisibleMembers)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.IterateThroughScopeLayers(CodeLocation Caret, MemberFilter VisibleMembers)
   at D_Parser.Resolver.ASTScanner.NameScan.SearchAndResolve(ResolutionContext ctxt, CodeLocation caret, Int32 nameHash, ISyntaxRegion idObject)
   at D_Parser.Resolver.TypeResolution.TypeDeclarationResolver.ResolveIdentifier(Int32 idHash, ResolutionContext ctxt, ISyntaxRegion idObject, Boolean ModuleScope)
   at D_Parser.Resolver.ExpressionSemantics.ExpressionTypeEvaluation.GetOverloads(TemplateInstanceExpression tix, ResolutionContext ctxt, IEnumerable`1 resultBases, Boolean deduceParameters)
   at D_Parser.Resolver.ExpressionSemantics.Evaluation.Visit(TemplateInstanceExpression tix)
   at D_Parser.Dom.Expressions.TemplateInstanceExpression.Accept[R](ExpressionVisitor`1 vis)
   at D_Parser.Resolver.ExpressionSemantics.Evaluation.GetRawCallOverloads(ResolutionContext ctxt, PostfixExpression_MethodCall call, AbstractType[]& baseExpression, ISymbolValue& baseValue, TemplateInstanceExpression& tix)
   at D_Parser.Resolver.ExpressionSemantics.Evaluation.Visit(PostfixExpression_MethodCall call)
   at D_Parser.Dom.Expressions.PostfixExpression_MethodCall.Accept[R](ExpressionVisitor`1 vis)
   at D_Parser.Resolver.ExpressionSemantics.Evaluation.EvaluateValue(IExpression x, AbstractSymbolValueProvider vp)
   at D_Parser.Resolver.ExpressionSemantics.Evaluation.EvaluateValue(IExpression x, ResolutionContext ctxt, Boolean lazyVariableValueEvaluation)
   at D_Parser.Resolver.MixinAnalysis.GetMixinContent(MixinStatement mx, ResolutionContext ctxt, Boolean takeStmtCache, VariableValue& evaluatedVariable)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.StatementHandler.HandleMixin(MixinStatement mx, Boolean parseDeclDefs, MemberFilter vis)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.StatementHandler.VisitMixinStatement(MixinStatement s)
   at D_Parser.Dom.Statements.MixinStatement.Accept[R](StatementVisitor`1 vis)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.StatementHandler.Visit(DBlockNode dbn)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.StatementHandler.Visit(DClassLike dc)
   at D_Parser.Dom.DClassLike.Accept[R](NodeVisitor`1 vis)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.scanChildren(DBlockNode curScope, MemberFilter VisibleMembers, Boolean publicImports, Boolean isBaseClass, Boolean isMixinAst, Boolean takeStaticChildrenOnly, Boolean scopeIsInInheritanceHierarchy, DSymbol resolvedCurScope)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.DeepScanClass(UserDefinedType udt, MemberFilter vis, Boolean resolveBaseClassIfRequired)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.ScanBlock(IBlockNode curScope, CodeLocation Caret, MemberFilter VisibleMembers, Boolean publicImportsOnly)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.ScanBlockUpward(IBlockNode curScope, CodeLocation Caret, MemberFilter VisibleMembers)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.IterateThroughScopeLayers(CodeLocation Caret, MemberFilter VisibleMembers)
   at D_Parser.Resolver.ASTScanner.NameScan.SearchAndResolve(ResolutionContext ctxt, CodeLocation caret, Int32 nameHash, ISyntaxRegion idObject)
   at D_Parser.Resolver.TypeResolution.TypeDeclarationResolver.ResolveIdentifier(Int32 idHash, ResolutionContext ctxt, ISyntaxRegion idObject, Boolean ModuleScope)
   at D_Parser.Resolver.ExpressionSemantics.ExpressionTypeEvaluation.GetOverloads(TemplateInstanceExpression tix, ResolutionContext ctxt, IEnumerable`1 resultBases, Boolean deduceParameters)
   at D_Parser.Resolver.ExpressionSemantics.Evaluation.Visit(TemplateInstanceExpression tix)
   at D_Parser.Dom.Expressions.TemplateInstanceExpression.Accept[R](ExpressionVisitor`1 vis)
   at D_Parser.Resolver.ExpressionSemantics.Evaluation.GetRawCallOverloads(ResolutionContext ctxt, PostfixExpression_MethodCall call, AbstractType[]& baseExpression, ISymbolValue& baseValue, TemplateInstanceExpression& tix)
   at D_Parser.Resolver.ExpressionSemantics.Evaluation.Visit(PostfixExpression_MethodCall call)
   at D_Parser.Dom.Expressions.PostfixExpression_MethodCall.Accept[R](ExpressionVisitor`1 vis)
   at D_Parser.Resolver.ExpressionSemantics.Evaluation.EvaluateValue(IExpression x, AbstractSymbolValueProvider vp)
   at D_Parser.Resolver.ExpressionSemantics.Evaluation.EvaluateValue(IExpression x, ResolutionContext ctxt, Boolean lazyVariableValueEvaluation)
   at D_Parser.Resolver.MixinAnalysis.GetMixinContent(MixinStatement mx, ResolutionContext ctxt, Boolean takeStmtCache, VariableValue& evaluatedVariable)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.StatementHandler.HandleMixin(MixinStatement mx, Boolean parseDeclDefs, MemberFilter vis)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.StatementHandler.VisitMixinStatement(MixinStatement s)
   at D_Parser.Dom.Statements.MixinStatement.Accept[R](StatementVisitor`1 vis)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.StatementHandler.Visit(DBlockNode dbn)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.StatementHandler.Visit(DClassLike dc)
   at D_Parser.Dom.DClassLike.Accept[R](NodeVisitor`1 vis)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.scanChildren(DBlockNode curScope, MemberFilter VisibleMembers, Boolean publicImports, Boolean isBaseClass, Boolean isMixinAst, Boolean takeStaticChildrenOnly, Boolean scopeIsInInheritanceHierarchy, DSymbol resolvedCurScope)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.DeepScanClass(UserDefinedType udt, MemberFilter vis, Boolean resolveBaseClassIfRequired)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.ScanBlock(IBlockNode curScope, CodeLocation Caret, MemberFilter VisibleMembers, Boolean publicImportsOnly)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.ScanBlockUpward(IBlockNode curScope, CodeLocation Caret, MemberFilter VisibleMembers)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.IterateThroughScopeLayers(CodeLocation Caret, MemberFilter VisibleMembers)
   at D_Parser.Resolver.ASTScanner.NameScan.SearchAndResolve(ResolutionContext ctxt, CodeLocation caret, Int32 nameHash, ISyntaxRegion idObject)
   at D_Parser.Resolver.TypeResolution.TypeDeclarationResolver.ResolveIdentifier(Int32 idHash, ResolutionContext ctxt, ISyntaxRegion idObject, Boolean ModuleScope)
   at D_Parser.Resolver.TypeResolution.TypeDeclarationResolver.Resolve(IdentifierDeclaration id, ResolutionContext ctxt, AbstractType[] resultBases, Boolean filterForTemplateArgs)
   at D_Parser.Resolver.TypeResolution.TypeDeclarationResolver.Resolve(ITypeDeclaration declaration, ResolutionContext ctxt)
   at D_Parser.Resolver.TypeResolution.TypeDeclarationResolver.Resolve(IdentifierDeclaration id, ResolutionContext ctxt, AbstractType[] resultBases, Boolean filterForTemplateArgs)
   at D_Parser.Resolver.TypeResolution.TypeDeclarationResolver.Resolve(ITypeDeclaration declaration, ResolutionContext ctxt)
   at D_Parser.Resolver.TypeResolution.TypeDeclarationResolver.Resolve(IdentifierDeclaration id, ResolutionContext ctxt, AbstractType[] resultBases, Boolean filterForTemplateArgs)
   at D_Parser.Resolver.TypeResolution.TypeDeclarationResolver.Resolve(ITypeDeclaration declaration, ResolutionContext ctxt)
   at D_Parser.Resolver.TypeResolution.TypeDeclarationResolver.Resolve(IdentifierDeclaration id, ResolutionContext ctxt, AbstractType[] resultBases, Boolean filterForTemplateArgs)
   at D_Parser.Resolver.TypeResolution.TypeDeclarationResolver.ResolveSingle(ITypeDeclaration declaration, ResolutionContext ctxt)
   at D_Parser.Resolver.TypeResolution.TypeDeclarationResolver.NodeMatchHandleVisitor.VisitAliasDefinition(DVariable v)
   at D_Parser.Resolver.TypeResolution.TypeDeclarationResolver.NodeMatchHandleVisitor.Visit(ImportSymbolAlias importSymbolAlias)
   at D_Parser.Dom.ImportSymbolAlias.Accept[R](NodeVisitor`1 vis)
   at D_Parser.Resolver.TypeResolution.TypeDeclarationResolver.HandleNodeMatch(INode m, ResolutionContext ctxt, AbstractType resultBase, ISyntaxRegion typeBase, NodeMatchHandleVisitor vis)
   at D_Parser.Resolver.ASTScanner.NameScan.HandleItem(INode n)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.StatementHandler.Visit(ImportStatement impStmt)
   at D_Parser.Dom.ImportStatement.Accept[R](StatementVisitor`1 vis)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.StatementHandler.Visit(DBlockNode dbn)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.StatementHandler.Visit(DClassLike dc)
   at D_Parser.Dom.DClassLike.Accept[R](NodeVisitor`1 vis)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.scanChildren(DBlockNode curScope, MemberFilter VisibleMembers, Boolean publicImports, Boolean isBaseClass, Boolean isMixinAst, Boolean takeStaticChildrenOnly, Boolean scopeIsInInheritanceHierarchy, DSymbol resolvedCurScope)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.DeepScanClass(UserDefinedType udt, MemberFilter vis, Boolean resolveBaseClassIfRequired)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.ScanBlock(IBlockNode curScope, CodeLocation Caret, MemberFilter VisibleMembers, Boolean publicImportsOnly)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.ScanBlockUpward(IBlockNode curScope, CodeLocation Caret, MemberFilter VisibleMembers)
   at D_Parser.Resolver.ASTScanner.AbstractVisitor.IterateThroughScopeLayers(CodeLocation Caret, MemberFilter VisibleMembers)
   at D_Parser.Resolver.ASTScanner.NameScan.SearchAndResolve(ResolutionContext ctxt, CodeLocation caret, Int32 nameHash, ISyntaxRegion idObject)
   at D_Parser.Resolver.TypeResolution.TypeDeclarationResolver.ResolveIdentifier(Int32 idHash, ResolutionContext ctxt, ISyntaxRegion idObject, Boolean ModuleScope)
   at D_Parser.Resolver.TypeResolution.TypeDeclarationResolver.Resolve(IdentifierDeclaration id, ResolutionContext ctxt, AbstractType[] resultBases, Boolean filterForTemplateArgs)
   at D_Parser.Resolver.TypeResolution.TypeDeclarationResolver.ResolveSingle(ITypeDeclaration declaration, ResolutionContext ctxt)
   at D_Parser.Resolver.TypeResolution.DResolver.<>c__DisplayClass4.<ResolveTypeLoosely>b__3()
   at System.Threading.Tasks.Task.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at D_Parser.Completion.CodeCompletion.DoTimeoutableCompletionTask(ICompletionDataGenerator cdgen, ResolutionContext ctxt, Action ac, Int32 timeout)
   at D_Parser.Resolver.TypeResolution.DResolver.ResolveTypeLoosely(IEditorData editor, NodeResolutionAttempt& resolutionAttempt, ResolutionContext ctxt)
   at MonoDevelop.D.Resolver.DResolverWrapper.ResolveHoveredCodeLoosely(ResolutionContext& ctxt, IEditorData& ed, NodeResolutionAttempt& resolutionAttempt, Document doc)
   at MonoDevelop.D.Refactoring.RefactoringCommandCapsule.Update(Document doc)
   at MonoDevelop.D.Refactoring.RefactoringCommandsExtension.Update()
   at MonoDevelop.D.Refactoring.RefactoringCommandsExtension.GotoDeclaration()
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
   at MonoDevelop.Components.Commands.CommandHandlerInfo.Run(Object cmdTarget, Command cmd)
   at MonoDevelop.Components.Commands.CommandManager.<>c__DisplayClassb.<DispatchCommand>b__2()
   at MonoDevelop.Components.Commands.CommandManager.DispatchCommand(Object commandId, Object dataItem, Object initialTarget, CommandSource source)
Orvid commented 9 years ago

Well, this appears to be a reproducible case of aBothe/D_Parser#180, so I'll leave this cross-reference here and close this issue.

extrawurst commented 9 years ago

@Orvid are u sure ? it is a totally different exception type, right ?

Orvid commented 9 years ago

The innermost exception, the one that was originally thrown, is the same, so yes, it should be.