377 Commits
Author SHA1 Message Date
Siegfried Pammer 453fc06e02 Fix #3406: Wrong decompilation of record struct without primary constructor. 2025-03-31 17:17:59 +02:00
Siegfried Pammer 0481c7d1ee Improve LINQ decompiler to support combining lambda parameter names if they syntactically refer to the same range variable 2025-03-21 08:34:44 +01:00
Siegfried Pammer fa50e8d8b3 Add non-embedded attributes to all tests that use older framework versions. 2025-02-12 22:58:11 +01:00
Siegfried Pammer c478ccc2e0 Fix #3319: KeyDownEvent field reference was replaced with KeyDown event reference. 2024-11-10 22:12:49 +01:00
Siegfried Pammer e96605ca87 Fix #3310: Filter out copy-constructor only if it's an actual record type. 2024-10-24 19:31:25 +02:00
Siegfried Pammer 2043e5dd6f Add support for C# 12 primary constructors. 2024-08-11 11:32:15 +02:00
Siegfried Pammer fd1de09489 Avoid using operator + for string concatenation when ref-like types are involved. 2024-07-20 15:20:53 +02:00
Siegfried Pammer 9d22e3ab41 NullableLiftingTransform: Undo new compiler optimization (omitting get_HasValue for comparisions with constants) 2024-07-20 10:40:31 +02:00
Siegfried Pammer 02d2a8c1f8 Add metadata processing for C# 12 'ref readonly' parameters 2024-07-19 18:40:08 +02:00
Siegfried Pammer 4bf9487ecd Remove IsRef, IsOut and IsIn flags from IParameter and Replace ParameterModifiers with ReferenceKind. 2024-07-19 18:40:07 +02:00
Daniel Grunwald d48df11133 Remove unused transforms: DecimalConstantTransform and ParameterNullCheckTransform 2024-07-19 09:23:17 +02:00
Siegfried Pammer 6c08851cb0 #3209: Only add imports for extension methods. 2024-06-10 00:26:22 +02:00
Siegfried Pammer 972354913e Fix #3209: Ensure using directives are added for extension methods in higher level patterns such as: foreach -> GetEnumerator(), collection initializer -> Add() and deconstruction -> Deconstruct(). 2024-06-09 19:43:36 +02:00
Siegfried Pammer ca78d4a14d Use MetadataFile instead of PEFile in TypeSystem. 2024-03-24 15:35:13 +01:00
Siegfried Pammer ee160b4e2a #3075: Improve performance of CSharpResolver.LookupSimpleNameOrTypeName in cases with a large number of local variables. 2023-10-14 23:11:52 +02:00
Kirill Osenkov 7992d148e8 Generate sequence points for expression-bodied properties and indexers 2023-07-02 20:16:10 +02:00
Siegfried Pammer 19e69e6105 Merge pull request #3017 from icsharpcode/operator-checked 2023-07-02 09:36:02 +02:00
Siegfried Pammer 311658c710 Merge pull request #3003 from icsharpcode/local-compound-assignment 2023-06-15 20:23:34 +02:00
Siegfried Pammer 13227e433e Fix compound assignments with local variables. 2023-06-11 22:02:54 +02:00
Daniel Grunwald b80d20b15d Add support for calling operator checked. 2023-06-03 18:37:15 +02:00
Daniel Grunwald 8b9ba20847 Builtin unsigned right shift operator. 2023-06-03 13:26:09 +02:00
Daniel Grunwald 3c46271a11 Add support for unsigned right shift.
Only for user-defined operators so far; builtin right shifts still cast to the appropriate type.
2023-06-02 21:37:42 +02:00
Daniel Grunwald 9359d47c0b Add support for ScopedRefAttribute 2023-05-29 18:59:49 +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
ElektroKill a5febb3e4f Add support for VB.NET automatic events 2022-11-20 12:54:50 +01:00
Siegfried Pammer c3d0e5ecc2 Fix #1784: Move RemoveEmbeddedAttributes transform to ICSharpCode.Decompiler and do no longer decompile embedded attributes in WholeProjectDecompiler and PortablePdbWriter. 2022-11-04 21:20:45 +01:00
Siegfried Pammer 9017592d1d Fix #2764: Move constant field initializers regardless of whether the other field initializers can be moved. 2022-10-06 12:34:45 +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 0fbbb6d95e Fix #2777: StackOverflowException with recursive delegates 2022-09-04 21:30:33 +02:00
hexafluoride fc6ae4c645 Add option to always fully qualify type names with global:: 2022-08-30 16:15:42 +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 7ce453c73d Fix #2710: enhanced using statements are not allowed as embedded statements. 2022-06-13 17:58:53 +02:00
Siegfried Pammer 11468135b4 Add special-case for non-primary record struct constructors 2022-05-26 15:19:43 +02:00
Siegfried Pammer d248867302 Add support for C# 10 record structs. 2022-05-26 15:18:22 +02:00
Siegfried Pammer 40ffc1e90e Remove backing fields of auto properties and events.
The previous commit started decompiling backing fields because they are still needed prior to the C# transforms.
2022-04-29 16:28:32 +02:00
Siegfried Pammer f98012ec16 DetectPinnedRegions: Support special case where pinned pointer is unused and the compiler optimized out the StopGCTracking-conversion. 2022-03-07 09:19:26 +01:00
Siegfried Pammer cbcfcf6c2a IntroduceQueryExpressions: Do not ignore attributes on lambdas 2022-03-07 09:19:26 +01:00
Siegfried Pammer d8bb40b45b Generate file-scoped namespace declarations, if possible. 2021-11-24 10:58:28 +01:00
Daniel Grunwald 7f985757a7 Fix #2541: Add explicit unchecked() around non-constant cast of constant to nint 2021-11-23 00:15:18 +01:00
Siegfried Pammer a655e35799 Fix ArgumentNullException in IntroduceUsingDeclarations: ignore unnamed variables for the purpose of conflict resolving. 2021-11-17 22:25:58 +01:00
Siegfried Pammer 210601fcfa Fix #2495: VB.NET decimal constants are not supported 2021-11-13 12:59:51 +01:00
Siegfried Pammer ea1cea96c4 Fix #2547: decimal const not removed from static constructor. 2021-11-12 01:55:51 +01:00
Siegfried Pammer 4b6fd7aee6 Fix #2545: LINQ expression has a question operator on the source collection 2021-11-11 17:07:25 +01:00
Siegfried Pammer ee3aabdc51 Fix #2534: Handle default implementations of properties and events in interfaces. 2021-11-03 22:05:01 +01:00
Siegfried Pammer e1ca4db851 Fix #2527: Support skip locals init 2021-10-29 00:16:33 +02:00
Siegfried Pammer a08ef0ecb3 Merge pull request #2476 from yyjdelete/records
Fix #2475: Add support for sealed records and records with interface
2021-10-15 12:40:21 +02:00
SilverFox 11b44e53b7 Add support for attributes of field/property in primary ctor of records 2021-09-24 19:27:06 +08:00
SilverFox 89eebc387a Fix #2475: Fix support for records with custom copy ctor 2021-08-09 19:47:43 +08:00
SilverFox d0d70a6496 Fix #2475: Add support for sealed records and records with interface 2021-08-09 16:14:56 +08:00