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.
3 years ago
Lucas Trzesniewski
403098280a
Use .interfaceimpl type syntax
3 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.
3 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
ElektroKill
25873a68e0
Improve support for post-increment/decrement on pointers
3 years ago
Siegfried Pammer
ff0e929866
- Introduce ProjectItemInfo instead of tuples in WholeProjectDecompiler project item generation.
...
- Set 'LogicalName' attribute for all decompiled resources. This makes it possible to correctly recompile projects with resource names that are not valid filenames.
- Set Generator and SubType properties for XAML files.
3 years ago
Siegfried Pammer
4eea4bf353
Fix #2830 : Can't decompile project with / in resource name on Windows
3 years ago