}
private boolean canBePolyExpression(Expression expr) {
// when inferring compatibility against a right type, the check isPolyExpression
// must assume that expr occurs in s.t. like an assignment context:
ExpressionContext previousExpressionContext = expr.getExpressionContext();
if (previousExpressionContext == ExpressionContext.VANILLA_CONTEXT)
this.left.setExpressionContext(ExpressionContext.ASSIGNMENT_CONTEXT);
try {
return expr.isPolyExpression();
} finally {