diff --git a/ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs b/ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs
index 3a5e32744..35582ec1d 100644
--- a/ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs
+++ b/ICSharpCode.Decompiler/CSharp/TranslatedExpression.cs
@@ -163,7 +163,7 @@ namespace ICSharpCode.Decompiler.CSharp
}
throw new ArgumentException("descendant must be a descendant of the current node");
}
-
+
///
/// Adds casts (if necessary) to convert this expression to the specified target type.
///
@@ -176,6 +176,17 @@ namespace ICSharpCode.Decompiler.CSharp
///
/// From the caller's perspective, IntPtr/UIntPtr behave like normal C# integers except that they have native int size.
/// All the special cases necessary to make IntPtr/UIntPtr behave sanely are handled internally in ConvertTo().
+ ///
+ /// Post-condition:
+ /// The "expected evaluation result" is the value computed by this.Expression,
+ /// converted to targetType via an IL conv instruction.
+ ///
+ /// ConvertTo(targetType, allowImplicitConversion=false).Type must be equal to targetType (modulo identity conversions).
+ /// The value computed by the converted expression must match the "expected evaluation result".
+ ///
+ /// ConvertTo(targetType, allowImplicitConversion=true) must produce an expression that,
+ /// when evaluated in a context where it will be implicitly converted to targetType,
+ /// evaluates to the "expected evaluation result".
///
public TranslatedExpression ConvertTo(IType targetType, ExpressionBuilder expressionBuilder, bool checkForOverflow = false, bool allowImplicitConversion = false)
{