Browse Source

convert C#ˈs undocumented expressions to method calls

pull/254/head
Siegfried Pammer 14 years ago
parent
commit
71b808dc3d
  1. 30
      NRefactory/ICSharpCode.NRefactory.VB/Visitors/CSharpToVBConverterVisitor.cs

30
NRefactory/ICSharpCode.NRefactory.VB/Visitors/CSharpToVBConverterVisitor.cs

@ -54,7 +54,7 @@ namespace ICSharpCode.NRefactory.VB.Visitors
ConvertNodes(anonymousMethodExpression.Parameters, expr.Parameters); ConvertNodes(anonymousMethodExpression.Parameters, expr.Parameters);
if (members.Pop().inIterator) { if (members.Pop().inIterator) {
expr.Modifiers |= Modifiers.Iterator; expr.Modifiers |= LambdaExpressionModifiers.Iterator;
} }
return EndNode(anonymousMethodExpression, expr); return EndNode(anonymousMethodExpression, expr);
@ -62,10 +62,29 @@ namespace ICSharpCode.NRefactory.VB.Visitors
public AstNode VisitUndocumentedExpression(CSharp.UndocumentedExpression undocumentedExpression, object data) public AstNode VisitUndocumentedExpression(CSharp.UndocumentedExpression undocumentedExpression, object data)
{ {
// 29.06.2011 20:28:36 Siegfried Pammer: wie soll ich die behandeln? var invocation = new InvocationExpression();
// 29.06.2011 20:28:58 Siegfried Pammer: throw new NotSupportedException(); ?
// 29.06.2011 20:35:50 Daniel Grunwald: da würde ich wieder Pseudo-Funktionen einführen switch (undocumentedExpression.UndocumentedExpressionType) {
throw new NotImplementedException(); case CSharp.UndocumentedExpressionType.ArgListAccess:
case CSharp.UndocumentedExpressionType.ArgList:
invocation.Target = new IdentifierExpression { Identifier = "__ArgList" };
break;
case CSharp.UndocumentedExpressionType.RefValue:
invocation.Target = new IdentifierExpression { Identifier = "__RefValue" };
break;
case CSharp.UndocumentedExpressionType.RefType:
invocation.Target = new IdentifierExpression { Identifier = "__RefType" };
break;
case CSharp.UndocumentedExpressionType.MakeRef:
invocation.Target = new IdentifierExpression { Identifier = "__MakeRef" };
break;
default:
throw new Exception("Invalid value for UndocumentedExpressionType");
}
ConvertNodes(undocumentedExpression.Arguments, invocation.Arguments);
return EndNode(undocumentedExpression, invocation);
} }
public AstNode VisitArrayCreateExpression(CSharp.ArrayCreateExpression arrayCreateExpression, object data) public AstNode VisitArrayCreateExpression(CSharp.ArrayCreateExpression arrayCreateExpression, object data)
@ -583,6 +602,7 @@ namespace ICSharpCode.NRefactory.VB.Visitors
public AstNode VisitEmptyExpression(CSharp.EmptyExpression emptyExpression, object data) public AstNode VisitEmptyExpression(CSharp.EmptyExpression emptyExpression, object data)
{ {
// TODO : not used in ILSpy currently
throw new NotImplementedException(); throw new NotImplementedException();
} }

Loading…
Cancel
Save