Siegfried Pammer
82edef3bc6
Add scaffolding for the C# 15 runtime-async lowering.
...
Detect MethodImplOptions.Async (0x2000) in ILReader and unpack Task/Task<T>
return types so the IL Leave value and function.AsyncReturnType match the
source signature. Add CSharp15_0 (Preview also bumped to 1500) and a
RuntimeAsync setting (default on, gated to >=CSharp15_0), expose it in the
Languages dropdown, mask the synthetic MethodImplAsync bit out of the
decompiled [MethodImpl], and add a .runtimeasync test suffix.
4 months ago
Siegfried Pammer
317e33b3b8
Fix five small analyzer warnings.
...
* ExtensionDeclaration.SymbolKind (CA1065) — was throwing
NotImplementedException; return SymbolKind.TypeDefinition to match
TypeDeclaration / DelegateDeclaration, since `extension` declarations
are type-level.
* CustomAttribute.DecodeValue (CA2002) — replace `lock(this)` on the
sealed-but-internal class with a private syncRoot field.
* PlainTextOutput (CA1001) — implement IDisposable; track an
ownsWriter flag so we only dispose the underlying TextWriter when
the parameterless constructor created its own StringWriter.
* DotNetCorePathFinder (CA1060) — move the libc realpath / free
PInvokes into a private nested NativeMethods class.
* ILSpy.ReadyToRun (CA1016) — add [assembly: AssemblyVersion("1.0.0.0")]
in Properties/AssemblyInfo.cs to match the BamlDecompiler plugin.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4 months ago
Siegfried Pammer
ade13f848e
Apply suggestions from Claude code review
6 months ago
Siegfried Pammer
91d7a76b94
Fix typo in MetadataModule.GetDefinition
6 months ago
Siegfried Pammer
98d764a169
Add a treenode and decompiler APIs for extensions.
6 months ago
Siegfried Pammer
77d9ee73e9
Fix IDE2000 globally
9 months ago
Siegfried Pammer
5f0e767c7d
Fix crash in TryEncodingV2, if there are multiple extension groups with the same target type, but different extension parameter name.
9 months ago
ds5678
83df0ab9b9
Handle multiple calling conventions at once
10 months ago
ds5678
a04c0e4cab
Improve decompilation of unmanaged function pointers
...
This improves how function pointers are decompiled.
* ExpressionBuilder::VisitLdFtn now properly constructs the calling conventions.
* FunctionPointerType::FromSignature now checks whether a modopt type affects the calling convention.
10 months ago
Siegfried Pammer
396b58031b
Add support for C# 14 first-class span types in the type system.
10 months ago
Siegfried Pammer
1fe8771bc6
Fixed issue described in PR #3596 : Derived record classes do not necessarily declare a ToString override, as the core logic is in PrintMembers.
11 months ago
Siegfried Pammer
f6c763e7bb
Add tests for ExtensionEncodingV1 and ExtensionEncodingV2.
11 months ago
ds5678
1d964bce8e
Fix regression in decompiling local functions with default parameters
1 year ago
Siegfried Pammer
7f84d24167
Add support for new extension everything encoding.
1 year ago
Siegfried Pammer
17a533647b
Add C# 14 ExtensionMarkerAttribute
1 year ago
Siegfried Pammer
732f285c41
Rename KnownAttributes.RequiredAttribute to KnownAttributes.Required
1 year ago
Peter Crabtree
e1e16b64f5
dev: Strip BOM mark from text files
1 year ago
Siegfried Pammer
3b0939d99c
Add ExtensionInfo: mapping of extension members to extension implementations and more.
1 year ago
Siegfried Pammer
68ae8ae833
Rename ITypeDefinition.HasExtensionMethods to ITypeDefinition.HasExtensions
1 year ago
Siegfried Pammer
7ea2c8f32f
Remove dead code
1 year ago
Siegfried Pammer
c642678f7f
Remove ToTypeReference: Implement ParseReflectionName with SRM TypeName.
1 year ago
Siegfried Pammer
33e497eb80
Refactor ParseReflectionName to return IType instead of ITypeReference
1 year ago
Siegfried Pammer
c9e3790adc
Remove UnresolvedUsingScope
1 year ago
Daniel Grunwald
ccb8887657
Move AllowByRefLike to SRMExtensions.
1 year ago
Jan Jones
2357d00939
Support `allows ref struct` constraint
1 year ago
Maximilian Schmöcker
53d01869c9
Fix incorrect method for static methods with instance signature
1 year ago
Siegfried Pammer
4aa777ccc2
Add IsArrayInterfaceType extension method
1 year ago
ds5678
586c04d081
Support params keyword on non-array collections
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
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
Siegfried Pammer
e5a85422d3
Fix #3457 : NRE when creating Mermaid diagram of assembly with (possibly) missing references.
1 year ago
Siegfried Pammer
3c70224441
Fix detection and display of explicitly implemented operators.
2 years ago
Siegfried Pammer
ac0ef8a113
Fix #3253 : Remove duplicate assembly references keeping the ones with the highest version.
2 years ago
Siegfried Pammer
90946ae31a
XML doc corrections
2 years ago
Siegfried Pammer
e6004e5f26
Handle ReferenceKind.RefReadOnly in a few more cases
2 years ago
Siegfried Pammer
783c934bfd
Transform RequiresLocationAttribute to 'ref readonly' on function pointers.
2 years ago
Siegfried Pammer
02d2a8c1f8
Add metadata processing for C# 12 'ref readonly' parameters
2 years ago
Siegfried Pammer
5d36732fcf
Remove ApplyPdbLocalTypeInfoTypeVisitor (merge it into ApplyAttributeTypeVisitor)
2 years ago
Siegfried Pammer
4bf9487ecd
Remove IsRef, IsOut and IsIn flags from IParameter and Replace ParameterModifiers with ReferenceKind.
2 years ago
Siegfried Pammer
ca78d4a14d
Use MetadataFile instead of PEFile in TypeSystem.
3 years ago
Siegfried Pammer
2e777201f3
Fix bug in UnknownType: FullName of nested unknown types did not contain the outer type name(s), but only namespace and nested type name.
3 years ago
Siegfried Pammer
eae54ddf24
Fix #3014 : Missing type information in lambda expressions.
3 years ago
Daniel Grunwald
18666d8d5d
Fix additionalReturnTypeAttributes not being applied.
3 years ago
Daniel Grunwald
a14cc0234e
Fix #3094 : look for `[NullableAttribute]` both on the property getter and property itself
3 years ago
Daniel Grunwald
a9eccdb654
Fix #3004 : MetadataModule.ResolveEntity() returning null for System.IntPtr when C# 11 native integers are enabled.
3 years ago
Siegfried Pammer
591ab6b75d
Implement support for explicit interface implementation of operators and operator uses.
3 years ago
Siegfried Pammer
6172d63ff3
Support virtual modifier on static abstract interface members.
3 years ago
Daniel Grunwald
4fc8f4e66e
Fix #2913 : ArgumentException when generic class is missing `1 suffix.
3 years ago
Daniel Grunwald
94ee5ed216
Fix assertion: UnknownType for unresolved reference can still be nullable; only the SpecialType.Unknown cannot.
3 years ago