blob: ee5224e2d821e7bced505ee43be7855f53829112 [file] [log] [blame]
// Don't suggest importing a function from a private dependency.
// Issues: #138191, #142676
// Avoid suggesting traits from std-private deps
//@ forbid-output: compiler_builtins
//@ forbid-output: object
// Check a custom trait to withstand changes in above crates
//@ aux-crate:public_dep=public-dep.rs
//@ compile-flags: -Zunstable-options
//@ forbid-output: private_dep
// By default, the `read` diagnostic suggests `std::os::unix::fs::FileExt::read_at`. Add
// something more likely to be recommended to make the diagnostic cross-platform.
trait DecoyRead {
fn read1(&self) {}
}
impl<T> DecoyRead for Vec<T> {}
struct VecReader(Vec<u8>);
impl std::io::Read for VecReader {
fn read(&mut self, buf: &mut [u8]) -> std::io::Result<usize> {
self.0.read(buf)
//~^ ERROR no method named `read` found for struct `Vec<u8>`
}
}
extern crate public_dep;
use public_dep::B;
fn main() {
let _ = u8::cast_from_lossy(9);
//~^ ERROR no function or associated item named `cast_from_lossy` found for type `u8`
let _ = B::foo();
//~^ ERROR no function or associated item named `foo` found for struct `B`
}