585 Commits (9d0ff70f085fec4becfd5ec7bc639386b50524aa)

Author SHA1 Message Date
Siegfried Pammer 9d0ff70f08 Fix some unnecessary casts, adjust test cases 8 years ago
Siegfried Pammer e3606374a4 Refactor TransformExpressionTrees to use an (ILInstruction, IType) pair as result of every Convert call. 8 years ago
Siegfried Pammer ad68204b04 Fix bugs in Expression.Quote/Expression.Invoke handling 8 years ago
Siegfried Pammer 049cff2324 Add unit tests, directly use ILFunction instead of NewObj(ILFunction) for expression trees. 8 years ago
Siegfried Pammer d3a623bd26 Implement MemberInit, Bind 8 years ago
Siegfried Pammer a5e5cf166b Add support for missing expressions: Invoke, Quote, ListInit, NewArrayBounds, NewArrayInit, ExpressionTreeCast 8 years ago
Siegfried Pammer 21dfa43dab Add ExpressionTreeCast instruction 8 years ago
Siegfried Pammer 648e4ec42a First implementation of TransformExpressionTrees 8 years ago
Siegfried Pammer 29a2d3ec34 Refactoring of ILFunction: allow Method and CecilMethod to be null for expression trees. 8 years ago
Daniel Grunwald 9a829a2820 ILReader: handle implicit O->Ref conversions 8 years ago
Siegfried Pammer ed8fc0de8c Fix #968: foreach loop with early return 8 years ago
Siegfried Pammer 69f2609bff Fix #861: Failure to decompile for loop with conditional early return 8 years ago
Siegfried Pammer 37474ae5e9 Fix #447: second part ReturnFromDoWhileInTryFinally 8 years ago
Daniel Grunwald 02db362838 Ensure that StLoc.Value.ResultType == StLoc.Variable.StackType 8 years ago
Siegfried Pammer f8afa6051d Fix another instance of #951: Incorrect decompilation of anonymous delegate 8 years ago
Siegfried Pammer 300c9cc9a9 Do not convert while-true to while-condition loop or do-while loop, if the condition uses a variable that is captured inside the loop. 8 years ago
Siegfried Pammer f91df96281 Improve for loop transform: split conditions 8 years ago
Siegfried Pammer b3f5a8e089 Refactor MatchDoWhileLoop; add documentation 8 years ago
Siegfried Pammer b24b749ec6 Add support for multiple conditions in do-while loops. 8 years ago
Daniel Grunwald d6bc1ca762 #915: Fix LoopDetection.FindExitPoint() incorrectly returning null (=multiple exit points; use heuristic) when there was only a single exit point that wasn't dominated by the loop head. 8 years ago
Siegfried Pammer 4daabf350a Do not convert to for loop if increment variable is a parameter. 8 years ago
Siegfried Pammer bcc574a6c0 Fix aggressive for-loop detection 8 years ago
Daniel Grunwald f155ca4ef6 Fix #938: add support for I4->I stack type adjustments. 8 years ago
Siegfried Pammer 86c3ab8314 Fix unit tests 8 years ago
Daniel Grunwald e6afe4bf98 Fix #915: ensure that loops are nested correctly 8 years ago
Siegfried Pammer b3370506ae Fix small regressions 8 years ago
Siegfried Pammer bfb310b4a3 Remove DetectedLoop 8 years ago
Siegfried Pammer 8da8a7f0c9 HighLevelLoopTransform: implement detection of for and do-while 8 years ago
Siegfried Pammer 372f543d6c Add MoveElementToIndex and MoveElementToEnd methods to InstructionCollection 8 years ago
Siegfried Pammer af6274c5ae HighLevelLoopTransform: Add support for while (condition) loops 8 years ago
Daniel Grunwald 7af15d27cd Fix #905: improve exit point detection for foreach loops. 8 years ago
Siegfried Pammer 154833b06c Add ContainerKind 8 years ago
Siegfried Pammer 349183544a Rename BlockType to BlockKind 8 years ago
Daniel Grunwald 7f7e6564b3 Fix #948: fix assertion when accessing fixed-size fields where StackType.Ref is expected. 8 years ago
Daniel Grunwald 1528ff329f #447: Don't pick "return;" as exit point if there's another choice. 8 years ago
Daniel Grunwald 6d8d37f8fc Add ValueTypeCall foreach testcase. 8 years ago
Siegfried Pammer a9fd937099 Fix bug in TransformArrayInitializers.HandleJaggedArrayInitializer 8 years ago
Daniel Grunwald adb64514f8 Add some comments to SwitchDetection.UseCSharpSwitch 8 years ago
Siegfried Pammer d2f2a13982 Add RemoveDeadCode option 8 years ago
Daniel Grunwald a82430fc78 Add missing safety checks to inline assignment transforms. 8 years ago
Daniel Grunwald 11631d6cf0 Remove redundant code from TransformAssignment. 8 years ago
Daniel Grunwald 7847a69d69 Fix compound assignment and post-increment. 8 years ago
Daniel Grunwald 4c5f0b7e9c Convert TransformAssignment into a statement transform and add support for inline property assignments. 8 years ago
Siegfried Pammer 8135157e95 Fix #951: Incorrect decompilation of anonymous delegate 8 years ago
Daniel Grunwald 40a4f08a8d Add support for compound assignment of short integers. 8 years ago
Daniel Grunwald 248a9ad76f Fix #954: don't use invalid compound assignments on enums 8 years ago
Daniel Grunwald b0bf6326ad Allow inline assignments to short integers when we can tell that there's no truncation. 8 years ago
Daniel Grunwald c7e60a9b3c Avoid using inline assignments if they truncate the input value. 8 years ago
Daniel Grunwald 385005b2e5 More strictly test the inline assignment pattern. 8 years ago
Siegfried Pammer 4afb7230f1 GenerateForeachVariableName: Use root ILFunction and descendants as context for variable naming in GenerateForeachVariableName; Fixes #957: Invalid foreach naming 8 years ago