Siegfried Pammer
a549b03bea
Implement ref local assignments
5 years ago
Siegfried Pammer
5afb7c82a6
support reference conversions
5 years ago
Siegfried Pammer
9eb0a98854
Fix NRE with tuple discards in DeconstructionTransform
5 years ago
Siegfried Pammer
7f4653c274
Add support for tuple deconstruction
5 years ago
Siegfried Pammer
442f6f90b7
Implement deconstruction discards
5 years ago
Siegfried Pammer
9cb3fe3484
Add support for basic deconstruction conversions
5 years ago
Siegfried Pammer
7eef6f2bfe
Optimize update-assemblyinfo.ps1 build step
5 years ago
Siegfried Pammer
b435c07f4d
Added support for deconstruction assignments to properties
5 years ago
Siegfried Pammer
00b65453ee
Remove `out var _` hack
5 years ago
Siegfried Pammer
a0d9410f67
Fix build.
5 years ago
Siegfried Pammer
05c988c5df
Revert "#2098: CallBuilder: Fix named argument handling in TI"
...
This partially reverts commit eea4b7701c
.
5 years ago
Siegfried Pammer
3bc0bf3270
WIP
5 years ago
Siegfried Pammer
e22e5423d5
Fix #2098 : Support auto event pattern with reordered arguments.
5 years ago
Siegfried Pammer
eea4b7701c
#2098 : CallBuilder: Fix named argument handling in TI
5 years ago
Siegfried Pammer
ea9d2a2eb2
Fix output of pattern nodes
5 years ago
Daniel Grunwald
f5409ebe31
Fix re-pinning getting confused about which variant of the pinned local to use when the new re-pinned reference depends on the old pinned reference.
5 years ago
Daniel Grunwald
4b716e2db5
Fix #2056 : "remove branch into body" must be executed before the clone cleanup
...
Otherwise the to-be-removed branch could keep an soon-to-be-unreachable block alive outside the pinned region.
5 years ago
Daniel Grunwald
c9f65d3b5e
Fix #1555 : Eliminate value-type temporaries emitted by mcs on field reads.
5 years ago
Daniel Grunwald
bd4e565b93
Ensure all pinned regions variables are converted to VariableKind.PinnedRegionLocal
5 years ago
Daniel Grunwald
3e6e628483
Fix missing conversion on ref-reassignment.
5 years ago
Daniel Grunwald
ddff831cf0
#1292 : Fix some more problems with pinned locals.
...
Let's distinguish between the original pinned locals and the PinnedRegion locals.
The format need declarations if any are left over after transformations; the latter don't.
5 years ago
Siegfried Pammer
e7d49b2305
Fix #2079 : Allow variables generated from state-machine fields to be propagated in TDCU.
5 years ago
Daniel Grunwald
cc850c27aa
Add "Aggressive inlining" option
5 years ago
Siegfried Pammer
1c563a62a9
Fix #2090 : ignore mscorlib references without public key token, when trying to resolve mscorlib. This will automatically fallback to .NET 4.0's mscorlib.dll.
5 years ago
Siegfried Pammer
62b8ab39f1
Fix oversight from b788441c78
5 years ago
Daniel Grunwald
8061634e67
#1203 , #2092 : New logic for resolving assembly references within the type system.
...
We now avoid the old `IModuleReference` interface which required allocating for every type being resolved.
Instead `MetadataModule.ResolveModule` now combines decoding+resolving assembly references into a single step.
This allows the type system to maintain a cache indexed by row number.
This also changes the behavior of resolving references within a compilation: We now prefer an exact match (name + version + publickeytoken) first; and fall back to a name-only match only if no exact match exists.
This somewhat improves the decompilation of assemblies created by using ilmerge to combine assemblies with different target frameworks.
5 years ago
Daniel Grunwald
1751c9922c
Avoid constructing a GetClassTypeReference instance in TypeProvider.GetTypeFromReference.
5 years ago
Daniel Grunwald
b788441c78
DecompilerTypeSystem: If some known types are present in referenced assemblies but others are missing; add the missing known types to the compilation.
...
This ensures that FindType(KnownTypeCode).GetDefinition() always returns a usable definition.
5 years ago
Daniel Grunwald
5bd47c171f
Don't require a definition for the task builder type, also accept an UnknownType.
5 years ago
Daniel Grunwald
440ef75898
Avoid pointless UnknownType->object->UnknownType casts.
5 years ago
Daniel Grunwald
b6b5f1e8e6
#2092 : ILFunction.Parameters / ILFunction.ReturnType should never be null.
5 years ago
Daniel Grunwald
40e2776f02
#2089 : Handle invalid attribute/reference metadata in `DetectTargetFrameworkId`
5 years ago
Daniel Grunwald
c6b10d3ec3
Fix #2094 : ByteOffset() arguments passed in wrong order
5 years ago
Daniel Grunwald
1a997fdb60
Enable aggressive inlining into switch expressions.
5 years ago
Daniel Grunwald
abb9d49a0f
Add support for C# 8 switch expressions.
5 years ago
Daniel Grunwald
d388319cba
Add support for C# 9 init accessors.
5 years ago
Daniel Grunwald
d02fd09822
Explicitly create partitioners for `Parallel.ForEach` calls.
...
Apparently the default `Parallel.ForEach` logic checks whether the input enumerable is an array or `IList<T>`,
and if it is, creates whole chunks of sequential list/array indices and assigns those to the worker threads.
This is more efficient if the individual items are processed very quickly; but if they take varying amounts of time, a single chunk full of expensive items might keep a single CPU core busy for long after all other CPU cores have gone idle.
5 years ago
Siegfried Pammer
4b865c27e4
Fix #2076 : VS AddIn opens reference assembly.
5 years ago
Siegfried Pammer
8d72672e6c
Reimplement DecompilerSettings.StaticLocalFunctions (was lost in the refactoring in #2077 )
5 years ago
Siegfried Pammer
c9df069526
Add minimal test case + DecompilerSettings.Deconstruction setting
5 years ago
Siegfried Pammer
3f10294a72
Add DeconstructionTransform + implement DeconstructInstruction in ExpressionBuilder
5 years ago
Siegfried Pammer
b01e9484d5
Fix bugs in ILAst
5 years ago
Siegfried Pammer
eac0e2257e
Support MatchInstruction in DataFlowVisitor
5 years ago
Siegfried Pammer
6bb6097ad4
Extended DeconstructInstruction.CheckInvariant
5 years ago
Siegfried Pammer
33bc9fbef4
Fix display of generic type parameters of local functions in tooltips
5 years ago
Siegfried Pammer
67b2a45292
Improve tooltips and highlighting of local functions
5 years ago
Siegfried Pammer
acea95d0a1
Properly rename LocalFunctionMethod.Name on all instructions
5 years ago
Siegfried Pammer
18ace00266
Refactor LocalFunctionDeclarationStatement + LocalFunctionMethod
5 years ago
Siegfried Pammer
431bbaa489
RequiredNamespaceCollector: properly handle parts of methods
5 years ago
Daniel Grunwald
cda56e7f7e
#2048 : Pattern matching: documentation and invariants for MatchInstruction.
5 years ago