-
Notifications
You must be signed in to change notification settings - Fork 13k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
On trait bound mismatch, detect multiple crate versions in dep tree #124944
Merged
Merged
Changes from all commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
db6c05f
Maintain highlighting in `note` and `help` even when they have a span
estebank 4868680
On trait bound mismatch, detect multiple crate versions in dep tree
estebank ba32673
Add test for mixing types from two incompatible crate versions
estebank d8b0771
Add `help` about using `cargo tree`
estebank edd4162
fix rebase
estebank f4bad4f
Change test to be only-linux and ignore-wasm32
estebank 5e26c8d
Move test to be make instead of ui
estebank 034b73b
fix test
estebank File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
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,6 @@ | ||
#![crate_name = "dependency"] | ||
#![crate_type = "rlib"] | ||
pub struct Type; | ||
pub trait Trait {} | ||
impl Trait for Type {} | ||
pub fn do_something<X: Trait>(_: X) {} |
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,6 @@ | ||
#![crate_name = "dependency"] | ||
#![crate_type = "rlib"] | ||
pub struct Type(pub i32); | ||
pub trait Trait {} | ||
impl Trait for Type {} | ||
pub fn do_something<X: Trait>(_: X) {} |
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,8 @@ | ||
extern crate dep_2_reexport; | ||
extern crate dependency; | ||
use dep_2_reexport::do_something; | ||
use dependency::Type; | ||
|
||
fn main() { | ||
do_something(Type); | ||
} |
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,27 @@ | ||
//@ only-linux | ||
//@ ignore-wasm32 | ||
//@ ignore-wasm64 | ||
|
||
use run_make_support::rfs::copy; | ||
use run_make_support::{assert_contains, rust_lib_name, rustc}; | ||
|
||
fn main() { | ||
rustc().input("multiple-dep-versions-1.rs").run(); | ||
rustc().input("multiple-dep-versions-2.rs").extra_filename("2").metadata("2").run(); | ||
|
||
let out = rustc() | ||
.input("multiple-dep-versions.rs") | ||
.extern_("dependency", rust_lib_name("dependency")) | ||
.extern_("dep_2_reexport", rust_lib_name("dependency2")) | ||
.run_fail() | ||
.assert_stderr_contains( | ||
"you have multiple different versions of crate `dependency` in your dependency graph", | ||
) | ||
.assert_stderr_contains( | ||
"two types coming from two different versions of the same crate are different types \ | ||
even if they look the same", | ||
) | ||
.assert_stderr_contains("this type doesn't implement the required trait") | ||
.assert_stderr_contains("this type implements the required trait") | ||
.assert_stderr_contains("this is the required trait"); | ||
} |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Question: does this only fail on wasm32, or does it also fail on wasm 64 targets? We could run
test-various
andx86_64-gnu-llvm-17
try jobs to double check.