61 Commits
Author SHA1 Message Date
Siegfried Pammer 2e7991eee3 TransformDisplayClassUsage: Fix #3233 by ignoring nullability annotations, when trying to find a variable to reuse/propagate. 2024-07-27 14:21:38 +02:00
Siegfried Pammer ca78d4a14d Use MetadataFile instead of PEFile in TypeSystem. 2024-03-24 15:35:13 +01:00
ElektroKill b110d5c2dc Implement support for Visual Basic yield return state machines 2023-03-26 14:16:29 +02:00
Siegfried Pammer f801059659 TDCU: make sure that copies of display-class variables are validated as well. 2021-11-24 22:07:34 +01:00
Siegfried Pammer e1ca4db851 Fix #2527: Support skip locals init 2021-10-29 00:16:33 +02:00
Siegfried Pammer 62fc4bc1a3 Fix #1858, Fix #2188: Remove variables that contain copies of display-class variables. 2021-06-03 11:51:35 +02:00
Siegfried Pammer 584d1847df Fix #2405: Assertion fail in TDCU 2021-05-29 22:31:31 +02:00
Siegfried Pammer d92dd153fc #2390: Make sure all unused captured variables are removed even in lambdas. 2021-05-08 14:36:04 +02:00
Siegfried Pammer 3a7c69e5b9 Fix #2192: Add support for VB.NET delegate construction 2020-10-23 21:38:38 +02:00
Siegfried Pammer 71b54e87a0 Fix #2174: Some compilers produce display class ctors with unused local variables 2020-10-04 21:15:13 +02:00
Siegfried Pammer 5d244efab6 Fix #2149: handle uninitialized fields of display classes as variables with HasInitialValue = true. Might happen in obfuscated code. 2020-09-06 14:37:18 +02:00
Siegfried Pammer c74680df33 Fix #1781: TDCU: Support methods without .locals init 2020-08-30 16:15:43 +02:00
Siegfried Pammer 52263da8df #2129: prevent state-machines from being treated as display classes. 2020-08-30 12:33:12 +02:00
dotnet format 0d9f871a4f #2128: Reformat the whole code base. 2020-08-28 01:05:38 +02:00
Siegfried Pammer e7d49b2305 Fix #2079: Allow variables generated from state-machine fields to be propagated in TDCU. 2020-08-08 19:52:41 +02:00
Daniel Grunwald 2acc4339df #2058: Mark most transforms as public to help users that use the ILAst directly without decompiling to C#. 2020-07-22 21:25:22 +02:00
Siegfried Pammer 5da3b87845 Fix #2060: Add support for alternate code patterns in TransformDisplayClassUsage.ValidateConstructor 2020-07-16 20:27:13 +02:00
Daniel Grunwald 80063e3c15 Fix TDCU's version of copy propagation being too aggressive. 2020-06-11 16:14:35 +02:00
Siegfried Pammer fcc910cb4d Cleanup and refactoring after code review 2020-06-06 10:46:26 +02:00
Siegfried Pammer 0b8824ca84 Fix two small bugs in TDCU 2020-05-30 09:22:44 +02:00
Siegfried Pammer 101aba3362 Validate uses of display-class variable copies before removing them 2020-05-24 20:04:54 +02:00
Siegfried Pammer d4fd92bf0f Fix initializer block detection of display structs. 2020-05-21 20:31:37 +02:00
Siegfried Pammer ab336cdc94 Fix build. 2020-05-18 22:16:54 +02:00
Siegfried Pammer d457ef38f4 Make ValidateConstructor safe 2020-05-17 12:14:54 +02:00
Siegfried Pammer f1cbc7c8db Add AggressiveScalarReplacementOfAggregates option 2020-05-17 10:14:10 +02:00
Siegfried Pammer 53c593af0b Fixed all TDCU related tests. 2020-05-17 09:12:24 +02:00
Siegfried Pammer b6259b7dca Fix #1981: Ensure correctness of TDCU 2020-05-12 19:04:53 +02:00
Siegfried Pammer 69ac54fbb6 Fix #1879: Do not remove variables that look like display class variables, but are used in other patterns as well. 2020-04-03 21:37:27 +02:00
Siegfried Pammer 5ee172d4c4 Fix #1900: RemoveDeadVariableInit.ResetHasInitialValueFlag should handle local functions 2020-03-29 21:30:45 +02:00
Siegfried Pammer bef75321fb #1913: Do not destroy control-flow by removing return statements 2020-02-29 20:40:19 +01:00
Siegfried Pammer 73e0f7c3ac Fix #1936: TransformDisplayClassUsage should remove copies of display-class references. 2020-02-27 20:43:44 +01:00
Siegfried Pammer d8a08822b7 Fix #1879: Incorrectly detected display class. 2019-12-28 22:49:31 +01:00
Siegfried Pammer f831e4713f Fix #1867: Captures of copies of this are not properly handled by the decompiler 2019-12-20 11:12:00 +01:00
SilverFox 33f96fd888 Fix tests LocalFunctions.NestedCapture1 2019-11-15 08:06:33 +08:00
Siegfried Pammer 9bb2ea872c Fix #1773: Remove copies of parameter values only if the types match exactly. 2019-11-01 23:12:32 +01:00
Siegfried Pammer 8470d87cb5 Merge branch '5.0.x' of https://github.com/icsharpcode/ILSpy 2019-10-31 20:55:20 +01:00
Siegfried Pammer 413c9eba2c #1759: Follow-up: Handle nested generic arguments as well. 2019-10-31 20:34:25 +01:00
Siegfried Pammer e52ac90cfc Merge branch '5.0.x' of https://github.com/icsharpcode/ILSpy 2019-10-31 20:02:42 +01:00
Siegfried Pammer 6330be36b3 Fix #1759: Substitute display-class type parameters with method type parameters in TransformDisplayClassUsage. 2019-10-25 15:40:27 +02:00
Siegfried Pammer b8ee3d4183 Respect decompiler settings in TransformDisplayClassUsage. 2019-10-25 15:38:03 +02:00
Siegfried Pammer 7c8458dfa3 Refactor TransformDisplayClassUsage 2019-09-28 19:09:55 +02:00
Siegfried Pammer 81e702f840 #1638: Make TransformDisplayClassUsage.IsPotentialClosure less aggressive 2019-08-17 22:15:40 +02:00
Siegfried Pammer 0ca5ace524 #1349: Fix assertions triggered by incorrect local function decompilation. 2019-08-05 14:38:26 +02:00
Siegfried Pammer 2ca8c31d8e Fix ArgumentException: ignore duplicate keys after variable splitting in TransformDisplayClassUsage 2019-07-27 21:33:59 +02:00
Siegfried Pammer 7d62a7e032 Reset HasInitialValue flag after TransformDisplayClassUsage. 2019-07-27 15:07:41 +02:00
Siegfried Pammer e5f95143cf TransformDisplayClassUsage: set HasInitialValue = true for newly introduced locals. 2019-07-26 19:38:01 +02:00
Siegfried Pammer f10ab69328 Improve local-function detection to minimize false positives. 2019-07-23 18:33:38 +02:00
Siegfried Pammer a109b77858 Refactor LocalFunctionDecompiler to allow mutually recursive local functions to be decompiled correctly. 2019-07-23 01:13:12 +02:00
Siegfried Pammer 8bfd17404b Merge branch 'master' of https://github.com/icsharpcode/ILSpy into local-functions 2019-07-18 21:50:23 +02:00
Daniel Grunwald 33c7425fa2 Fix several bugs with compound assignments on indexers.
Closes #1580.
2019-07-18 20:42:01 +02:00