diff --git a/ICSharpCode.Decompiler/Ast/AstMethodBodyBuilder.cs b/ICSharpCode.Decompiler/Ast/AstMethodBodyBuilder.cs index 02a59453d..0f42df534 100644 --- a/ICSharpCode.Decompiler/Ast/AstMethodBodyBuilder.cs +++ b/ICSharpCode.Decompiler/Ast/AstMethodBodyBuilder.cs @@ -172,11 +172,20 @@ namespace ICSharpCode.Decompiler.Ast { AstNode node = TransformByteCode(expr); Expression astExpr = node as Expression; + + // get IL ranges - used in debugger List ilRanges = expr.GetILRanges(); + AstNode result; + if (astExpr != null) - return Convert(astExpr, expr.InferredType, expr.ExpectedType).WithAnnotation(ilRanges); + result = Convert(astExpr, expr.InferredType, expr.ExpectedType); else - return node.WithAnnotation(ilRanges); + result = node; + + if (result != null) + return result.WithAnnotation(ilRanges); + + return result; } AstNode TransformByteCode(ILExpression byteCode)