53 Commits (67fa24b09f4c58e208d5ccb22b3e7145665c8ba4)

Author SHA1 Message Date
Daniel Grunwald 67fa24b09f Improve async/await decompilation when reference assemblies are missing 6 years ago
Daniel Grunwald f8ee7c2bf3 Initial support for `async IAsyncEnumerator<T>` methods 6 years ago
Daniel Grunwald 0d3a3bee82 Fix #1703: Support async methods that never return normally. 6 years ago
Siegfried Pammer 4db22c87e1 Implement detection of custom task implementations + tests. 6 years ago
Siegfried Pammer e5d603ced2 Fix #1632: await pattern might use negated IsCompleted check. 6 years ago
Daniel Grunwald 5177c56d88 Reject MoveNext() methods with more than one cachedStateVar. 6 years ago
Daniel Grunwald 3f996ff2c0 Fix #1604: async methods that had no 'await' but were capturing 'this' were not decompiled correctly 6 years ago
Daniel Grunwald beed6b5e24 Remove MarkGeneratedVariables() step in AsyncAwaitDecompiler. 6 years ago
Siegfried Pammer ab55086cd7 Use ILRange API in AsyncAwaitDecompiler. 6 years ago
Siegfried Pammer c1fca21e8a Make ILRange field private - introduce public API for IL range manipulation. 6 years ago
Daniel Grunwald f1c8142ce2 PDB generator now can emit "method stepping information" for async functions. 6 years ago
Siegfried Pammer d9952a7e10 #1388: Fix ArgumentOutOfRangeException in AsyncAwaitDecompiler.AnalyzeAwaitBlock. 6 years ago
Daniel Grunwald 47ca51a769 Clarify the meaning of ILVariable.Index 6 years ago
Siegfried Pammer 00a54a278a Fix #1344: Fix GetCodeMappingInfo for nested async FSMs 7 years ago
Daniel Grunwald deb2ceebd8 Fix #970: 'await' decompilation when the awaiter does not implement ICriticalNotifyCompletion 7 years ago
Daniel Grunwald b396d203bd Merge IDecompilerTypeSystem with ICompilation. 7 years ago
Daniel Grunwald 1f3916d554 Use the resolve methods in MetadataModule, and remove the wrappers in DecompilerTypeSystem. 7 years ago
Siegfried Pammer 458f448fae Avoid unnecessary allocations of MetadataReader and clean up Dom structs a bit. 7 years ago
Siegfried Pammer 592935537a Migrate AsyncAwaitDecompiler and YieldReturnDecompiler to SRM. 7 years ago
Pent Ploompuu a63e65fae8 Reduced allocations in ILInlining 7 years ago
Siegfried Pammer fa57b9769f Port AsyncAwaitDecompiler.IsCompilerGeneratedMainMethod 7 years ago
Daniel Grunwald ed493c3037 Fix 'await default(SomeStruct)'. 7 years ago
Siegfried Pammer adda97cf84 Add AwaitInFinallyTransform 7 years ago
Siegfried Pammer 9b665b7cbc Add AwaitInCatchTransform 7 years ago
MikeFH c299304034 Check that method is actually the entry point 7 years ago
MikeFH 66d806b2d9 Add support for async main method 7 years ago
Daniel Grunwald 02db362838 Ensure that StLoc.Value.ResultType == StLoc.Variable.StackType 8 years ago
Moritz f4209947a0 Fix await calls not getting decompiled correctly (#904) 8 years ago
Daniel Grunwald 236c7c28b4 Remove redundant lambda casts. 8 years ago
Daniel Grunwald 39bb6856b7 Fix various bugs with compound assignments. 8 years ago
Daniel Grunwald 846c8613b0 [async] Delete dead ldloc(cachedStateVar). 8 years ago
Daniel Grunwald 0008deb021 Fix handling of try-finally blocks in ReachingDefinitionsVisitor. 8 years ago
Daniel Grunwald 919219524b Eliminate the dedicated logic.not instruction, and treat it as syntax sugar similar to logic.and/logic.or. 8 years ago
Daniel Grunwald e266c634de [nullables] Add support for lifted binary operators where one of the inputs is nullable. 8 years ago
Daniel Grunwald 6b3ab66300 Fix ExpectedResultType of main BlockContainer. 8 years ago
Siegfried Pammer 2d1692c72f Add value parameter to Leave ctor. 8 years ago
Siegfried Pammer 206cdecf30 Merge Return instruction into Leave. 8 years ago
Daniel Grunwald ec610a4422 Clean up mono yield-return decompilation. 8 years ago
Daniel Grunwald d550390f4d Initial support for yield-return decompilation in assemblies compiled with the mono compiler. 8 years ago
Daniel Grunwald f5d907e0ce [async] Allow splitting awaiter variables. 8 years ago
Daniel Grunwald d5e41a91e6 [async] Fix await decompilation when GetResult call got inlined into another instruction. 8 years ago
Daniel Grunwald e024641a5f [async] Fix bug when async method uses this pointer. 8 years ago
Daniel Grunwald 4bfdcdd8a2 [async] Fix handling of doFinallyBodies. 8 years ago
Daniel Grunwald 098d1152ff [async] Handle pre-roslyn stack saving during await. 8 years ago
Daniel Grunwald 6c7e2efa6c [async] Fix await decompiler for pre-roslyn csc, at least in cases where the stack is empty during the await. 8 years ago
Daniel Grunwald 123a7f4a62 [async] small improvements to await decompilation 8 years ago
Daniel Grunwald 04215ebcfa [async] Add copy propagation so that state machine field accesses can be reliably detected. 8 years ago
Daniel Grunwald 7d6122cfaf [async] Decompile await operator. 8 years ago
Daniel Grunwald 3ff3b34be9 [async]: control flow reconstruction: fixes for legacy csc 8 years ago
Daniel Grunwald 40212685b6 [async]: control flow reconstruction 8 years ago