As far as I know, Rust's await 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?