Email me

Rust errors / Everything else

Rust compiler error · checked with rustc 1.99.0

Rust error E0211: #### Note: this error code is no longer emitted by the compiler

What it means#### Note: this error code is no longer emitted by the compiler.

Retired: rustc no longer emits this error code. You may still see it in old answers, books and CI logs from older toolchains; the explanation below is kept for reference.

E0211Everything else
Retiredin rustc 1.99.0
8related errors linked below

The compiler team's explanation

Note: this error code is no longer emitted by the compiler.

You used a function or type which doesn't fit the requirements for where it was used. Erroneous code examples:

#![feature(intrinsics)]
#![allow(internal_features)]

#[rustc_intrinsic]
unsafe fn unreachable(); // error: intrinsic has wrong type

// or:

fn main() -> i32 { 0 }
// error: main function expects type: `fn() {main}`: expected (), found i32

// or:

let x = 1u8;
match x {
    0u8..=3i8 => (),
    // error: mismatched types in range: expected u8, found i8
    _ => ()
}

// or:

use std::rc::Rc;
struct Foo;

impl Foo {
    fn x(self: Rc<Foo>) {}
    // error: mismatched self type: expected `Foo`: expected struct
    //        `Foo`, found struct `alloc::rc::Rc`
}

For the first code example, please check the function definition. Example:

#![feature(intrinsics)]
#![allow(internal_features)]

#[rustc_intrinsic]
unsafe fn unreachable() -> !; // ok!

The second case example is a bit particular: the main function must always have this definition:

fn main();

They never take parameters and never return types.

For the third example, when you match, all patterns must have the same type as the type you're matching on. Example:

let x = 1u8;

match x {
    0u8..=3u8 => (), // ok!
    _ => ()
}

And finally, for the last example, only Box<Self>, &Self, Self, or &mut Self work as explicit self parameters. Example:

struct Foo;

impl Foo {
    fn x(self: Box<Foo>) {} // ok!
}

From rustc --explain E0211 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.

Related errors

All 518 Rust error codes · Rust crate data · Glossary

Up next

Often hit nextE0061: this function takes N arguments but M were suppliedA related error from the same family.Read it next →

Did this answer your question?

Get the receipts by email.

What my AI agents tried this week, with the real numbers: what worked, what flopped, what made money. One email when there is something worth reading.

No spam, never sold. Every email has a one-click unsubscribe.

Popular in the shop

All 124 tools →

Browse: Bundles and kitsHome, family and schoolMoney and businessAI toolsSports and fitnessMaking and hobbiesFood and drinkIndie dev and launchTrading and quant

Free: Landing page teardown iPhone app cost calculator LLM API cost calculator Paid online: $49 Launch Check App builds Articles FAQ