-
Notifications
You must be signed in to change notification settings - Fork 13k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add note for mismatched types with circular dependencies
- Loading branch information
Lukas Markeffsky
committed
Mar 5, 2023
1 parent
7650bd1
commit 97915ab
Showing
3 changed files
with
61 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
// edition: 2021 | ||
// compile-flags: --crate-type lib --extern circular_dependencies={{build-base}}/circular-dependencies/libcircular_dependencies.rmeta --emit dep-info,metadata | ||
|
||
use circular_dependencies::Foo; | ||
|
||
pub fn consume_foo(_: Foo) {} | ||
|
||
pub fn produce_foo() -> Foo { | ||
Foo | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
} |