Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move transforms that read IL to an earlier stage in the decompiler pipeline #1589

Open
siegfriedpammer opened this issue Jul 18, 2019 · 2 comments
Labels
C# Decompiler The decompiler engine itself Enhancement Areas for improvement

Comments

@siegfriedpammer
Copy link
Member

The following transforms introduce large sub-trees into the ILAst of an ILFunction, but happen relatively late in the decompiler pipeline:

  • DelegateConstruction
  • LocalFunctionDecompiler
@siegfriedpammer siegfriedpammer added C# Decompiler The decompiler engine itself Enhancement Areas for improvement labels Jul 18, 2019
@dgrunwald
Copy link
Member

Primary reason is that we want to also move the DisplayClass-transform to an earlier point; because it turns field accesses into local variable accesses; and some transforms (e.g. using) require local variables.

@dgrunwald
Copy link
Member

Problem: display classes are also used for expression trees, so moving lambdas/local functions to an earlier point is not sufficient to fix all problems with the using transform.

And there's very little reason to move lambdas/local functions when we can't also move the display class transform.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C# Decompiler The decompiler engine itself Enhancement Areas for improvement
Projects
None yet
Development

No branches or pull requests

2 participants