|
|
@ -743,12 +743,6 @@ namespace ICSharpCode.Decompiler.IL |
|
|
|
base.Disconnected(); |
|
|
|
base.Disconnected(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
internal override void CheckInvariant(ILPhase phase) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
base.CheckInvariant(phase); |
|
|
|
|
|
|
|
Debug.Assert(phase <= ILPhase.InILReader || this.IsDescendantOf(variable.Function)); |
|
|
|
|
|
|
|
Debug.Assert(phase <= ILPhase.InILReader || variable.Function.Variables[variable.IndexInFunction] == variable); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public static readonly SlotInfo InitSlot = new SlotInfo("Init", canInlineInto: true); |
|
|
|
public static readonly SlotInfo InitSlot = new SlotInfo("Init", canInlineInto: true); |
|
|
|
ILInstruction init; |
|
|
|
ILInstruction init; |
|
|
|
public ILInstruction Init { |
|
|
|
public ILInstruction Init { |
|
|
@ -851,6 +845,12 @@ namespace ICSharpCode.Decompiler.IL |
|
|
|
var o = other as PinnedRegion; |
|
|
|
var o = other as PinnedRegion; |
|
|
|
return o != null && variable == o.variable && this.init.PerformMatch(o.init, ref match) && this.body.PerformMatch(o.body, ref match); |
|
|
|
return o != null && variable == o.variable && this.init.PerformMatch(o.init, ref match) && this.body.PerformMatch(o.body, ref match); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
internal override void CheckInvariant(ILPhase phase) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
base.CheckInvariant(phase); |
|
|
|
|
|
|
|
Debug.Assert(phase <= ILPhase.InILReader || this.IsDescendantOf(variable.Function)); |
|
|
|
|
|
|
|
Debug.Assert(phase <= ILPhase.InILReader || variable.Function.Variables[variable.IndexInFunction] == variable); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
namespace ICSharpCode.Decompiler.IL |
|
|
|
namespace ICSharpCode.Decompiler.IL |
|
|
@ -1771,12 +1771,6 @@ namespace ICSharpCode.Decompiler.IL |
|
|
|
base.Disconnected(); |
|
|
|
base.Disconnected(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
internal override void CheckInvariant(ILPhase phase) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
base.CheckInvariant(phase); |
|
|
|
|
|
|
|
Debug.Assert(phase <= ILPhase.InILReader || this.IsDescendantOf(variable.Function)); |
|
|
|
|
|
|
|
Debug.Assert(phase <= ILPhase.InILReader || variable.Function.Variables[variable.IndexInFunction] == variable); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public static readonly SlotInfo ResourceExpressionSlot = new SlotInfo("ResourceExpression", canInlineInto: true); |
|
|
|
public static readonly SlotInfo ResourceExpressionSlot = new SlotInfo("ResourceExpression", canInlineInto: true); |
|
|
|
ILInstruction resourceExpression; |
|
|
|
ILInstruction resourceExpression; |
|
|
|
public ILInstruction ResourceExpression { |
|
|
|
public ILInstruction ResourceExpression { |
|
|
@ -1868,6 +1862,12 @@ namespace ICSharpCode.Decompiler.IL |
|
|
|
var o = other as UsingInstruction; |
|
|
|
var o = other as UsingInstruction; |
|
|
|
return o != null && variable == o.variable && this.resourceExpression.PerformMatch(o.resourceExpression, ref match) && this.body.PerformMatch(o.body, ref match); |
|
|
|
return o != null && variable == o.variable && this.resourceExpression.PerformMatch(o.resourceExpression, ref match) && this.body.PerformMatch(o.body, ref match); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
internal override void CheckInvariant(ILPhase phase) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
base.CheckInvariant(phase); |
|
|
|
|
|
|
|
Debug.Assert(phase <= ILPhase.InILReader || this.IsDescendantOf(variable.Function)); |
|
|
|
|
|
|
|
Debug.Assert(phase <= ILPhase.InILReader || variable.Function.Variables[variable.IndexInFunction] == variable); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
namespace ICSharpCode.Decompiler.IL |
|
|
|
namespace ICSharpCode.Decompiler.IL |
|
|
@ -2107,12 +2107,6 @@ namespace ICSharpCode.Decompiler.IL |
|
|
|
base.Disconnected(); |
|
|
|
base.Disconnected(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
internal override void CheckInvariant(ILPhase phase) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
base.CheckInvariant(phase); |
|
|
|
|
|
|
|
Debug.Assert(phase <= ILPhase.InILReader || this.IsDescendantOf(variable.Function)); |
|
|
|
|
|
|
|
Debug.Assert(phase <= ILPhase.InILReader || variable.Function.Variables[variable.IndexInFunction] == variable); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public override StackType ResultType { get { return variable.StackType; } } |
|
|
|
public override StackType ResultType { get { return variable.StackType; } } |
|
|
|
protected override InstructionFlags ComputeFlags() |
|
|
|
protected override InstructionFlags ComputeFlags() |
|
|
|
{ |
|
|
|
{ |
|
|
@ -2147,6 +2141,12 @@ namespace ICSharpCode.Decompiler.IL |
|
|
|
var o = other as LdLoc; |
|
|
|
var o = other as LdLoc; |
|
|
|
return o != null && variable == o.variable; |
|
|
|
return o != null && variable == o.variable; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
internal override void CheckInvariant(ILPhase phase) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
base.CheckInvariant(phase); |
|
|
|
|
|
|
|
Debug.Assert(phase <= ILPhase.InILReader || this.IsDescendantOf(variable.Function)); |
|
|
|
|
|
|
|
Debug.Assert(phase <= ILPhase.InILReader || variable.Function.Variables[variable.IndexInFunction] == variable); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
namespace ICSharpCode.Decompiler.IL |
|
|
|
namespace ICSharpCode.Decompiler.IL |
|
|
@ -2192,12 +2192,6 @@ namespace ICSharpCode.Decompiler.IL |
|
|
|
base.Disconnected(); |
|
|
|
base.Disconnected(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
internal override void CheckInvariant(ILPhase phase) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
base.CheckInvariant(phase); |
|
|
|
|
|
|
|
Debug.Assert(phase <= ILPhase.InILReader || this.IsDescendantOf(variable.Function)); |
|
|
|
|
|
|
|
Debug.Assert(phase <= ILPhase.InILReader || variable.Function.Variables[variable.IndexInFunction] == variable); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public override void WriteTo(ITextOutput output, ILAstWritingOptions options) |
|
|
|
public override void WriteTo(ITextOutput output, ILAstWritingOptions options) |
|
|
|
{ |
|
|
|
{ |
|
|
|
ILRange.WriteTo(output, options); |
|
|
|
ILRange.WriteTo(output, options); |
|
|
@ -2222,6 +2216,12 @@ namespace ICSharpCode.Decompiler.IL |
|
|
|
var o = other as LdLoca; |
|
|
|
var o = other as LdLoca; |
|
|
|
return o != null && variable == o.variable; |
|
|
|
return o != null && variable == o.variable; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
internal override void CheckInvariant(ILPhase phase) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
base.CheckInvariant(phase); |
|
|
|
|
|
|
|
Debug.Assert(phase <= ILPhase.InILReader || this.IsDescendantOf(variable.Function)); |
|
|
|
|
|
|
|
Debug.Assert(phase <= ILPhase.InILReader || variable.Function.Variables[variable.IndexInFunction] == variable); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
namespace ICSharpCode.Decompiler.IL |
|
|
|
namespace ICSharpCode.Decompiler.IL |
|
|
|