diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:18:58 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:18:58 +0000 |
commit | a4b7ed7a42c716ab9f05e351f003d589124fd55d (patch) | |
tree | b620cd3f223850b28716e474e80c58059dca5dd4 /tests/ui/type/type-mismatch-same-crate-name.rs | |
parent | Adding upstream version 1.67.1+dfsg1. (diff) | |
download | rustc-a4b7ed7a42c716ab9f05e351f003d589124fd55d.tar.xz rustc-a4b7ed7a42c716ab9f05e351f003d589124fd55d.zip |
Adding upstream version 1.68.2+dfsg1.upstream/1.68.2+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ui/type/type-mismatch-same-crate-name.rs')
-rw-r--r-- | tests/ui/type/type-mismatch-same-crate-name.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/ui/type/type-mismatch-same-crate-name.rs b/tests/ui/type/type-mismatch-same-crate-name.rs new file mode 100644 index 000000000..c9cdc874c --- /dev/null +++ b/tests/ui/type/type-mismatch-same-crate-name.rs @@ -0,0 +1,27 @@ +// aux-build:crate_a1.rs +// aux-build:crate_a2.rs + +// This tests the extra note reported when a type error deals with +// seemingly identical types. +// The main use case of this error is when there are two crates +// (generally different versions of the same crate) with the same name +// causing a type mismatch. Here, we simulate that error using block-scoped +// aliased `extern crate` declarations. + +fn main() { + let foo2 = {extern crate crate_a2 as a; a::Foo}; + let bar2 = {extern crate crate_a2 as a; a::bar()}; + { + extern crate crate_a1 as a; + a::try_foo(foo2); + //~^ ERROR mismatched types + //~| perhaps two different versions of crate `crate_a1` + //~| expected struct `main::a::Foo` + a::try_bar(bar2); + //~^ ERROR mismatched types + //~| perhaps two different versions of crate `crate_a1` + //~| expected trait `main::a::Bar` + //~| expected struct `Box<(dyn main::a::Bar + 'static)>` + //~| found struct `Box<dyn main::a::Bar>` + } +} |