Siegfried Pammer
4de9775842
Fix #3079 : Replace parameter names that consist of only whitespace
2 years ago
Daniel Grunwald
7ce6ded97b
Fix #2397 : Introduced calls to Unsafe.Read or Unsafe.Write when we would otherwise cause "Cannot declare a pointer to a managed type T" errors.
2 years ago
Siegfried Pammer
e8c1270b92
Fix duplicate ILFunction annotations.
2 years ago
Kirill Osenkov
7992d148e8
Generate sequence points for expression-bodied properties and indexers
2 years ago
Lucas Trzesniewski
bf69531216
Fix #3025 : Annotate nested types
2 years ago
Andrew Crawley (US - DIAGNOSTICS)
7451b21650
Fix decompilation of record with missing base type
...
This commit updates `RecordDecompiler` to avoid a null ref when the
decompiler is unable to determine the base type of a record (e.g.
because the base type is defined in another assembly that is not
loaded).
2 years ago
Siegfried Pammer
d57b08c79d
Fix #3010 : Remove compiler-generated attributes for required members with custom ctors.
2 years ago
Siegfried Pammer
13227e433e
Fix compound assignments with local variables.
2 years ago
Daniel Grunwald
b80d20b15d
Add support for calling `operator checked`.
2 years ago
Daniel Grunwald
32fafeb9a1
Add support for user-defined checked operators.
2 years ago
Daniel Grunwald
a2019c5d78
Avoid using `>>>` operator when the context expects a cast to unsigned anyway.
2 years ago
Daniel Grunwald
8b9ba20847
Builtin unsigned right shift operator.
2 years ago
Daniel Grunwald
3c46271a11
Add support for unsigned right shift.
...
Only for user-defined operators so far; builtin right shifts still cast to the appropriate type.
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
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
Siegfried Pammer
263360f3f3
Add RemoveCompilerFeatureRequiredAttribute
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
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
28e9123634
Fix removal of attributes injected by the legacy VB compiler
2 years ago
ElektroKill
b110d5c2dc
Implement support for Visual Basic yield return state machines
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
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
ElektroKill
a5febb3e4f
Add support for VB.NET automatic events
3 years ago
ElektroKill
cd3d23e406
Include property and event return types in `RequiredNamespaceCollector`
3 years ago
Daniel Grunwald
516341a09b
Use "static abstract" instead of "abstract static".
3 years ago
Daniel Grunwald
f3013010cd
Add support for C# 11 required members.
3 years ago
Siegfried Pammer
c3d0e5ecc2
Fix #1784 : Move RemoveEmbeddedAttributes transform to ICSharpCode.Decompiler and do no longer decompile embedded attributes in WholeProjectDecompiler and PortablePdbWriter.
3 years ago
Siegfried Pammer
71e4d51786
Fix #2807 : Detect when a compiler-generated/hidden type needs to be decompiled in WholeProjectDecompiler.
3 years ago
Siegfried Pammer
ae0e83f0c4
Records: Support new EqualityContract pattern.
3 years ago
Siegfried Pammer
f2da255200
Fix #2825 : Missing whitespace after new()
3 years ago
Siegfried Pammer
bde782e4f5
Fix #2806 : Do not use implicitly typed out variables, if argument and parameter types do not match exactly.
3 years ago
Siegfried Pammer
42668e810a
Fix #2808 : Insert cast to object when statically casting from dynamic to a reference type.
3 years ago
Siegfried Pammer
343694c549
Generalize progress reporting for decompilation and PDB generation.
3 years ago
Standa Lukeš
93eecf93a5
Add more asserts and ToStrings around the FakeProperty.Setter problem
3 years ago
Standa Lukeš
6153f9cf35
Add test for indexer initializers
3 years ago
Siegfried Pammer
9017592d1d
Fix #2764 : Move constant field initializers regardless of whether the other field initializers can be moved.
3 years ago
Siegfried Pammer
e8c4f29738
#2797 : Clarify exception message, if type is not found in the module being decompiled.
3 years ago
Siegfried Pammer
47250d670b
Fix #2791 : Ensure that the capture scope used is either a loop or the ILFunction root container.
3 years ago