Skip to content

Commit ab377b6

Browse files
committed
Initial (unsuccessful) attempt at #91
1 parent 6332305 commit ab377b6

1 file changed

Lines changed: 24 additions & 1 deletion

File tree

Shared/ObjectNotationFormatter.cs

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,11 @@ private void WriteObjectCreation(object o) {
112112
Write(" = ");
113113

114114
if (x.PropertyType.InheritsFromOrImplementsAny(PropertyTypes)) {
115+
116+
// https://github.com/zspitz/ExpressionToString/issues/91
117+
//var parameterDeclaration = o is LambdaExpression && x.Name == "Parameters";
118+
//WriteCollection(value as IEnumerable, x.Name, parameterDeclaration);
119+
115120
WriteCollection(value as IEnumerable, x.Name);
116121
} else if (x.PropertyType.InheritsFromOrImplementsAny(NodeTypes)) {
117122
WriteNode(x.Name, value);
@@ -135,6 +140,10 @@ private void WriteCollection(IEnumerable seq, string pathSegment) {
135140
Write(" {");
136141
Indent();
137142
WriteEOL();
143+
144+
// https://github.com/zspitz/ExpressionToString/issues/91
145+
//WriteNodes(pathSegment, items, true, ",", parameterDeclaration)
146+
;
138147
WriteNodes(pathSegment, items, true);
139148
WriteEOL(true);
140149
Write("}");
@@ -154,7 +163,11 @@ private Type writeNew(object o) {
154163
protected override void WriteBinary(BinaryExpression expr) => WriteObjectCreation(expr);
155164
protected override void WriteUnary(UnaryExpression expr) => WriteObjectCreation(expr);
156165
protected override void WriteLambda(LambdaExpression expr) => WriteObjectCreation(expr);
166+
167+
// https://github.com/zspitz/ExpressionToString/issues/91
168+
//protected override void WriteParameter(ParameterExpression expr) => Write(expr.Name);
157169
protected override void WriteParameter(ParameterExpression expr) => WriteObjectCreation(expr);
170+
158171
protected override void WriteConstant(ConstantExpression expr) => WriteObjectCreation(expr);
159172
protected override void WriteMemberAccess(MemberExpression expr) => WriteObjectCreation(expr);
160173
protected override void WriteNew(NewExpression expr) => WriteObjectCreation(expr);
@@ -196,6 +209,16 @@ private Type writeNew(object o) {
196209
protected override void WriteSetMemberBinder(SetMemberBinder setMemberBinder, IList<Expression> args) => throw new NotImplementedException();
197210
protected override void WriteUnaryOperationBinder(UnaryOperationBinder unaryOperationBinder, IList<Expression> args) => throw new NotImplementedException();
198211

199-
protected override void WriteParameterDeclarationImpl(ParameterExpression prm) => WriteObjectCreation(prm);
212+
// We can't use this yet
213+
// https://github.com/zspitz/ExpressionToString/issues/91
214+
protected override void WriteParameterDeclarationImpl(ParameterExpression prm) {
215+
if (language == CSharp) {
216+
Write($"var ");
217+
} else if (language == VisualBasic) {
218+
Write($"Dim ");
219+
}
220+
Write($"{prm.Name} = ");
221+
WriteObjectCreation(prm);
222+
}
200223
}
201224
}

0 commit comments

Comments
 (0)