The name for an item declaration conflicts with an external crate's name.

Erroneous code example:

extern crate core;

struct core;

fn main() {}

There are two possible solutions:

Solution #1: Rename the item.

extern crate core;

struct xyz;

Solution #2: Import the crate with a different name.

extern crate core as xyz;

struct abc;

See the Declaration Statements section of the reference for more information about what constitutes an Item declaration and what does not:

https://doc.rust-lang.org/reference.html#statements