233 Commits
Author SHA1 Message Date
Siegfried Pammer 98d764a169 Add a treenode and decompiler APIs for extensions. 2026-03-16 22:41:21 +01:00
Siegfried Pammer 77d9ee73e9 Fix IDE2000 globally 2025-12-29 19:24:31 +01:00
Siegfried Pammer 3a27cbef06 Fix #3617: Order of XML comments in types with primary constructors 2025-12-13 10:14:46 +01:00
ds5678 a04c0e4cab Improve decompilation of unmanaged function pointers
This improves how function pointers are decompiled.
* ExpressionBuilder::VisitLdFtn now properly constructs the calling conventions.
* FunctionPointerType::FromSignature now checks whether a modopt type affects the calling convention.
2025-11-30 12:10:04 -08:00
Siegfried Pammer 45efc732a7 #3614: Use correct number of type arguments when adding type annotations to generic types with nested types. 2025-11-20 13:25:39 +01:00
Siegfried Pammer 9c8d1e48d9 Many thanks to @sonyps5201314 for providing the test cases and a suggested fix, which inspired these changes.
Various improvements regarding primary constructor decompilation, including:
- introduce `HasPrimaryConstructor` property in the AST, as there is a difference between no primary constructor and a parameterless primary constructor
- improved support for inherited records and forwarded ctor calls
- exclude non-public fields and properties in IsPrintedMember
- introduce an option to always make the decompiler emit primary constructors, when possible
2025-11-12 00:29:51 +01:00
Peter Crabtree e1e16b64f5 dev: Strip BOM mark from text files 2025-08-28 20:56:19 -04:00
Siegfried Pammer 9157122462 Add ExtensionDeclaration syntax node 2025-08-04 08:53:33 +02:00
Siegfried Pammer c642678f7f Remove ToTypeReference: Implement ParseReflectionName with SRM TypeName. 2025-08-02 15:32:11 +02:00
Siegfried Pammer 9dde97414a Rename ResolvedUsingScope to UsingScope 2025-08-02 11:02:25 +02:00
Daniel Grunwald 2ca6e22384 Merge pull request #3527 from jjonescz/allows-ref-struct
Support `allows ref struct` constraint
2025-08-01 08:54:29 +02:00
Siegfried Pammer ddb7171a2a Fix #3524: Property without backing field cannot have an initializer. 2025-07-30 07:28:45 +02:00
Jan Jones 2357d00939 Support allows ref struct constraint 2025-07-27 18:25:08 +02:00
Jeremy PrittsandSiegfried Pammer c1ecf1ae9c Handle explicit optional parameter after default parameter (#3470)
* Handle explicit optional parameter after default parameter

* Rename and add documentation

* Move extension method

* Add unit test for lamba function

* Apply suggestions from code review

Co-authored-by: Siegfried Pammer <[email protected]>

---------

Co-authored-by: Siegfried Pammer <[email protected]>
2025-05-17 17:11:15 +02:00
Siegfried Pammer 96caa4ecb7 Fix: #3407 Add "private protected" feature for 7.2 decompiler options 2025-03-22 12:27:22 +01:00
Siegfried Pammer 29861d7903 Fix #1647: Add a cast to enum constants where the enum type is not known. 2025-03-21 11:00:11 +01:00
Siegfried Pammer 3c70224441 Fix detection and display of explicitly implemented operators. 2025-02-21 11:59:21 +01:00
Siegfried Pammer 6312ab18ae #2716: Fix typo 2025-02-21 07:11:42 +01:00
Siegfried Pammer 8b76879493 Fix #2716: Add an option to allow sorting custom attributes 2025-02-20 22:23:57 +01:00
Daniel Grunwald 8e7e4ba856 Revert "Add support for C# 11 parameter null checks"
This reverts commit 9e462b53ad.
2024-07-23 13:15:53 +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
Siegfried Pammer 591ab6b75d Implement support for explicit interface implementation of operators and operator uses. 2023-08-06 10:15:22 +02:00
Siegfried Pammer 6172d63ff3 Support virtual modifier on static abstract interface members. 2023-08-05 19:28:08 +02:00
Siegfried Pammer 65b4c928c0 Add support for simple constant patterns. 2023-08-04 16:48:02 +02:00
Siegfried Pammer f7343c75d0 Add support for simple recursive patterns where the sub pattern is a simple type pattern. 2023-08-04 16:28:13 +02:00
Lucas Trzesniewski bf69531216 Fix #3025: Annotate nested types 2023-07-02 10:08:18 +02:00
Daniel Grunwald 32fafeb9a1 Add support for user-defined checked operators. 2023-06-03 17:45:14 +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 3dc2f3d5b6 Rename lifetime annotation to ScopedRef 2023-05-30 11:32:25 +02:00
Daniel Grunwald f568123704 Add support for UTF8 string literals 2023-05-30 11:20:20 +02:00
Daniel Grunwald 9359d47c0b Add support for ScopedRefAttribute 2023-05-29 18:59:49 +02:00
Daniel Grunwald 475f2b3c28 Fix "ref readonly" fields. 2023-05-29 18:15:18 +02:00
Siegfried Pammer 5c67844500 Fix #2920: Implement support for DefaultParameterValueAttribute. 2023-05-18 14:10:07 +02:00
Daniel Grunwald 516341a09b Use "static abstract" instead of "abstract static". 2022-11-10 22:29:55 +01:00
Daniel Grunwald f3013010cd Add support for C# 11 required members. 2022-11-10 22:13:12 +01:00
hexafluoride fc6ae4c645 Add option to always fully qualify type names with global:: 2022-08-30 16:15:42 +02:00
Daniel Grunwald 8b906f5c65 Fix unnecessary dict creation in TSAB constructor. 2022-08-24 12:05:09 +02:00
Siegfried Pammer 583f661153 Work on #1204: Add optimized implementation of HasAttribute and GetAttribute to IEntity. 2022-08-24 12:05:09 +02:00
Siegfried Pammer 2ed9ad6b51 Add support for C# 11 scoped parameter modifier. 2022-07-16 16:20:18 +02:00
Daniel Grunwald 21c3ec046f Output attributes on lambda expressions 2022-07-16 10:30:02 +02:00
Siegfried Pammer 5078796b17 Add support for string format alignment. 2022-07-13 14:14:09 +02:00
Siegfried Pammer d248867302 Add support for C# 10 record structs. 2022-05-26 15:18:22 +02:00
Siegfried Pammer 9e462b53ad Add support for C# 11 parameter null checks 2022-04-16 20:42:48 +02:00
Siegfried Pammer 2e31427d56 Fix nullability warnings in AstNode and XmlDocumentationElement. 2022-04-11 10:15:12 +02:00
Daniel Grunwald db7d507138 Fix #2615: Overflow check did not work reliably due to fp rounding error 2022-01-27 22:06:20 +01:00
Siegfried Pammer 01e5e70bf7 'override' is only valid outside of interfaces. 2021-12-05 13:46:42 +01:00
Siegfried Pammer 15f49c0079 Add basic support for abstract static members in interfaces. 2021-12-05 13:44:30 +01:00
Siegfried Pammer d8bb40b45b Generate file-scoped namespace declarations, if possible. 2021-11-24 10:58:28 +01:00
Daniel Grunwald 8c508d9bbb #2445: Fix 1f/6f getting printed as 355f / (678f * (float)Math.PI)
Also fix inconsistent float comparisons due to JIT optimizations.
2021-11-24 00:57:00 +01:00