diff --git a/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs b/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs index 7a0b43c6a..0380dbe91 100644 --- a/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs +++ b/ICSharpCode.Decompiler/CSharp/ExpressionBuilder.cs @@ -454,6 +454,15 @@ namespace ICSharpCode.Decompiler.CSharp .WithRR(new ConversionResolveResult(inst.Type, arg.ResolveResult, Conversion.UnboxingConversion)); } + protected internal override TranslatedExpression VisitBox(Box inst) + { + var obj = compilation.FindType(KnownTypeCode.Object); + var arg = Translate(inst.Argument).ConvertTo(inst.Type, this); + return new CastExpression(ConvertType(obj), arg.Expression) + .WithILInstruction(inst) + .WithRR(new ConversionResolveResult(obj, arg.ResolveResult, Conversion.BoxingConversion)); + } + protected override TranslatedExpression Default(ILInstruction inst) { return ErrorExpression("OpCode not supported: " + inst.OpCode);