Browse Source

Use AddRange for Arguments of expressions.

pull/191/merge
Eusebiu Marcu 15 years ago
parent
commit
e21dfe2a78
  1. 12
      Debugger/Debugger.Core/NRefactory/Ast/ExpressionExtensionMethods.cs
  2. 4
      Debugger/ILSpy.Debugger/Services/Debugger/DebuggerHelper.cs

12
Debugger/Debugger.Core/NRefactory/Ast/ExpressionExtensionMethods.cs

@ -108,9 +108,7 @@ namespace ICSharpCode.NRefactory.Ast @@ -108,9 +108,7 @@ namespace ICSharpCode.NRefactory.Ast
if (memberInfo is MethodInfo) {
var mre = new MemberReferenceExpression() { Target = target, MemberName = memberInfo.Name };
var ie = new InvocationExpression() { Target = mre.Clone() };
foreach (var element in AddExplicitTypes((MethodInfo)memberInfo, args)) {
ie.AddChild(element, AstNode.Roles.Argument);
}
ie.Arguments.AddRange(AddExplicitTypes((MethodInfo)memberInfo, args));
return ie.SetStaticType(memberInfo.MemberType);
}
@ -121,13 +119,13 @@ namespace ICSharpCode.NRefactory.Ast @@ -121,13 +119,13 @@ namespace ICSharpCode.NRefactory.Ast
if (memberInfo.Name != "Item")
throw new DebuggerException("Arguments expected only for the Item property");
var ie = new IndexerExpression() { Target = target.Clone() };
ie.Arguments.AddRange(AddExplicitTypes(propInfo.GetGetMethod() ?? propInfo.GetSetMethod(), args));
foreach (var element in AddExplicitTypes(propInfo.GetGetMethod() ?? propInfo.GetSetMethod(), args)) {
ie.AddChild(element, AstNode.Roles.Argument);
}
return ie.SetStaticType(memberInfo.MemberType);
} else {
return (new MemberReferenceExpression() { Target = target.Clone(), MemberName = memberInfo.Name }).SetStaticType(memberInfo.MemberType);
return (new MemberReferenceExpression() {
Target = target.Clone(),
MemberName = memberInfo.Name }).SetStaticType(memberInfo.MemberType);
}
}

4
Debugger/ILSpy.Debugger/Services/Debugger/DebuggerHelper.cs

@ -30,9 +30,7 @@ namespace ILSpy.Debugger.Services.Debugger @@ -30,9 +30,7 @@ namespace ILSpy.Debugger.Services.Debugger
Expression iEnumerableVariableExplicitCast = new CastExpression { Expression = iEnumerableVariable.Clone() , Type = iEnumerableType.GetTypeReference() };
var obj = new ObjectCreateExpression() { Type = listType.GetTypeReference() };
foreach (var element in iEnumerableVariableExplicitCast.ToList()) {
obj.AddChild(element, AstNode.Roles.Argument);
}
obj.Arguments.AddRange(iEnumerableVariableExplicitCast.ToList());
return obj;
}

Loading…
Cancel
Save