@@ -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