Browse Source

Merge pull request #398 from RKlier/CtorJumps

Fix #220: Link constructor calls to constructor rather than type + add link for constructor calls to this() and base()
pull/401/merge
Daniel Grunwald 12 years ago
parent
commit
60237354de
  1. 9
      ICSharpCode.Decompiler/Ast/TextOutputFormatter.cs

9
ICSharpCode.Decompiler/Ast/TextOutputFormatter.cs

@ -84,7 +84,9 @@ namespace ICSharpCode.Decompiler.Ast @@ -84,7 +84,9 @@ namespace ICSharpCode.Decompiler.Ast
{
AstNode node = nodeStack.Peek();
MemberReference memberRef = node.Annotation<MemberReference>();
if (memberRef == null && node.Role == Roles.TargetExpression && (node.Parent is InvocationExpression || node.Parent is ObjectCreateExpression)) {
if ((node.Role == Roles.Type && node.Parent is ObjectCreateExpression) ||
(memberRef == null && node.Role == Roles.TargetExpression && (node.Parent is InvocationExpression || node.Parent is ObjectCreateExpression)))
{
memberRef = node.Parent.Annotation<MemberReference>();
}
return memberRef;
@ -160,6 +162,11 @@ namespace ICSharpCode.Decompiler.Ast @@ -160,6 +162,11 @@ namespace ICSharpCode.Decompiler.Ast
public void WriteKeyword(string keyword)
{
MemberReference memberRef = GetCurrentMemberReference();
var node = nodeStack.Peek();
if (memberRef != null && node is ConstructorInitializer)
output.WriteReference(keyword, memberRef);
else
output.Write(keyword);
}

Loading…
Cancel
Save