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
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
fde6361995
Fixed missing XML documentation on enum members.
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
David Srbecký
6fd28e8b6e
Remove unreachable return statements. Closes #174 . Closes #192
14 years ago
David Srbecký
c31f9232c5
Do not fall though the end of try-block. It should never happen in valid IL, but some obfuscators generate such code. Closes #164
14 years ago
Daniel Grunwald
c339b9270a
Fix crash in disassembler and decompiler when HasPInvokeInfo=true but PInvokeInfo=null (occurs with unmanaged methods in C++/CLI assemblies)
14 years ago
Daniel Grunwald
e8b6e3d808
Annotate anonymous methods/lambdas with the MethodDefinition representing the lambda body.
14 years ago
Daniel Grunwald
67fcd4ef7d
Fix NullReferenceException in ILAstOptimizer.RecombineVariables
14 years ago
Daniel Grunwald
f1a34c6a31
Fix #202 : Decompilation of multiple catch clauses sharing the same variable name
14 years ago
Daniel Grunwald
17ad27bfac
Use AnyCPU config for BamlDecompiler.Plugin.
...
Support 'unbox' opcode in type analysis.
14 years ago
Daniel Grunwald
e59edceccb
Fix inlining into null coalescing operator.
14 years ago
Daniel Grunwald
e0c7bebfe8
Add license headers to the files that were missing them.
14 years ago
David Srbecký
51eb00aac7
Remove unreachable code in ILAstBuilder. Closes #134 . Closes #151 . Closes #171 .
14 years ago
Siegfried Pammer
111a6ca292
do not use primitive type names in TreeNodes; fixes #183
14 years ago
Siegfried Pammer
2b366fbb97
make pattern for custom short circuit operator invocations more restrictive
14 years ago
Siegfried Pammer
f86fa5d1dd
implement support for op_True and extend unit test
14 years ago
Siegfried Pammer
a929decdeb
implement basic support for custom short circuit operators + unit test; fixes #193
14 years ago
Daniel Grunwald
229218174f
Inlining: remove the arg_-Variable in catch blocks.
14 years ago
Daniel Grunwald
399a87e5a1
Fix #195 IL identfier escaping.
14 years ago
Kevin Cathcart
20f9a624f2
Add support for privatescope. Fixes #186
14 years ago
KevinCathcart
e198438a46
Added support for IL "forwardref" method definitions.
14 years ago
KevinCathcart
5274fe95c1
Support "instance explicit" method definitions. (The informative metadata validation text indicates that it only applies to function pointers, but that is not enforced except as part of metadata validation.)
14 years ago
KevinCathcart
b74daf8c32
Add support for "instance explicit" calling convention for a MethodReference.
14 years ago
Daniel Grunwald
7d24f683d1
Decompile AssemblyVersion attribute. Closes #188 .
14 years ago
Daniel Grunwald
3779381796
Add support for type forwarding declarations ([TypeForwardedToAttribute]). Closes #190 .
14 years ago
Daniel Grunwald
32081feb1b
Decompile security declarations. Closes #189 .
14 years ago
Daniel Grunwald
2d42dd5c57
Fixed several issues related to [MarshalAs] attributes.
14 years ago
Daniel Grunwald
dd4d090468
Lots of improvements/fixes for the disassembler.
14 years ago
Daniel Grunwald
d362f8d0f6
Fixed several bugs in the IL disassembler.
14 years ago
Daniel Grunwald
ae873ec18f
Fixed decompilation of anonymous methods created by the VB compiler. Closes #127 .
14 years ago
Daniel Grunwald
3833643aaf
Fixed issues with detection of using statements.
14 years ago
Daniel Grunwald
5c08e10a07
Fixed incorrect detection of the 'using' statement pattern when the code was assigning to the using variable. Closes #121 .
14 years ago
Daniel Grunwald
4abc650ecd
Fix NullReferenceException in TrransformSwitchOnString. Closes #95 .
14 years ago
Daniel Grunwald
e2794252fb
When decompiling a field, also decompile constructors to check whether there's an initializer on the field.
...
When decompiling a constructor, display field initializers outside of the constructor.
Closes #3 .
14 years ago
Daniel Grunwald
b01fe1b427
Fixed NullReferenceException when decompiling "typeof(List<int>[])".
14 years ago
Siegfried Pammer
439de223bf
implement proper fix for #179 + add unit test
14 years ago
Siegfried Pammer
e9eca059d5
remove isLastLine from interface - use stack instead; fix null reference if resolve of TypeDefinition fails
14 years ago
Daniel Grunwald
faf3a29a08
Fixed position of XML comments on nested types.
14 years ago
Daniel Grunwald
4ec92d9a55
Handle cpobj instruction as stobj(ldobj).
14 years ago
Daniel Grunwald
478035dfd9
Fix issues introduced when merging #166 .
14 years ago
Daniel Grunwald
30fe30c236
Fix DecimalConstantTransform.
14 years ago
Daniel Grunwald
508073d6ac
Applied some of the optimizations suggested by Kris Vandermotten. #150
14 years ago
Daniel Grunwald
7513c8c64b
Show attributes on parameters in IL view. Closes #187 .
14 years ago
Siegfried Pammer
8c228a4df1
fix bug when printing type names introduced by commit 51fc2f10cc
14 years ago