62 Commits
Author SHA1 Message Date
Siegfried Pammer 02d2a8c1f8 Add metadata processing for C# 12 'ref readonly' parameters 2024-07-19 18:40:08 +02:00
Siegfried Pammer 539925f259 Fix #2983: display-class locals should be named uniquely per top-level ILFunction. Add assertion to ResolveCollisions: ensure that colliding/merged variables have the same type. 2023-05-18 14:10:07 +02:00
Siegfried Pammer 47250d670b Fix #2791: Ensure that the capture scope used is either a loop or the ILFunction root container. 2022-10-03 16:09:18 +02:00
Daniel Grunwald b4b070468f Revert "Performance Optimization: Do no longer collect all lower case type and member names."
This reverts commit 6584a2f576.
2022-07-17 08:37:38 +02:00
Siegfried Pammer 6584a2f576 Performance Optimization: Do no longer collect all lower case type and member names. 2022-07-16 20:35:35 +02:00
Siegfried Pammer e1ca4db851 Fix #2527: Support skip locals init 2021-10-29 00:16:33 +02:00
Siegfried Pammer c641072685 Translate MatchInstruction to BinaryOperatorExpression with BinaryOperatorType.IsPattern. 2021-07-18 20:57:33 +02:00
Siegfried Pammer 669fe6417e Fix #2280: Add additional checks to GenerateVariableName 2021-01-22 14:05:14 +01:00
Siegfried Pammer 04f9603768 Fix #2140: ILSpy 6.2p1 no longer respects "use discards" setting 2020-09-03 09:06:47 +02:00
dotnet format 0d9f871a4f #2128: Reformat the whole code base. 2020-08-28 01:05:38 +02:00
Christoph Wille 6415e9d1d6 Merge pull request #2119 from icsharpcode/deconstruction-pattern-matching-foundation
C# 7.0 Deconstruction
2020-08-23 08:58:34 +02:00
Siegfried Pammer b1b49b5a56 Fix bugs in foreach deconstruction and deconstruction declaration, if the same variable is used multiple times. 2020-08-22 19:47:55 +02:00
Siegfried Pammer 3390d3849d Added support for var (a, b, _) = ...; syntax in deconstruction. 2020-08-22 19:35:28 +02:00
Siegfried Pammer 00b65453ee Remove out var _ hack 2020-08-15 10:42:00 +02:00
Daniel Grunwald ddff831cf0 #1292: Fix some more problems with pinned locals.
Let's distinguish between the original pinned locals and the PinnedRegion locals.
The format need declarations if any are left over after transformations; the latter don't.
2020-08-08 21:59:57 +02:00
Siegfried Pammer 4f7ca65408 Fix #1913: Make sure to declare local variables captured by local functions before the first invocation of the local function. 2020-05-17 09:07:24 +02:00
Siegfried Pammer 8925b4ff7b Inline variable declarations/modernize parts of our code base. 2020-04-16 11:22:18 +02:00
Siegfried Pammer 407c337168 Add ForStatement, DoWhileStatement and SeparateLocalVariableDeclarations settings. 2019-12-08 09:29:19 +01:00
Siegfried Pammer 9190515d8b #1151: Support for ref readonly locals. 2019-09-28 14:05:59 +02:00
Siegfried Pammer d2f7258347 Fix #1681: Use discard assignment, if possible. 2019-09-16 21:59:14 +02:00
Siegfried Pammer 13fa499c35 Fix #1630: Do not convert while to for statement, if any iterator variables are to be declared in the loop body. This causes problems with ref-typed variables. 2019-08-10 19:19:52 +02:00
Siegfried Pammer bd77b8301f Basic implementation of local functions. 2019-06-24 17:51:13 +02:00
Siegfried Pammer b0cb976357 Fix #1454: Name collision after converting for-over-array to foreach. 2019-03-17 19:14:23 +01:00
Daniel Grunwald 47ca51a769 Clarify the meaning of ILVariable.Index 2019-02-15 11:42:16 +01:00
Daniel Grunwald ba8b453b36 Fix #1404: local variables with init flag are not declared in the correct scope 2019-02-14 14:55:11 +01:00
Daniel Grunwald 796612209d Fix #1147: Use C# 7.3 syntax for ref reassignment. 2018-07-14 00:02:51 +02:00
Siegfried Pammer 40659a2283 Add minimal support for C# 7 discards in out var declarations. 2018-03-05 08:44:13 +01:00
Daniel Grunwald 19e840856f Use out variable declarations where possible. 2018-03-04 17:05:37 +01:00
Daniel Grunwald 3c720b2030 Implement ?. operator when the result of the call is not used
For example: "if (x != null) x.M();" -> "x?.M();"
2018-01-14 16:09:23 +01:00
Siegfried Pammer 69c764722c Fix #989: Local variable naming conflict 2017-11-26 12:10:00 +01:00
Siegfried Pammer 5814374306 Fix build. 2017-11-11 19:19:07 +01:00
Siegfried Pammer 9d70e6ed09 Fix #893: Local variable name highlighter sometimes only finds subset of usages 2017-11-11 18:54:14 +01:00
Siegfried Pammer 4d5d4b3d6b Fix #952: Issue with discard expressions and variables 2017-11-01 23:14:02 +01:00
Daniel Grunwald 164f9b82a8 Fix DeclareVariables.FindInsertionPoint not treating lambda bodies as capture scopes 2017-10-09 21:05:37 +02:00
Siegfried Pammer c64ce76047 Remove using-specific code from DeclareVariables.ResolveCollisions 2017-09-24 22:53:24 +02:00
Siegfried Pammer 31469c8ef1 Implement UsingTransform in ILAst. 2017-09-23 21:15:36 +02:00
Siegfried Pammer d45e3bfb3c Fix assertion fail in DeclareVariables: Make sure that we do not try to declare variables in non-assignment contexts. 2017-09-23 21:15:36 +02:00
Siegfried Pammer d33c334f5a Fix #284 - Ability to disable decompilation of anonymous types to "var" 2017-09-14 14:31:35 +02:00
Daniel Grunwald e024641a5f [async] Fix bug when async method uses this pointer. 2017-09-08 23:44:07 +02:00
Daniel Grunwald b36ae9df7e Start on new async/await decompiler. 2017-09-02 14:55:10 +02:00
Daniel Grunwald cad933184a Don't introduce foreach when doing so would create a conflict with another variable of the same name as the loop variable. 2017-08-26 14:00:14 +02:00
Daniel Grunwald 56a0ca2f13 Remove useless stack variables. 2017-08-20 16:30:16 +02:00
Siegfried Pammer a5b67ffc0e Add UsingLocal and ForeachLocal VariableKinds 2016-12-21 00:10:06 +01:00
Daniel Grunwald 4c07ba2448 Fix NullReferenceException in AssemblyTreeNode.get_ToolTip 2016-12-19 20:08:41 +01:00
Siegfried Pammer 41bcf920d3 Improved handling of captured variables. 2016-12-19 10:33:54 +01:00
Daniel Grunwald ed3d4aba9d Run IntroduceExitPoints before loop detection, and let loop detection introduce its own exit points.
Warning: this commit creates broken branches that enter blocks.
2016-11-27 15:25:22 +01:00
Siegfried Pammer fc8825d895 Try to detect while conditions, do-while-loops and for-loops 2016-11-27 10:37:54 +01:00
Siegfried Pammer 840ec04fde Namespace adjustments for Syntax classes 2016-11-26 12:06:58 +01:00
Christoph Wille 1ce8349dd9 Adjust namespaces 2016-11-26 11:12:53 +01:00
Siegfried Pammer 5bedb80a78 Phase 1: merge parts of ICSharpCode.NRefactory.CSharp into ICSharpCode.Decompiler 2016-11-26 00:26:27 +01:00