Browse Source

Adjust decompiler to NRefactory changes.

pull/205/merge
Daniel Grunwald 14 years ago
parent
commit
9db07b54c5
  1. 1
      ICSharpCode.Decompiler/Ast/AstBuilder.cs
  2. 4
      ICSharpCode.Decompiler/Ast/AstMethodBodyBuilder.cs
  3. 8
      ICSharpCode.Decompiler/Ast/Transforms/CombineQueryExpressions.cs

1
ICSharpCode.Decompiler/Ast/AstBuilder.cs

@ -1490,6 +1490,7 @@ namespace ICSharpCode.Decompiler.Ast
ArrayType arrayType = argument.Type as ArrayType; ArrayType arrayType = argument.Type as ArrayType;
return new ArrayCreateExpression { return new ArrayCreateExpression {
Type = ConvertType(arrayType != null ? arrayType.ElementType : argument.Type), Type = ConvertType(arrayType != null ? arrayType.ElementType : argument.Type),
AdditionalArraySpecifiers = { new ArraySpecifier() },
Initializer = arrayInit Initializer = arrayInit
}; };
} else if (argument.Value is CustomAttributeArgument) { } else if (argument.Value is CustomAttributeArgument) {

4
ICSharpCode.Decompiler/Ast/AstMethodBodyBuilder.cs

@ -716,7 +716,7 @@ namespace ICSharpCode.Decompiler.Ast
oce.Initializer = new ArrayInitializerExpression(); oce.Initializer = new ArrayInitializerExpression();
for (int i = 0; i < args.Count; i++) { for (int i = 0; i < args.Count; i++) {
oce.Initializer.Elements.Add( oce.Initializer.Elements.Add(
new NamedArgumentExpression { new NamedExpression {
Identifier = ctor.Parameters[i].Name, Identifier = ctor.Parameters[i].Name,
Expression = args[i] Expression = args[i]
}); });
@ -764,7 +764,7 @@ namespace ICSharpCode.Decompiler.Ast
if (m.Success) { if (m.Success) {
MemberReferenceExpression mre = m.Get<MemberReferenceExpression>("left").Single(); MemberReferenceExpression mre = m.Get<MemberReferenceExpression>("left").Single();
initializer.Elements.Add( initializer.Elements.Add(
new NamedArgumentExpression { new NamedExpression {
Identifier = mre.MemberName, Identifier = mre.MemberName,
Expression = m.Get<Expression>("right").Single().Detach() Expression = m.Get<Expression>("right").Single().Detach()
}.CopyAnnotationsFrom(mre)); }.CopyAnnotationsFrom(mre));

8
ICSharpCode.Decompiler/Ast/Transforms/CombineQueryExpressions.cs

@ -81,8 +81,8 @@ namespace ICSharpCode.Decompiler.Ast.Transforms
Expression = new ObjectCreateExpression { Expression = new ObjectCreateExpression {
Initializer = new ArrayInitializerExpression { Initializer = new ArrayInitializerExpression {
Elements = { Elements = {
new NamedNode("nae1", new NamedArgumentExpression { Expression = new IdentifierExpression() }), new NamedNode("nae1", new NamedExpression { Expression = new IdentifierExpression() }),
new NamedNode("nae2", new NamedArgumentExpression { Expression = new AnyNode() }) new NamedNode("nae2", new NamedExpression { Expression = new AnyNode() })
} }
} }
}}; }};
@ -100,8 +100,8 @@ namespace ICSharpCode.Decompiler.Ast.Transforms
if (!match.Success) if (!match.Success)
return false; return false;
QuerySelectClause selectClause = (QuerySelectClause)innerQuery.Clauses.Last(); QuerySelectClause selectClause = (QuerySelectClause)innerQuery.Clauses.Last();
NamedArgumentExpression nae1 = match.Get<NamedArgumentExpression>("nae1").Single(); NamedExpression nae1 = match.Get<NamedExpression>("nae1").Single();
NamedArgumentExpression nae2 = match.Get<NamedArgumentExpression>("nae2").Single(); NamedExpression nae2 = match.Get<NamedExpression>("nae2").Single();
if (nae1.Identifier != ((IdentifierExpression)nae1.Expression).Identifier) if (nae1.Identifier != ((IdentifierExpression)nae1.Expression).Identifier)
return false; return false;
IdentifierExpression nae2IdentExpr = nae2.Expression as IdentifierExpression; IdentifierExpression nae2IdentExpr = nae2.Expression as IdentifierExpression;

Loading…
Cancel
Save