Ensure that the type parameters passed to methods outlive the call expression

Ensure that the type parameters passed to methods outlive the call expression.

Fixes #18899.

This is yet another case of forgotten to consistently enforce the constraints in every instance where they apply. Might be nice to try and refactor to make this whole thing more DRY, but for now here's a targeted fix.

r? @pcwalton 
This comment is out of date now that `self_expr` isn't `Option<_>`