Daniel Grunwald
d24cb3ff2e
Fixed disassembling and decompiling negative zeroes.
13 years ago
Daniel Grunwald
82154e1eb6
Fixed decompilation of automatic event that has attributes on the accessors.
13 years ago
Daniel Grunwald
1b6d1088e8
Fix #346 : incorrect type inference for if statement on ref bool parameter
13 years ago
Daniel Grunwald
daa5900f9c
Fixed async/await decompilation when the GetAwaiter() is called on a value type.
13 years ago
Daniel Grunwald
45e327d53a
Don't show [AsyncStateMachine] attribute.
13 years ago
Daniel Grunwald
8acf17d50a
Improved async/await decompiler.
13 years ago
Daniel Grunwald
7364df6b3a
Set version number to 2.1.
13 years ago
Daniel Grunwald
2edcaa2c44
Initial implementation of async/await decompiler.
13 years ago
Daniel Grunwald
0a01bc7b03
Adjust ILSpy to NRefactory API changes.
13 years ago
Daniel Grunwald
4906f3e26b
#282 - Fix the casts in the other direction (from concrete type to type parameter).
13 years ago
Daniel Grunwald
134c4515e4
Fix #282 : (T)(object)DateTime.Now; decompiles as (T)DateTime.Now;, which does not compile
13 years ago
Daniel Grunwald
979f7d018a
Traverse the dominator tree in depth-first order when finding conditions. This reduces the number of gotos produced for complex control flow.
...
Closes #253 .
13 years ago
Siegfried Pammer
8929b2c165
fix overloads in unit tests
13 years ago
Siegfried Pammer
91b74550fe
implement special cases for enum type inference; closes #248
13 years ago
Siegfried Pammer
1e79bf3588
do not use DominanceFrontiers to detect condition bodies; closes #300
13 years ago
Daniel Grunwald
0b968182a3
Fix #296 : Array initialization decompiles into recursive reference
13 years ago
Daniel Grunwald
c3b9fd63c1
Fix array creation with unsigned integers.
13 years ago
Daniel Grunwald
63a55fa5b0
Fixed NullReferenceException when decompiling a switch over a boolean variable that includes a default case.
13 years ago
Daniel Grunwald
0010be6add
Fixed decompiling "new byte[length]" where length is a long.
13 years ago
Daniel Grunwald
59db5876ee
Decompile 'volatile' modifier.
14 years ago
Daniel Grunwald
c542648d87
Store debugger member mappings in a simple list in the text output; copy the entries into the DebugInformation only when the output gets displayed.
...
MemberBookmark: Re-use the GetIcon methods from the TreeNodes.
14 years ago
Daniel Grunwald
2e387958db
Add support for more language constructs to the ExpressionTreeConverter.
14 years ago
Daniel Grunwald
7e35c705b6
Initial implementation of Expression Tree Decompilation ( #175 )
14 years ago
Zohar Kelrich
470caaa6bb
Fix #278 : Decompiling generic multidimensional array access throws exception
14 years ago
Daniel Grunwald
70d1693e91
Fix #255 InvalidOperationException: The new node 'CheckedExpression' is not valid in the role Initializer
14 years ago
lumi
deaff2a0ce
Add failing test for Checked/initializer interaction
14 years ago
Daniel Grunwald
c28f6455d8
Anonymous type create expressions: when all names can be inferred from the initializers, don't create NamedExpressions.
14 years ago
Daniel Grunwald
81bb822fdb
Adjust ILSpy to NRefactory changes.
14 years ago
Pent Ploompuu
92c892577d
Use consistent terminology for lifted operators
14 years ago
Daniel Grunwald
f39f7c3d63
Use 'ref', not 'out', for passing arguments to a method parameter declared as "[In, Out] ref".
14 years ago
Pent Ploompuu
66fde6d0ee
Compound assignment support for overloaded operators
14 years ago
Pent Ploompuu
ee0f43ad38
Compound assignment support for lifted operators
14 years ago
Pent Ploompuu
26d903efd5
Test case for operator "is" on reference types with result used as a boolean.
14 years ago
Pent Ploompuu
85fbaf8255
Test both with and without optimizations
14 years ago
Pent Ploompuu
e5c8b06e1c
Fixed TernaryOp and NullCoalescing type analysis.
14 years ago
Pent Ploompuu
26734a68d3
Test cases for all lifted operators
14 years ago
Daniel Grunwald
3fad5cb76b
Fix #249 : Object Initializer not detected for value types
14 years ago
Daniel Grunwald
3020bc9ce8
Fixed type analysis for right shift operator.
14 years ago
Daniel Grunwald
8beed6aa70
Fixed type inference for shift operators. Closes #239 .
14 years ago
Daniel Grunwald
2783b02007
Fix #241 : type analysis causes truncation of integer literals when calculating with types smaller than int32.
14 years ago
Alex Lyman
ed6380077f
- Reverted changes to display decimal.MinValue and decimal.MaxValue
...
- Altered InitializerTests to use constant literals instead of decimal.MinValue and decimal.MaxValue
14 years ago
Alex Lyman
e484d35fe2
- Altered the InitializerPeepholeTransforms' ArrayInitializer forward-scan to only look at the next instruction: in practice, CSC does not seem to generate code that needs anything more, and there are some questions as to the validity of the looping itself (i.e. what if there is a branch between them?
...
- Added another test to the InitializerTests, to validate that it handles deeper multi-dimensional arrays (I went 3x3x3 for simplicity)
14 years ago
Alex Lyman
9faee0ad8d
- Modified the InitializerPeepholeTransforms' Array Initializers to do a forward scan of the block instead of just checking the next instruction. The next-instruction thing breaks down under the case where you have an array-of-arrays (int[][])
...
- Added to the InitializerPeepholeTransforms' Array Initializers to detect the creation of a multi-dimensional array (int[,])
- Modified the ILCode.InitArray contract to take an ArrayType instead of just the element type, and passing with the ArrayType.Dimensions set accordingly.
- AstMethodBodyBuilder now used the ArrayType.Dimensions info to build a tree of ArrayInitializerExpressions from the raw, element-by-element list.
- Fixed OutputVisitor not calling StartNode for EmptyExpressions
Known issues:
- ArrayCreateExpression outputs extra space in the array specifier when using EmptyExpressions, ala: "new int[][, ]"
- The tree of ArrayInitializerExpressions outputs with blank lines before and after each block.
14 years ago
Alex Lyman
8dcea0b27b
- Made the InitializerTests pass, through three changes:
...
* Added new-lines as needed to make the source formatting match what the actual output was.
* Added code to CodeAssert to make it ignore #regions
* Added code to output decimal.MinValue and decimal.MaxValue as appropriate
14 years ago
Daniel Grunwald
4f5fb6c140
Fixed references to enum values nested within generic types.
14 years ago
Daniel Grunwald
320b6d96c2
Fix some compiler warnings.
14 years ago
Daniel Grunwald
9376ece056
Fixed references to enum values nested within generic types.
14 years ago
Daniel Grunwald
6daf7cb6bc
Fix some compiler warnings.
14 years ago
Pent Ploompuu
f7811e69ab
Added some comments and simplified the pattern matching
14 years ago
Pent Ploompuu
1e34ba6b1a
Added test cases for operators on nullable values
14 years ago