Siegfried Pammer
f695bbcf3a
Add support for DefaultInterpolatedStringHandler
3 years ago
Siegfried Pammer
fbafc0289b
Fix #2741 : CallBuilder produces invalid invocation target when disambiguating calls to protected methods.
3 years ago
Siegfried Pammer
006bc18a96
Run ComInterop test case only on .NET 4.0.
3 years ago
Zachary Northrup
0921d83e0d
Add testing of overloaded methods to COM V-table test
3 years ago
Zachary Northrup
abf36b0f43
Add a unit test validating that COM V-table ordering doesn't change with mixed properties, methods, and events
3 years ago
Siegfried Pammer
41c99e4727
#2622 : Fix crash in ExpressionBuilder when decompiling object initializer composed of readonly properties.
3 years ago
Siegfried Pammer
84101f804a
Fix #2444 : Ambiguous implicit conversions from null literals in decompiled code
4 years ago
Daniel Grunwald
aae27900dc
Fix #2398 : TranslateCondition: truncate condition value if necessary
4 years ago
Siegfried Pammer
76227af89d
Fix #1749 , fix #2339 , fix #2353 : Add support for rethrow in async exception handlers, fix await catch/finally patterns for complex methods.
4 years ago
Siegfried Pammer
d2fc380e0e
Fix #2349 : Use proper ExpressionType with DynamicCompoundAssign.
4 years ago
Daniel Grunwald
3c554b5e6c
Fix overload resolution: overloads with `in` parameters are applicable even if the argument is passed without explicit `in`
4 years ago
Daniel Grunwald
514cf9b03b
Fix #1944 : Add support for implicit conversions with `in` parameters.
4 years ago
Siegfried Pammer
be57dc454c
Run tests with different versions of Roslyn
5 years ago
Daniel Grunwald
7f915ad035
Add `OutVarResolveResult` to overload resolution (not yet used by CallBuilder)
5 years ago
dotnet format
0d9f871a4f
#2128 : Reformat the whole code base.
5 years ago
Siegfried Pammer
1a3e70b60a
Fix warnings in test cases
5 years ago
Daniel Grunwald
1f9f9c3b24
Deconstruction: Correctness test where same variable is assigned twice.
5 years ago
Daniel Grunwald
102ddcadc7
#2050 : Add additional test where the integer field is nested in a struct field.
5 years ago
Siegfried Pammer
1ecf489597
Add support for deconstruction to fields
5 years ago
Siegfried Pammer
a549b03bea
Implement ref local assignments
5 years ago
Siegfried Pammer
7f4653c274
Add support for tuple deconstruction
5 years ago
Siegfried Pammer
9cb3fe3484
Add support for basic deconstruction conversions
5 years ago
Siegfried Pammer
b435c07f4d
Added support for deconstruction assignments to properties
5 years ago
Daniel Grunwald
1d684102ac
Support compound assignment for native integers.
5 years ago
Daniel Grunwald
62fcab8d99
#2050 : Allow inlining into the StObj target slot when this is possible without changing the program semantics.
5 years ago
Daniel Grunwald
925a4e1e65
#2050 : Don't put ldflda/ldelema with immediate exceptions into StObj.TargetSlot.
...
The C# translation of StObj will always apply delayed exceptions in these two cases, so putting an instruction with delayed exceptions in that slot would change program semantics.
5 years ago
Daniel Grunwald
c1265ad830
Fix #1946 : Don't move `return` into `try` block when doing so changes the semantics of a `finally` block.
5 years ago
Siegfried Pammer
73e0f7c3ac
Fix #1936 : TransformDisplayClassUsage should remove copies of display-class references.
5 years ago
Siegfried Pammer
60490a4369
#1869 : Add correctness test case
5 years ago
Daniel Grunwald
b9675f58b3
Fix #1865 : At least one of the first two operands in string concatenation needs to be of type `string`, so we can't always drop `ToString()` calls.
5 years ago
Daniel Grunwald
a1c211f326
Fix #1794 : Avoid extra cast to double for ulong -> float conversion
6 years ago
Daniel Grunwald
968fe1468f
Fix #1747 : Stack overflow when decompiling a `bool` -> `bool?` conversion.
6 years ago
Daniel Grunwald
080f63e660
Fix LambdaResolveResult.IsValid() being too restrictive.
...
This could cause our overload resolution to consider an overload as not-applicable when it actually is applicable. This could cause us to miss some cases where we need to insert casts.
6 years ago
Daniel Grunwald
1d95eb60a2
Fix #1680 : Invalid cast `(uint?)-1`
6 years ago
Daniel Grunwald
4b90e43187
Avoid making explicit ToString() implicit when doing so changes the semantics for mutable value types.
6 years ago
Daniel Grunwald
7a5d8af57d
#1691 : Further improvements for decompiling the new VS 2019.3 string concatenation IL pattern
6 years ago
Daniel Grunwald
c32361d464
#1691 : Avoid replacing string.Concat() with operator+ when the evaluation order depends on the compiler version.
6 years ago
Daniel Grunwald
fb70a2861e
Fix #1656 : Disable CopyPropagation for split variables.
...
The code reordering done by copy propagation could cause the lifetimes of different parts of a split variable to start overlapping. This caused incorrect C# to be generated when the variable was recombined.
6 years ago
Siegfried Pammer
e9a020062d
Add more RefLocalsAndReturns pretty tests.
6 years ago
Siegfried Pammer
b83cb41f2e
Add pretty tests for local functions.
6 years ago
Daniel Grunwald
688dffff2b
Add some string.Concat()-tests
6 years ago
Siegfried Pammer
29527b804e
Fix #1392 : LoopDetection should take switch block containers into account in IncludeNestedContainers.
6 years ago
Siegfried Pammer
8480acf9e5
Add StackTests.il test case.
6 years ago
Daniel Grunwald
ba8b453b36
Fix #1404 : local variables with init flag are not declared in the correct scope
6 years ago
Siegfried Pammer
64686b9547
Fix #1336 : multi-dimensional array initializers with custom objects not detected.
6 years ago
Siegfried Pammer
cbd824b07e
Move array initializer tests from correctness to pretty tests, so that misdetections can be spotted.
6 years ago
Daniel Grunwald
e990d5ac00
Revert the 'unwrapBoxingConversion' addition to TranslateTarget(), I ended up solving the boxing issue directly in HandleDelegateConstruction()
7 years ago
Daniel Grunwald
b455286ad3
Fix #1333 : Ensure we convert to the correct type when calling instance methods on value types
7 years ago
Daniel Grunwald
4e9121bd28
Add test case for #1304 .
7 years ago
Daniel Grunwald
e041454987
Add pretty tests for "yield return" and fix some minor bugs:
...
* remove redundant casts on yield-return-expression
* keep variable name from metadata for foreach loops
* fix 'yield break;' in nested try-finally sometimes causing a decompiler error
7 years ago