Daniel Grunwald
9db07b54c5
Adjust decompiler to NRefactory changes.
14 years ago
Daniel Grunwald
81bb822fdb
Adjust ILSpy to NRefactory changes.
14 years ago
Daniel Grunwald
fc58b40400
Fixed decompilation of WinRT classes (methods implementing interfaces were misdetected as explicit interface implementations)
14 years ago
Daniel Grunwald
eba7aa2ca2
Normalize line endings to LF.
14 years ago
Daniel Grunwald
0cdaf3bec4
Ensure the value parameter of a property setter is called 'value'.
14 years ago
jbevain
96c7204789
Annotate VariableInitializers with ILVariable when possible
14 years ago
Daniel Grunwald
5463a70fe4
Decompile [ComImport] attribute.
14 years ago
Daniel Grunwald
baa4af92c1
Don't use field initializer syntax when the RHS of the assignment contains "this".
14 years ago
jbevain
d55a61772a
Annotate properties and events with the original method reference too
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
Eusebiu Marcu
b394749f47
create a new TextOutputLocation class for storing the location in the output text instead of Tuple<int, int>
14 years ago
Daniel Grunwald
0c9faf13f5
Fix GetPopDelta() for calli instructions that call instance methods.
14 years ago
David Srbecký
aeeda32d10
Return instruction pops zero or one item instead of all.
...
Exception of catch block does not have to be consumed.
Related to #185
14 years ago
David Srbecký
3b692d9c7c
Ignore arguments of 'leave'. Closes #185
14 years ago
Siegfried Pammer
3e009aaa1b
add folding
14 years ago
Siegfried Pammer
f4d29b2f2b
add AlwaysGenerateExceptionVariableForCatchBlocks setting to avoid Catch clauses without a variable; disable C#'s query expression translation
14 years ago
Siegfried Pammer
beff26761e
fix #167 - Incorrect decompilation of null as extension method this parameter
14 years ago
Eusebiu Marcu
85b8f848c3
Add Decompilation data class to be used by other applications to store code mappings information.
14 years ago
Siegfried Pammer
4c4374cc8c
add IntroduceIncrementAndDecrement setting for VB
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
5c2f3633a0
Don't use variable name from .pdb file if it isn't a valid C# identifier.
14 years ago
David Srbecký
822e473df3
Replace endfinally with jump. Closes #232
14 years ago
Daniel Grunwald
3020bc9ce8
Fixed type analysis for right shift operator.
14 years ago
Daniel Grunwald
43b4339bea
Simplify shift operators (<< and >>).
...
Based on patch by Pent Ploompuu.
14 years ago
Siegfried Pammer
2a45819408
implement ArrayCreateExpression and CastExpression
14 years ago
Daniel Grunwald
b9109469af
Fixed bug that could cause variable names to be used twice, resulting in a crash in DeclareVariable step. Closes #222 .
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
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
Artur Zgodziński
c42bf520b8
Highlighting references to clicked variable or parameter.
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
David Srbecký
f9d877b25a
Remove unreachable return statements. Closes #174 . Closes #192
14 years ago
David Srbecký
de4389cb39
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
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