Browse Source

Add ILAstWritingOptions parameter to LockInstruction/UsingInstruction.WriteTo, fix merge errors.

pull/870/merge
Siegfried Pammer 8 years ago
parent
commit
4f7a479320
  1. 3
      ICSharpCode.Decompiler/IL/Instructions/ILFunction.cs
  2. 10
      ICSharpCode.Decompiler/IL/Instructions/LockInstruction.cs
  3. 20
      ICSharpCode.Decompiler/IL/Transforms/ILInlining.cs

3
ICSharpCode.Decompiler/IL/Instructions/ILFunction.cs

@ -107,13 +107,12 @@ namespace ICSharpCode.Decompiler.IL @@ -107,13 +107,12 @@ namespace ICSharpCode.Decompiler.IL
}
output.MarkFoldEnd();
output.WriteLine();
body.WriteTo(output, options);
foreach (string warning in Warnings) {
output.WriteLine("//" + warning);
}
body.WriteTo(output);
body.WriteTo(output, options);
output.WriteLine();
output.Unindent();

10
ICSharpCode.Decompiler/IL/Instructions/LockInstruction.cs

@ -26,13 +26,13 @@ namespace ICSharpCode.Decompiler.IL @@ -26,13 +26,13 @@ namespace ICSharpCode.Decompiler.IL
{
partial class LockInstruction
{
public override void WriteTo(ITextOutput output)
public override void WriteTo(ITextOutput output, ILAstWritingOptions options)
{
output.Write("lock (");
OnExpression.WriteTo(output);
OnExpression.WriteTo(output, options);
output.WriteLine(") {");
output.Indent();
Body.WriteTo(output);
Body.WriteTo(output, options);
output.Unindent();
output.WriteLine();
output.Write("}");
@ -44,10 +44,10 @@ namespace ICSharpCode.Decompiler.IL @@ -44,10 +44,10 @@ namespace ICSharpCode.Decompiler.IL
public override void WriteTo(ITextOutput output, ILAstWritingOptions options)
{
output.Write("using (");
ResourceExpression.WriteTo(output);
ResourceExpression.WriteTo(output, options);
output.WriteLine(") {");
output.Indent();
Body.WriteTo(output);
Body.WriteTo(output, options);
output.Unindent();
output.WriteLine();
output.Write("}");

20
ICSharpCode.Decompiler/IL/Transforms/ILInlining.cs

@ -307,26 +307,6 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -307,26 +307,6 @@ namespace ICSharpCode.Decompiler.IL.Transforms
return FindLoadInNext(expr, v, expressionBeingMoved, out loadInst) == true;
}
/// <summary>
/// Gets whether arg can be un-inlined out of stmt.
/// </summary>
internal static bool CanUninline(ILInstruction arg, ILInstruction stmt)
{
Debug.Assert(arg.IsDescendantOf(stmt));
for (ILInstruction inst = arg; inst != stmt; inst = inst.Parent) {
if (!inst.SlotInfo.CanInlineInto)
return false;
// Check whether re-ordering with predecessors is valid:
int childIndex = inst.ChildIndex;
for (int i = 0; i < childIndex; ++i) {
ILInstruction predecessor = inst.Parent.Children[i];
if (!SemanticHelper.MayReorder(arg, predecessor))
return false;
}
}
return true;
}
/// <summary>
/// Finds the position to inline to.
/// </summary>

Loading…
Cancel
Save