Daniel Grunwald
bd9ee28552
Fix #1789 : missing hyperlink for `MethodGroupResolveResult`.
11 months ago
Daniel Grunwald
ec58d57875
#3465 : Fix bugs in `comp.o` handling.
11 months ago
Daniel Grunwald
89083eaf48
Fix #3344 : Add support for the `ckfinite` opcode.
11 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.
11 months ago
Jan Kučera
9d11f523b1
Always move initializer decompilation setting
11 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)
11 months ago
Maximilian Schmöcker
43bfaba7e0
Add ExpandParamsArguments DecompilerSettings
11 months ago
Maximilian Schmöcker
850ffe593d
Fix methods with mandatory arguments ignore disabled OptionalArguments setting
11 months ago
Siegfried Pammer
f8dcd95b31
Add support for extensions in CSharpDecompiler
11 months ago
Siegfried Pammer
9157122462
Add ExtensionDeclaration syntax node
11 months ago
Siegfried Pammer
29bd78a9c9
Add DecompilerSettings.ExtensionMembers and Language version 14
11 months ago
Siegfried Pammer
68ae8ae833
Rename ITypeDefinition.HasExtensionMethods to ITypeDefinition.HasExtensions
11 months ago
Siegfried Pammer
7ea2c8f32f
Remove dead code
11 months ago
Siegfried Pammer
c642678f7f
Remove ToTypeReference: Implement ParseReflectionName with SRM TypeName.
11 months ago
lordmilko
9498c8d3d9
Allow specifying an IDecompilerTypeSystem rather than a DecompilerTypeSystem to CSharpDecompiler
11 months ago
Siegfried Pammer
9dde97414a
Rename ResolvedUsingScope to UsingScope
11 months ago
Siegfried Pammer
c9e3790adc
Remove UnresolvedUsingScope
11 months ago
Siegfried Pammer
d2d9281072
Move CanTransformToExtensionMethodCall to CSharpResolver
11 months ago
Siegfried Pammer
e56f12cf93
Fix #2165 : DeclareVariables step must update ResolveResult annotation when using out var.
11 months ago
Siegfried Pammer
6955704172
Updated CSharpConversions according to https://github.com/dotnet/csharpstandard/blob/draft-v9/standard/conversions.md
11 months ago
Daniel Grunwald
235ae52756
Always attempt standard implicit conversions before user-defined conversions.
11 months ago
Siegfried Pammer
ddb7171a2a
Fix #3524 : Property without backing field cannot have an initializer.
11 months ago
Jan Jones
2357d00939
Support `allows ref struct` constraint
12 months ago
Siegfried Pammer
49368caf1c
Rename option to "UseObjectCreationOfGenericTypeParameter"
1 year ago
DoctorKrolic
47eeacd7aa
Add an option to not transform `Activator.CreateInstance<T>()` to `new T()`
1 year ago
Siegfried Pammer
d4a27b9b75
Fix net10.0-related bug in TargetServices.DetectTargetFramework
1 year ago
Siegfried Pammer
fa4108e450
GetTargetFrameworkMoniker: add support for netX.Y for TFMs ".NETCoreApp, Version=5.0" or newer.
1 year ago
Siegfried Pammer
2fb90b49e0
Adjust string.Concat handling in ReplaceMethodCallsWithOperators to support unexpanded string.Concat calls.
1 year ago
Siegfried Pammer
18f5b0f2a0
Add minimal support for params collections to Overload Resolution.
1 year ago
Siegfried Pammer
4aa777ccc2
Add IsArrayInterfaceType extension method
1 year ago
Siegfried Pammer
d9bc4d19a2
Add support for newobj ROS(in arg) to TransformParamsArgument.
1 year ago
Siegfried Pammer
27e4bc578b
ref structs cannot be boxed
1 year ago
ds5678
586c04d081
Support params keyword on non-array collections
1 year ago
Siegfried Pammer
34490587d9
Hide compiler-generated InlineArray types.
1 year ago
nikitalita
f27ce86bdb
Make TargetFramework and TargetServices public
1 year ago
Siegfried Pammer
fac0e5eb5f
Fix #3489 : Make WholeProjectDecompiler.CreateDecompiler protected virtual to make the decompilation pipeline extensible.
1 year ago
Siegfried Pammer
101ddf8783
Add support for constant slices of InlineArrays
1 year ago
Siegfried Pammer
667036c54e
Add support for InlineArrayConversion
1 year ago
Siegfried Pammer
79f7a188b0
Add support for C# 12 inline array expressions
1 year ago
Siegfried Pammer
978c31ca5e
Add PropertyAndEventBackingFieldLookup to improve performance of MemberIsHidden.
1 year ago
ds5678
4e21aedce7
Emit property in project file
1 year ago
ds5678
361bb17618
Add configuration option to check for overflow and underflow
1 year ago
Daniel Grunwald
d4de698465
#3466 : avoid recursion in `CSharpConversions.SelectOperator`
1 year 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>
1 year ago
Jeremy Pritts
0261ca3ae8
Fix stack overflow exception in CSharpResolver ( #3471 )
...
* Fix stack overflow exception in CSharpResolver
* lhs and rhs
1 year ago
ds5678
9827405f02
Fix null reference exception when writing resource files
1 year 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`
1 year ago
Siegfried Pammer
e7a6e27820
Fix #3464 : Missing cast in string interpolation
1 year ago
ds5678
fb180b0010
Add tests
1 year ago
ds5678
db45fc70a2
Fix regression: UseNestedDirectoriesForNamespaces
1 year ago