Some coroutine diagnostics need to point to the location of the first coroutine keyword in the function, like when diagnosing a return inside a coroutine. Previously we did this by storing each *valid* coroutine statement in a list and select the first one to use in diagnostics. However if every coroutine statement is invalid we would have no location to point to.
This patch fixes the storage of the first coroutine statement location, ensuring that it gets stored even when the resulting AST node would be invalid.
This patch also removes the CoroutineStmts list in FunctionScopeInfo because it was unused.