summaryrefslogtreecommitdiffstats
path: root/tests/incremental/circular-dependencies.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/incremental/circular-dependencies.rs')
-rw-r--r--tests/incremental/circular-dependencies.rs37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/incremental/circular-dependencies.rs b/tests/incremental/circular-dependencies.rs
new file mode 100644
index 000000000..10673066a
--- /dev/null
+++ b/tests/incremental/circular-dependencies.rs
@@ -0,0 +1,37 @@
+// 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
+}