Understanding Rust Error E0670

Introduction to Rust Error E0670

Rust Error E0670 occurs when using the 'async fn' syntax in Rust 2015, which doesn't support it. To fix the issue, you need to switch to the Rust 2018 edition, which includes support for asynchronous functions ('async fn').

Error E0670 Example

Consider the following erroneous code example:

fn main() {
    async fn foo() {}

In this example, we've attempted to define an async function 'foo' in Rust 2015. However, this results in Error E0670.

Fixing Error E0670

To resolve Rust Error E0670, you need to switch to Rust 2018. You can do this by updating your 'Cargo.toml' file to include the 'edition' key under the '[package]' section, as shown below:

name = "my_project"
version = "0.1.0"
edition = "2018"

After updating the 'Cargo.toml' file, the 'async fn' syntax will be available, and you can use asynchronous functions in your Rust project without encountering Error E0670.


Rust Error E0670 arises when attempting to use the 'async fn' syntax in Rust 2015, which is unsupported. Switching to the Rust 2018 edition by updating your 'Cargo.toml' file will resolve the issue, allowing you to use asynchronous functions without encountering this error.