Daniel Grunwald
0b968182a3
Fix #296 : Array initialization decompiles into recursive reference
14 years ago
Daniel Grunwald
0010be6add
Fixed decompiling "new byte[length]" where length is a long.
14 years ago
Jb Evain
8e4d8226f1
Recover collection initializers using call opcode
14 years ago
Jb Evain
c9d99af4e8
Remove unused variable
14 years ago
Jb Evain
11c99f778f
Refactor DecodeArrayInitializer to support enums.
...
Remove code duplication.
14 years ago
Jb Evain
38cae92dee
Fix InitializeArray decompilation for initialize values that include padding
14 years ago
Daniel Grunwald
17a75ded4e
Fix #211 InvalidCastException in ILAstOptimizer.TransformArrayInitializers
14 years ago
Daniel Grunwald
3fad5cb76b
Fix #249 : Object Initializer not detected for value types
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
Daniel Grunwald
6c94092dc5
Fixed ILAstOptimizer.CanBeExpressionStatement to include more types of assignments.
...
Fixed TypeAnalysis.IsEnum so that arrays of enums are not considered to be enums.
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
Daniel Grunwald
f12371e0e1
Consistently use the full MIT license header on source files.
14 years ago
Daniel Grunwald
1e6cc8f8b1
Fixed bugs with collection initializers.
14 years ago
Daniel Grunwald
660505e04d
Introduce 'AddressOf' pseudo-opcode to make the type system aware of inlined value types ( #139 )
14 years ago
Daniel Grunwald
7c9013736e
Use hyperlinks for the named arguments in object initializers.
14 years ago
Daniel Grunwald
6a98af56ad
Fixed decompilation when an object initializer is used on a collection type.
14 years ago
Daniel Grunwald
207bb984aa
Implemented support for nested object/collection initializers.
14 years ago
Daniel Grunwald
baa05b2e01
Fixed unintended interaction between object initializers and anonymous methods.
14 years ago
Daniel Grunwald
600c07388e
Implemented object initializers.
14 years ago
David Srbecký
31b2de1126
Fixed initilizers and fixed statements which I broke during the refactoring.
15 years ago
David Srbecký
b3f1d599f8
Refactored some peephole transforms; Moved some of the transforms before loop and condition detection
15 years ago
David Srbecký
95ec14a7c5
Use the simple pattern matching for array initializers
15 years ago
Daniel Grunwald
b6d832d212
Add support for collection initializers.
15 years ago