Siegfried Pammer
77d9ee73e9
Fix IDE2000 globally
3 days ago
Siegfried Pammer
0cd53418ad
Add ILAmbience
2 weeks ago
Siegfried Pammer
1579a1698c
Fix #3612 : WholeProjectDecompiler.CleanUpName does not count bytes on Unix.
2 weeks ago
Siegfried Pammer
3a27cbef06
Fix #3617 : Order of XML comments in types with primary constructors
3 weeks ago
ds5678
83df0ab9b9
Handle multiple calling conventions at once
1 month ago
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.
1 month ago
Siegfried Pammer
d70a5e7fb2
Fix #3626 : Do not emit named arguments for bool constants, if it causes the call to become ambiguous.
1 month ago
Siegfried Pammer
0ed123af07
#3621 : Fix NRE when switching language version to C# 8.0 or lower.
1 month ago
Siegfried Pammer
3fd9981535
Fix #3621 : Fix multiple uses of primary ctor parameter in initializer of record.
1 month ago
Siegfried Pammer
c34cc100b6
Records: Exclude static members from copy constructor check
1 month ago
Siegfried Pammer
2bb06709e9
RecordDecompiler: nullable enable
1 month ago
Siegfried Pammer
2271229b23
Fix #3618 : Extend validation of declared members and ctor parameters
1 month ago
Siegfried Pammer
396b58031b
Add support for C# 14 first-class span types in the type system.
1 month ago
mmusu3
88b2c437a7
Address PR review feedback
1 month ago
Siegfried Pammer
45efc732a7
#3614 : Use correct number of type arguments when adding type annotations to generic types with nested types.
1 month ago
mmusu3
22ceb6e7d1
Fix remaining cases with changes to IntroduceUsingDeclarations.
1 month ago
Siegfried Pammer
94050a4aca
Rewrite TransformFieldAndConstructorInitializers from a step-by-step AST-based analysis to an analysis that tracks the whole constructor body.
1 month ago
Siegfried Pammer
7a5a2a00a9
#3452 : Transform field initializers in structs only if no record and no primary ctor.
2 months ago
Siegfried Pammer
cb48768b6d
Fix #3610 : Add more primary constructor test cases.
2 months ago
Siegfried Pammer
46c99f1a21
Fix #3452 : More bugs with primary constructors.
2 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
2 months ago
sonyps5201314
b63b515a27
Exclude `System.Runtime.CompilerServices.RefSafetyRulesAttribute` from the `module` attribute in the generated `AssemblyInfo.cs`, because including it causes the compiler error: `error CS8335: Do not use 'System.Runtime.CompilerServices.RefSafetyRulesAttribute'. This is reserved for compiler usage.`. ( #3606 )
2 months ago
Siegfried Pammer
f6c763e7bb
Add tests for ExtensionEncodingV1 and ExtensionEncodingV2.
2 months ago
Siegfried Pammer
126e870a5a
Fix #3577 : Properly infer the switch governing type and preserve conversions
3 months ago
Siegfried Pammer
c075f7b9c8
Fix out var for expressions appearing in a lambda and not in a statement.
3 months ago
Siegfried Pammer
d11c40719d
#3569 : Don't move out variable declarations out of lambdas.
3 months ago
Siegfried Pammer
d736b02e2b
Fix #3480 : assert at ExpressionBuilder.BuildArrayInitializerExpression with properties that are not C# indexers, but parameterized properties.
3 months ago
Siegfried Pammer
b403b7bb3d
Fix #3542 : Invalid explicit cast for implicit conversion to generic struct with interface type constraint
3 months ago
ds5678
c54318173b
Fix lower case type name conflicting with variable name
3 months ago
Siegfried Pammer
732f285c41
Rename KnownAttributes.RequiredAttribute to KnownAttributes.Required
4 months ago
Siegfried Pammer
e34db06a67
Fix #3543 : Missing parentheses around field assignment expression in list initializers
4 months ago
Siegfried Pammer
48ff85178d
#3545 : Properties must have a getter for covariant returns to be applicable.
4 months ago
Siegfried Pammer
3442fad4a0
Fix #3545 : Covariant return not detected for abstract override property
4 months ago
Peter Crabtree
e1e16b64f5
dev: Strip BOM mark from text files
4 months ago
Daniel Grunwald
bd9ee28552
Fix #1789 : missing hyperlink for `MethodGroupResolveResult`.
4 months ago
Daniel Grunwald
ec58d57875
#3465 : Fix bugs in `comp.o` handling.
4 months ago
Daniel Grunwald
89083eaf48
Fix #3344 : Add support for the `ckfinite` opcode.
4 months ago
Daniel Grunwald
dd4bf7d8a4
Fix #3518 by replacing `FixLoneIsInst` with an inlining restriction.
...
This way we avoid having to extract later, as we will never inline if the `isinst` argument if this could result in it being unrepresentable in C#.
This commit also refactors inlining restrictions to avoid requiring special cases in ILInlining itself.
But when making this change, I discovered that this broke our pattern-matching tests, and that the weird IL with double `isinst` is indeed generated by the C# compiler for `if (genericParam is StringComparison.Ordinal)` style code. So instead we also allow `isinst` with a `box(expr-without-side-effects)` argument to be represented with the `expr is T ? (T)expr : null` emulation.
4 months ago
Jan Kučera
9d11f523b1
Always move initializer decompilation setting
5 months ago
Siegfried Pammer
6c00c138eb
Fix #3465 : Translate comp.o(a op b) if op not in (==, !=) into Unsafe.As<object, UIntPtr>(ref a) op Unsafe.As<object, UIntPtr>(ref b)
5 months ago
Maximilian Schmöcker
43bfaba7e0
Add ExpandParamsArguments DecompilerSettings
5 months ago
Maximilian Schmöcker
850ffe593d
Fix methods with mandatory arguments ignore disabled OptionalArguments setting
5 months ago
Siegfried Pammer
f8dcd95b31
Add support for extensions in CSharpDecompiler
5 months ago
Siegfried Pammer
9157122462
Add ExtensionDeclaration syntax node
5 months ago
Siegfried Pammer
29bd78a9c9
Add DecompilerSettings.ExtensionMembers and Language version 14
5 months ago
Siegfried Pammer
68ae8ae833
Rename ITypeDefinition.HasExtensionMethods to ITypeDefinition.HasExtensions
5 months ago
Siegfried Pammer
7ea2c8f32f
Remove dead code
5 months ago
Siegfried Pammer
c642678f7f
Remove ToTypeReference: Implement ParseReflectionName with SRM TypeName.
5 months ago
lordmilko
9498c8d3d9
Allow specifying an IDecompilerTypeSystem rather than a DecompilerTypeSystem to CSharpDecompiler
5 months ago
Siegfried Pammer
9dde97414a
Rename ResolvedUsingScope to UsingScope
5 months ago