I disagree. If the codegen / optimizer is trying to preserve the rule that futures don’t have side effects until polled, then it seems fine to assume that the future being wrapped also follows that rule.

So if I call a foo() that violates the rule, it seems odd to complain that the generated bar() also violates it.

[deleted]