- 26 8月, 2017 1 次提交
-
-
由 Gen Lu 提交于
-
- 12 8月, 2017 1 次提交
-
-
由 Gen Lu 提交于
-
- 11 8月, 2017 7 次提交
-
-
由 Gen Lu 提交于
-
由 Gen Lu 提交于
-
由 Gen Lu 提交于
-
由 Andy Gocke 提交于
Currently, the lambda rewriter has an early optimization pass in analysis that tries to find all local functions that only capture 'this' and remove references to local functions that do the same. There are two problems with this approach: 1) Generally, removing information from the tree is a bad idea because it hurts further analysis passes that may have needed that information. 2) The optimization strategy itself is very tricky and has a number of complex corner cases. This has lead to bugs, for example #19033. This PR deletes the current method and adds a new optimization routine at the end of the analysis, operating on assigned scopes and environments rather than removing captured variable analysis. The new optimization is as follows: if we end up with an environment containing only 'this', the environment can be removed, all containing methods can be moved to the top-level type, and all environments which capture the 'this' environment can instead directly capture the 'this' parameter. This produces almost the same results as the previous optimization, but is easier to validate as an algebraic equivalence. The baseline changes come from the new optimization being less aggressive about moving functions which only capture 'this' to the top level. This appears to be a wash -- some codegen gets slightly better, some gets slightly worse. Fixes #19033 Fixes #20577
-
由 Gen Lu 提交于
-
由 Tomáš Matoušek 提交于
* Compare lines instead of using AssertXml when validating PDBs. AssertXml doesn't validate ordering. * Reorder expected PDB XML nodes to match actual order * Update to the latest Microsoft.DiaSymReader.* packages. * Enable embedding sources to Windows PDBs
-
由 Fredric Silberberg 提交于
-
- 09 8月, 2017 5 次提交
-
-
由 Petr Onderka 提交于
Merged on behalf of @svick Thanks for the contribution!
-
由 Gen Lu 提交于
-
由 Tomáš Matoušek 提交于
* Clean up Concord exception utilities * Avoid dependency on IL stream in EnC local slot mapping * Fix lambda EnC
-
由 Gen Lu 提交于
-
由 Fredric Silberberg 提交于
-
- 08 8月, 2017 4 次提交
-
-
由 Jinu 提交于
* Tagging VB/C# Ioperation tests * Fix the Wrong Tagging
-
由 Andy Gocke 提交于
The frame creation pass now considers scope of captured variable introduction instead of closure creation, so the ordering can change if two or more nested functions access variables 'outside-in', e.g. ```csharp { int x = 0; { int y = 0; int L1() => y; { int z = 0; int L2() => x; } } } ``` If we visit closures in-order in the previous example, we create frames for L1, then L2. If we visit captured variables scopes, however, we visit `x` (captured by L2), then `y` (captued by L1).
-
由 Andy Gocke 提交于
This is part of the effort to move as much logic from LambdaRewriter into Analysis as possible. The more logic there is in the Rewriter, the more difficult it is to find calculation problems until the last possible moment, and it's also very difficult to calculate useful information for later analysis passes, like the final debug and closure IDs for each environment.
-
由 Julien Couvreur 提交于
-
- 06 8月, 2017 1 次提交
-
-
由 Fredric Silberberg 提交于
-
- 05 8月, 2017 10 次提交
-
-
由 Tomáš Matoušek 提交于
-
由 Fredric Silberberg 提交于
-
由 Fredric Silberberg 提交于
-
由 Fredric Silberberg 提交于
-
由 Fredric Silberberg 提交于
-
由 Fredric Silberberg 提交于
-
由 Fredric Silberberg 提交于
-
由 Fredric Silberberg 提交于
-
由 Fredric Silberberg 提交于
-
由 Fredric Silberberg 提交于
-
- 04 8月, 2017 3 次提交
-
-
由 Fredric Silberberg 提交于
-
由 Heejae Chang 提交于
fixed issue in C# GetBindableSyntaxNode which return bindable node that is outside of SemanticModel.Root
-
由 Julien Couvreur 提交于
-
- 03 8月, 2017 8 次提交
-
-
由 Gen Lu 提交于
-
由 Jinu 提交于
* Adding ioperation tests for WhileUntilLoopStatement * Addressing Feedback * Removing redundant Nested tests * Removing the empty lines
-
由 Fredric Silberberg 提交于
-
由 Heejae Chang 提交于
-
由 Petr Onderka 提交于
Merging on behalf of @svick Thanks for the contribution!
-
由 Heejae Chang 提交于
-
由 Jared Parsons 提交于
-
由 Heejae Chang 提交于
-