Browse Source

#1049: add back some decompiler settings

pull/1051/head
Siegfried Pammer 7 years ago
parent
commit
7cbcdd9f0e
  1. 4
      ICSharpCode.Decompiler/CSharp/StatementBuilder.cs
  2. 2
      ICSharpCode.Decompiler/CSharp/Transforms/PatternStatementTransform.cs
  3. 1
      ICSharpCode.Decompiler/IL/Transforms/TransformCollectionAndObjectInitializers.cs
  4. 1
      ICSharpCode.Decompiler/IL/Transforms/TransformExpressionTrees.cs

4
ICSharpCode.Decompiler/CSharp/StatementBuilder.cs

@ -402,6 +402,10 @@ namespace ICSharpCode.Decompiler.CSharp @@ -402,6 +402,10 @@ namespace ICSharpCode.Decompiler.CSharp
Statement TransformToForeach(UsingInstruction inst, out Expression resource)
{
if (!settings.ForEachStatement) {
resource = null;
return null;
}
// Check if the using resource matches the GetEnumerator pattern.
resource = exprBuilder.Translate(inst.ResourceExpression);
var m = getEnumeratorPattern.Match(resource);

2
ICSharpCode.Decompiler/CSharp/Transforms/PatternStatementTransform.cs

@ -236,6 +236,7 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms @@ -236,6 +236,7 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms
Statement TransformForeachOnArray(ForStatement forStatement)
{
if (!context.Settings.ForEachStatement) return null;
Match m = forOnArrayPattern.Match(forStatement);
if (!m.Success) return null;
var itemVariable = m.Get<IdentifierExpression>("itemVariable").Single().GetILVariable();
@ -363,6 +364,7 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms @@ -363,6 +364,7 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms
Statement TransformForeachOnMultiDimArray(ExpressionStatement expressionStatement)
{
if (!context.Settings.ForEachStatement) return null;
Match m;
Statement stmt = expressionStatement;
IL.ILVariable collection = null;

1
ICSharpCode.Decompiler/IL/Transforms/TransformCollectionAndObjectInitializers.cs

@ -33,6 +33,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -33,6 +33,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms
void IStatementTransform.Run(Block block, int pos, StatementTransformContext context)
{
if (!context.Settings.ObjectOrCollectionInitializers) return;
this.context = context;
try {
DoTransform(block, pos);

1
ICSharpCode.Decompiler/IL/Transforms/TransformExpressionTrees.cs

@ -99,6 +99,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -99,6 +99,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms
public void Run(Block block, int pos, StatementTransformContext context)
{
if (!context.Settings.ExpressionTrees) return;
this.context = context;
this.conversions = CSharpConversions.Get(context.TypeSystem.Compilation);
this.resolver = new CSharpResolver(context.TypeSystem.Compilation);

Loading…
Cancel
Save