Daniel Grunwald
768cb02f0b
Fix #2964 : Better error message when a method only contains a single ret instruction.
2 years ago
Daniel Grunwald
94d2ce0fcf
Fix crash when control flow reaches end of method.
2 years ago
Daniel Grunwald
b9ce8490f5
Remove hack that prevented inlining of the first instruction in each block.
...
Now that ILReader already creates the basic blocks and BlockBuilder only arranges them in containers, this code is no longer necessary.
2 years ago
Daniel Grunwald
b93e65cdad
Fix #901 : Refactor ILReader: only read reachable code + support reimports
...
This makes our logic more similar to that used by the dotnet runtime. This lets us infer correct stack types in edge cases such as #2401 . It also improves support for obfuscated control flow such as #2878 .
2 years ago
Daniel Grunwald
72a895f64f
#nullable enable for ILReader
2 years ago
Daniel Grunwald
6d671071c1
Fix #2851 : assertion after cloning a block with expected result type
2 years ago
Daniel Grunwald
4fc8f4e66e
Fix #2913 : ArgumentException when generic class is missing `1 suffix.
2 years ago
Daniel Grunwald
94ee5ed216
Fix assertion: UnknownType for unresolved reference can still be nullable; only the SpecialType.Unknown cannot.
2 years ago
Daniel Grunwald
9bfec8cf98
Fix #2860
2 years ago
Daniel Grunwald
3dc2f3d5b6
Rename lifetime annotation to `ScopedRef`
2 years ago
Daniel Grunwald
f568123704
Add support for UTF8 string literals
2 years ago
Daniel Grunwald
3f09958922
Fix #2987 : `(nuint)(-3)` is not a compile-time constant.
2 years ago
Daniel Grunwald
9359d47c0b
Add support for ScopedRefAttribute
2 years ago
Daniel Grunwald
475f2b3c28
Fix "ref readonly" fields.
2 years ago
Daniel Grunwald
b823955ad6
Fix mcs-5 foreach/using pattern when C# 7 (pattern matching) is not enabled.
2 years ago
Daniel Grunwald
9abc2b90da
Fix interaction of C# 11 nint==IntPtr with overload resolution.
...
In C# 11+.NET 7 mode, we now always use type nint, never IntPtr, so that overload resolution works as expected.
2 years ago
Daniel Grunwald
efeaf1356f
Add feature: C#11 nint without NativeIntegerAttribute
...
Because it is no longer possible to distinguish IntPtr from nint, this required a lot of testcase adjustment.
2 years ago
Siegfried Pammer
263360f3f3
Add RemoveCompilerFeatureRequiredAttribute
2 years ago
Daniel Grunwald
f04acbdd74
Simplify `IsImplicitTruncation` by using an enum with 3 options instead of a pair of bools.
...
This also fixes the logic for combining the results for BinaryNumericInstruction/IfInstruction.
2 years ago
Christoph Wille
220b4cbd06
Set version for release
2 years ago
ElektroKill
ea1f6e7c25
Fixed compound assignment and post/pre increment for pointer dereference
2 years ago
Siegfried Pammer
29ca38d338
Fix handling of recombined variables and nested functions in IntroduceNativeIntTypeOnLocals and IntroduceDynamicTypeOnLocals.
2 years ago
Siegfried Pammer
539925f259
Fix #2983 : display-class locals should be named uniquely per top-level ILFunction. Add assertion to ResolveCollisions: ensure that colliding/merged variables have the same type.
2 years ago
Siegfried Pammer
5c67844500
Fix #2920 : Implement support for DefaultParameterValueAttribute.
2 years ago
ElektroKill
f9c7b6b66e
Extend `EliminateRedundantTryFinally` in `ReduceNestingTransform`
2 years ago
Christoph Wille
61f79a01cc
RC1 will be the next release
2 years ago
ElektroKill
8a1e8e3c6b
Make return duplication in `ControlFlowSimplification` less aggressive
2 years ago
Brad Cleaver
b3f85abcc4
Fix ArgumentOutOfRangeException on unexpected file in GAC
2 years ago
Siegfried Pammer
caec6a6a83
Fix #2945 : Do not treat arbitrary method references pointing to members of the current type definition as part of the method. Only do so for compiler-generated methods.
2 years ago
Siegfried Pammer
4d6c5322e9
Fix #2888 : Tuple syntax cannot be used in is-expressions, use underlying type instead.
2 years ago
ElektroKill
01fd6e97f3
Fixed overflow exception and added tests
2 years ago
ElektroKill
bf0fe3aa15
Consider constructor type when lifting decimal constants
2 years ago
Siegfried Pammer
8b0c7fbe85
Fix #2921 : struct type definition contains duplicate default constructor.
2 years ago
Siegfried Pammer
7e1e9d65fd
Fix #2922 : Invalid object initializer ILAst, when expression tree contains get-accessor in Expression.Bind. Because either one of the accessors is used by Expression.Bind to determine the property, we can safely use the set-accessor instead.
2 years ago
ElektroKill
0cbd9a4faa
Add Visual Basic symbolic execution option which ignores overflow checks
2 years ago
Christoph Wille
1877348418
Set P4
2 years ago
Christoph Wille
f62629e9f9
Combine Path.Combine calls, remove local
2 years ago
ElektroKill
28e9123634
Fix removal of attributes injected by the legacy VB compiler
2 years ago
ElektroKill
29eb31354b
Fix formatting
2 years ago
ElektroKill
b110d5c2dc
Implement support for Visual Basic yield return state machines
2 years ago
Christoph Wille
facf2f662b
Fix #2933 - look by .Name first, then fall back to ISO
2 years ago
Christoph Wille
2ddab6c54c
Consolidate duplicated code into XmlDocLoader
2 years ago
ElektroKill
feb736a0d5
Fix empty parameter names in delegate declarations ( fixes #2908 )
2 years ago
ElektroKill
628a804864
Add support for record structs in `CSharpAmbience` ( fixes #2910 )
2 years ago
Lucas Trzesniewski
39cb275456
Add semantic highlighting for properties and events
...
Also add a fallback mechanism for colors: if a color definition is empty, another one can be used instead.
2 years ago
Lucas Trzesniewski
403098280a
Use .interfaceimpl type syntax
2 years ago
ElektroKill
3e385bfc0a
Fix `ResXResourceWriter` support for `MemoryStream` resource element
...
In newer runtime versions, MemoryStream is no longer a serializable type like it was in .NET Framework. This means explicit support has to be implemented for it.
2 years ago
Daniel Grunwald
747d4c8178
Improve assertion to apply to the C# type instead of the ILAst type
3 years ago
Siegfried Pammer
7cb8e6534d
Fix #2850 : Make sure that type names longer than 255 characters are handled correctly by WholeProjectDecompiler.GetFileNameForHandle
3 years ago
Siegfried Pammer
cedad6d5e8
#2850 : swap try-catch and using statement so that exception handling shows the file being decompiled causing the IOException.
3 years ago