# Error code E0391

A type dependency cycle has been encountered.

Erroneous code example:

    #![allow(unused)]
    fn main() {
    trait FirstTrait : SecondTrait {

    }

    trait SecondTrait : FirstTrait {

    }
    }

The previous example contains a circular dependency between two traits: `FirstTrait` depends on `SecondTrait` which itself depends on `FirstTrait`.

See https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information.