Email me

Rust errors / Types and traits

Rust compiler error · checked with rustc 1.99.0

Rust error E0390: cannot define inherent `impl` for primitive types

What it meansA method or constant was implemented on a primitive type.

What rustc prints

error[E0390]: cannot define inherent `impl` for primitive types
 --> main.rs:5:1
  |
5 | impl *mut Foo {}
  | ^^^^^^^^^^^^^
  |
  = help: consider using an extension trait instead

Real output of rustc 1.99.0 compiling the official example below (2021 edition). Your names and line numbers will differ; the first line is the part to match.

E0390Types and traits
Activein rustc 1.99.0
8related errors linked below

The compiler team's explanation

A method or constant was implemented on a primitive type.

Erroneous code example:

struct Foo {
    x: i32
}

impl *mut Foo {}
// error: cannot define inherent `impl` for primitive types

This isn't allowed, but using a trait to implement a method or constant is a good solution. Example:

struct Foo {
    x: i32
}

trait Bar {
    fn bar();
}

impl Bar for *mut Foo {
    fn bar() {} // ok!
}

Instead of defining an inherent implementation on a reference, you could also move the reference inside the implementation:

struct Foo;

impl &Foo { // error: no nominal type found for inherent implementation
    fn bar(self, other: Self) {}
}

becomes

struct Foo;

impl Foo {
    fn bar(&self, other: &Self) {}
}

From rustc --explain E0390 (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 nextE0308: mismatched typesA 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