Daniel Grunwald
71d3120b94
#2552 : Initial support for null coalescing assignment (`??=`).
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
Siegfried Pammer
c9e3790adc
Remove UnresolvedUsingScope
5 months ago
Siegfried Pammer
d2d9281072
Move CanTransformToExtensionMethodCall to CSharpResolver
5 months ago
Siegfried Pammer
e56f12cf93
Fix #2165 : DeclareVariables step must update ResolveResult annotation when using out var.
5 months ago
Siegfried Pammer
6955704172
Updated CSharpConversions according to https://github.com/dotnet/csharpstandard/blob/draft-v9/standard/conversions.md
5 months ago
Daniel Grunwald
235ae52756
Always attempt standard implicit conversions before user-defined conversions.
5 months ago
Siegfried Pammer
ddb7171a2a
Fix #3524 : Property without backing field cannot have an initializer.
5 months ago
Jan Jones
2357d00939
Support `allows ref struct` constraint
5 months ago
Siegfried Pammer
49368caf1c
Rename option to "UseObjectCreationOfGenericTypeParameter"
6 months ago
DoctorKrolic
47eeacd7aa
Add an option to not transform `Activator.CreateInstance<T>()` to `new T()`
6 months ago
Siegfried Pammer
d4a27b9b75
Fix net10.0-related bug in TargetServices.DetectTargetFramework
6 months ago
Siegfried Pammer
fa4108e450
GetTargetFrameworkMoniker: add support for netX.Y for TFMs ".NETCoreApp, Version=5.0" or newer.
6 months ago
Siegfried Pammer
2fb90b49e0
Adjust string.Concat handling in ReplaceMethodCallsWithOperators to support unexpanded string.Concat calls.
6 months ago
Siegfried Pammer
18f5b0f2a0
Add minimal support for params collections to Overload Resolution.
6 months ago
Siegfried Pammer
4aa777ccc2
Add IsArrayInterfaceType extension method
6 months ago
Siegfried Pammer
d9bc4d19a2
Add support for newobj ROS(in arg) to TransformParamsArgument.
6 months ago
Siegfried Pammer
27e4bc578b
ref structs cannot be boxed
6 months ago
ds5678
586c04d081
Support params keyword on non-array collections
6 months ago
Siegfried Pammer
34490587d9
Hide compiler-generated InlineArray types.
6 months ago
nikitalita
f27ce86bdb
Make TargetFramework and TargetServices public
6 months ago
Siegfried Pammer
fac0e5eb5f
Fix #3489 : Make WholeProjectDecompiler.CreateDecompiler protected virtual to make the decompilation pipeline extensible.
7 months ago
Siegfried Pammer
101ddf8783
Add support for constant slices of InlineArrays
7 months ago
Siegfried Pammer
667036c54e
Add support for InlineArrayConversion
7 months ago
Siegfried Pammer
79f7a188b0
Add support for C# 12 inline array expressions
7 months ago
Siegfried Pammer
978c31ca5e
Add PropertyAndEventBackingFieldLookup to improve performance of MemberIsHidden.
7 months ago
ds5678
4e21aedce7
Emit property in project file
7 months ago
ds5678
361bb17618
Add configuration option to check for overflow and underflow
7 months ago
Daniel Grunwald
d4de698465
#3466 : avoid recursion in `CSharpConversions.SelectOperator`
8 months ago
Jeremy Pritts
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 <siegfried@pammer.io>
---------
Co-authored-by: Siegfried Pammer <siegfried@pammer.io>
8 months ago
Jeremy Pritts
0261ca3ae8
Fix stack overflow exception in CSharpResolver ( #3471 )
...
* Fix stack overflow exception in CSharpResolver
* lhs and rhs
8 months ago
ds5678
9827405f02
Fix null reference exception when writing resource files
8 months ago
Jeremy Pritts
aff9649711
Parenthesize interpolations containing `global::` ( #3463 )
...
* Parenthesize interpolations containing global::
* Improvements:
* Cleaner output
* More unit testing
* More efficient tree search
* Implement revisions
* Update Lambda1 to be invariant
* Visit descendents before deciding whether or not to parenthesize an interpolation expression
* Rename local function
* Remove branch for conditional expressions
* Handle Lambda expressions without a block body
* Check for parenthesized expressions
* `NET60` instead of `!NET40`
8 months ago
Siegfried Pammer
e7a6e27820
Fix #3464 : Missing cast in string interpolation
8 months ago
ds5678
fb180b0010
Add tests
9 months ago