// ignore-tidy-linelength //@ revisions: cpass1 cfail2 //@ edition: 2021 //@ [cpass1] compile-flags: --crate-type lib --emit dep-info,metadata //@ [cfail2] aux-build: circular-dependencies-aux.rs //@ [cfail2] compile-flags: --test --extern aux={{build-base}}/circular-dependencies/auxiliary/libcircular_dependencies_aux.rmeta -L dependency={{build-base}}/circular-dependencies pub struct Foo; //[cfail2]~^ NOTE `Foo` is defined in the current crate //[cfail2]~| NOTE `Foo` is defined in the current crate //[cfail2]~| NOTE `circular_dependencies::Foo` is defined in crate `circular_dependencies` //[cfail2]~| NOTE `circular_dependencies::Foo` is defined in crate `circular_dependencies` pub fn consume_foo(_: Foo) {} //[cfail2]~^ NOTE function defined here pub fn produce_foo() -> Foo { Foo } #[test] fn test() { aux::consume_foo(produce_foo()); //[cfail2]~^ ERROR mismatched types [E0308] //[cfail2]~| NOTE expected `circular_dependencies::Foo`, found `Foo` //[cfail2]~| NOTE arguments to this function are incorrect //[cfail2]~| NOTE `Foo` and `circular_dependencies::Foo` have similar names, but are actually distinct types //[cfail2]~| NOTE the crate `circular_dependencies` is compiled multiple times, possibly with different configurations //[cfail2]~| NOTE function defined here consume_foo(aux::produce_foo()); //[cfail2]~^ ERROR mismatched types [E0308] //[cfail2]~| NOTE expected `Foo`, found `circular_dependencies::Foo` //[cfail2]~| NOTE arguments to this function are incorrect //[cfail2]~| NOTE `circular_dependencies::Foo` and `Foo` have similar names, but are actually distinct types //[cfail2]~| NOTE the crate `circular_dependencies` is compiled multiple times, possibly with different configurations }