ExpressionTreeToString
ExpressionTreeToString copied to clipboard
String representations of expression trees + library of expression tree objects
The current editorconfig specifies that private members should be camel-cased, while non-private members should be Pascal-cased. I'm not sure what to do about [`InsertionPoint`](https://github.com/zspitz/ExpressionTreeToString/blob/master/Library/WriterVisitorBase.cs#L11). It feels as though the fields...
For C#, `ref` and `out` are required in both the parameter declaration and the method call. I think we're already handling the parameter declaration, but if the method call expects...
Expressions that use fields within a class: ```csharp class Foo { string bar; Expression GetExpression() => () => bar; } ``` are generated as: ``` LambdaExpression - Body: MemberExpression -...
it has some tree to String stuff and complex trees
The original scenario for which this library was written -- for use within a debugging visualizer -- didn't require multithreaded safety, because AFAICT [a VS debugger visualizer can only use...
The current signature of `WriteBlock` looks like this: ``` protected abstract void WriteBlock(BlockExpression expr, object? metadata); ``` where `metadata` is language-specific information about how the block needs to be formatted....
See [here](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/expression-trees/debugview-syntax#constantexpression).
Whenever the underlying `RenderLiteral` function encounters something it cannot render, it returns `#`, e.g. `#CSharpInvokeMemberBinder`. Since these are very much a part of constructing dynamic expressions, it would provide value...
Extensibility: allow for types not derived from Expression or other types in System.Linq.Expressions
Currently, in order to figure out which object is a node while visiting, we use a `List` for node types: ```csharp public readonly static List NodeTypes = new List() {...
Currently there is no general mechanism for a parent node to pass information to the child node's `WriteNode` call. We're already running into this: * Distinguishing between parameter declarations and...