rustc: catch non-trait methods before typeck.

Closes #3973.
What's going on here?