title: How does Rust implement await keyword?
body: <p>As far as I know, Rust's <code>await</code> called on a future seems to call the poll method of the future. However, the poll method needs a context parameter, if I manually call the poll method on a future, I need an executor to produce a context so a waker can be produced to call wake() on. But how the compiler knows how to get a context?</p>