Siegfried Pammer
fbfc93bb41
Store member modifiers and composed-type specifiers as scalar fields
...
Member and local modifiers were stored as modifier token children, and a
ComposedType's ref/readonly/nullable/pointer specifiers and an array rank as
token and comma children. The output visitor already derived all of these
from scalar accessors, so move them to plain enum/bool/int fields. This
removes another dependency on token children ahead of deleting the token
nodes; the emitted keyword and specifier sequences are unchanged.
Assisted-by: Claude:claude-opus-4-8:Claude Code
2 weeks ago
Siegfried Pammer
b100ddc077
Fix missing Space() in from clause
3 months ago
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
8 months ago
Siegfried Pammer
9157122462
Add ExtensionDeclaration syntax node
11 months ago
Siegfried Pammer
a599aae54d
#1572 : Do not generate variable names that match C# keywords.
1 year ago
Siegfried Pammer
fa50e8d8b3
Add non-embedded attributes to all tests that use older framework versions.
1 year ago
Siegfried Pammer
065e7eca1d
Fix #3227 : Only call NewLine() in case no property initializer is present.
2 years ago
Daniel Grunwald
8e7e4ba856
Revert "Add support for C# 11 parameter null checks"
...
This reverts commit 9e462b53ad .
2 years ago
Siegfried Pammer
4bf9487ecd
Remove IsRef, IsOut and IsIn flags from IParameter and Replace ParameterModifiers with ReferenceKind.
2 years ago
Siegfried Pammer
591ab6b75d
Implement support for explicit interface implementation of operators and operator uses.
3 years ago
Siegfried Pammer
8cb3a67c0c
Support recursive pattern for value types
3 years ago
Siegfried Pammer
f7343c75d0
Add support for simple recursive patterns where the sub pattern is a simple type pattern.
3 years ago
Daniel Grunwald
32fafeb9a1
Add support for user-defined checked operators.
3 years ago
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.
3 years ago
Daniel Grunwald
3dc2f3d5b6
Rename lifetime annotation to `ScopedRef`
3 years ago
Daniel Grunwald
9359d47c0b
Add support for ScopedRefAttribute
3 years ago
Siegfried Pammer
f2da255200
Fix #2825 : Missing whitespace after new()
4 years ago
Siegfried Pammer
2ed9ad6b51
Add support for C# 11 scoped parameter modifier.
4 years ago
Daniel Grunwald
21c3ec046f
Output attributes on lambda expressions
4 years ago
Daniel Grunwald
08ceffc3ad
Upgrade dotnet-format from version 5 to the version included with the .NET (6) SDK.
4 years ago
Siegfried Pammer
5078796b17
Add support for string format alignment.
4 years ago
Siegfried Pammer
d248867302
Add support for C# 10 record structs.
4 years ago
Siegfried Pammer
73f2493644
Fix #2629 : Indentation of method-call chains.
4 years ago
Siegfried Pammer
9e462b53ad
Add support for C# 11 parameter null checks
4 years ago
Siegfried Pammer
d8bb40b45b
Generate file-scoped namespace declarations, if possible.
5 years ago
Siegfried Pammer
c641072685
Translate MatchInstruction to BinaryOperatorExpression with BinaryOperatorType.IsPattern.
5 years ago
Daniel Grunwald
710c17fee2
switch expressions: use same brace style as object initializers
5 years ago
Siegfried Pammer
e6c351c43d
Do not use single-line formatting for auto properties/indexers if there are attributes.
5 years ago
Siegfried Pammer
a5858f1694
Add support for primary constructor syntax.
6 years ago
Siegfried Pammer
b63da5d37d
Fix property formatting
6 years ago
Siegfried Pammer
cc19e9043e
Fix #603 : Single element arrays should not span multiple lines
...
Fix #1079 : CSharpFormattingOptions.AutoPropertyFormatting has no effect
6 years ago
Siegfried Pammer
3df82cf33b
Add support for 'with' expressions
6 years ago
Daniel Grunwald
f869756fed
Use "record" instead of "class" for C# 9 record class types.
6 years ago
Daniel Grunwald
6010757d22
Add support for .NET 5 custom calling conventions.
6 years ago
Daniel Grunwald
6d3239678c
Function pointers: add support for the builtin unmanaged calling conventions.
6 years ago
Daniel Grunwald
cabb02b5fd
Add support for decoding function pointer types in signatures.
6 years ago
Siegfried Pammer
f245d93fef
#2128 : Adjust formatting settings used in tests to match our new style.
6 years ago
dotnet format
0d9f871a4f
#2128 : Reformat the whole code base.
6 years ago
Siegfried Pammer
9e0e8d1cbc
Add basic support for C# 8.0 enhanced using statements.
6 years ago
Siegfried Pammer
562699fc94
Add support for C# 8.0 await foreach
6 years ago
Siegfried Pammer
c9f5e5dd33
Refactor ForeachStatement to support deconstruction
6 years ago
Siegfried Pammer
ea9d2a2eb2
Fix output of pattern nodes
6 years ago
Daniel Grunwald
abb9d49a0f
Add support for C# 8 switch expressions.
6 years ago
Daniel Grunwald
d388319cba
Add support for C# 9 init accessors.
6 years ago
Siegfried Pammer
18ace00266
Refactor LocalFunctionDeclarationStatement + LocalFunctionMethod
6 years ago
Siegfried Pammer
3dc75b9366
Add additional C# AST nodes used for deconstruction.
6 years ago
Daniel Grunwald
94a8190861
#2049 : Delete old NRefactory node types that were never supported for output.
6 years ago
Daniel Grunwald
2c0554f129
Fix #1963 : Support decompiling `calli` instructions into C# 9 function pointer syntax.
6 years ago
Daniel Grunwald
4846feb640
Add support for C# 8 range syntax.
...
This initial commit only handles the trivial case where an Index or Range object is constructed.
The TODO portions of the test case show there are plenty of cases where where the C# compiler emits more complex code patterns that will require ILAst transforms.
6 years ago
Siegfried Pammer
e029266d40
Fix tokens used for catch-when clause.
6 years ago