Browse Source

Indexer decompilation support.

Conflicts:

	ICSharpCode.Decompiler/Ast/AstBuilder.cs
newNRvisualizers
Artur Zgodziski 15 years ago
parent
commit
fdf1dac373
  1. 4
      ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/Accessor.cs
  2. 15
      ICSharpCode.NRefactory/CSharp/OutputVisitor/OutputVisitor.cs

4
ICSharpCode.NRefactory/CSharp/Ast/TypeMembers/Accessor.cs

@ -57,6 +57,10 @@ namespace ICSharpCode.NRefactory.CSharp
set { SetChildByRole (Roles.Body, value); } set { SetChildByRole (Roles.Body, value); }
} }
public AstNodeCollection<ParameterDeclaration> Parameters {
get { return GetChildrenByRole(Roles.Parameter); }
}
public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data) public override S AcceptVisitor<T, S>(IAstVisitor<T, S> visitor, T data)
{ {
return visitor.VisitAccessor (this, data); return visitor.VisitAccessor (this, data);

15
ICSharpCode.NRefactory/CSharp/OutputVisitor/OutputVisitor.cs

@ -202,8 +202,21 @@ namespace ICSharpCode.NRefactory.CSharp
{ {
WriteCommaSeparatedListInParenthesis(list.SafeCast<ParameterDeclaration, AstNode>(), spaceWithin); WriteCommaSeparatedListInParenthesis(list.SafeCast<ParameterDeclaration, AstNode>(), spaceWithin);
} }
#endif #endif
void WriteCommaSeparatedListInBrackets(IEnumerable<ParameterDeclaration> list, bool spaceWithin)
{
WriteToken("[", AstNode.Roles.LBracket);
if (list.Any())
{
Space(spaceWithin);
WriteCommaSeparatedList(list.SafeCast<ParameterDeclaration, AstNode>());
Space(spaceWithin);
}
WriteToken("]", AstNode.Roles.RBracket);
}
void WriteCommaSeparatedListInBrackets(IEnumerable<Expression> list) void WriteCommaSeparatedListInBrackets(IEnumerable<Expression> list)
{ {
WriteToken("[", AstNode.Roles.LBracket); WriteToken("[", AstNode.Roles.LBracket);
@ -1815,7 +1828,7 @@ namespace ICSharpCode.NRefactory.CSharp
WritePrivateImplementationType(indexerDeclaration.PrivateImplementationType); WritePrivateImplementationType(indexerDeclaration.PrivateImplementationType);
WriteKeyword("this"); WriteKeyword("this");
Space(policy.BeforeMethodDeclarationParentheses); Space(policy.BeforeMethodDeclarationParentheses);
WriteCommaSeparatedListInParenthesis(indexerDeclaration.Parameters, policy.WithinMethodDeclarationParentheses); WriteCommaSeparatedListInBrackets(indexerDeclaration.Parameters, policy.WithinMethodDeclarationParentheses);
OpenBrace(policy.PropertyBraceStyle); OpenBrace(policy.PropertyBraceStyle);
// output get/set in their original order // output get/set in their original order
foreach (AstNode node in indexerDeclaration.Children) { foreach (AstNode node in indexerDeclaration.Children) {

Loading…
Cancel
Save