|
|
|
@ -380,6 +380,18 @@ namespace ICSharpCode.Decompiler.CSharp
@@ -380,6 +380,18 @@ namespace ICSharpCode.Decompiler.CSharp
|
|
|
|
|
type); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected internal override ConvertedExpression VisitUnboxAny(UnboxAny inst) |
|
|
|
|
{ |
|
|
|
|
var arg = ConvertArgument(inst.Argument); |
|
|
|
|
Expression expr = arg.Expression; |
|
|
|
|
if (arg.Type.IsReferenceType != true) { |
|
|
|
|
// ensure we treat the input as a reference type
|
|
|
|
|
expr = arg.ConvertTo(compilation.FindType(KnownTypeCode.Object), this); |
|
|
|
|
} |
|
|
|
|
expr = new CastExpression(ConvertType(inst.Type), expr); |
|
|
|
|
return new ConvertedExpression(expr, cecilMapper.GetType(inst.Type)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected override ConvertedExpression Default(ILInstruction inst) |
|
|
|
|
{ |
|
|
|
|
return ErrorExpression("OpCode not supported: " + inst.OpCode); |
|
|
|
|