48 lines
1.2 KiB
Rust
48 lines
1.2 KiB
Rust
//@ aux-build: rustc_confusables_across_crate.rs
|
|
|
|
#![feature(rustc_attrs)]
|
|
|
|
extern crate rustc_confusables_across_crate;
|
|
|
|
use rustc_confusables_across_crate::BTreeSet;
|
|
|
|
fn main() {
|
|
// Misspellings (similarly named methods) take precedence over `rustc_confusables`.
|
|
let x = BTreeSet {};
|
|
x.inser();
|
|
//~^ ERROR no method named
|
|
//~| HELP there is a method `insert` with a similar name
|
|
x.foo();
|
|
//~^ ERROR no method named
|
|
x.push();
|
|
//~^ ERROR no method named
|
|
//~| HELP you might have meant to use `insert`
|
|
x.test();
|
|
//~^ ERROR no method named
|
|
x.pulled();
|
|
//~^ ERROR no method named
|
|
//~| HELP you might have meant to use `pull`
|
|
}
|
|
|
|
struct Bar;
|
|
|
|
impl Bar {
|
|
#[rustc_confusables()]
|
|
//~^ ERROR expected at least one confusable name
|
|
fn baz() {}
|
|
|
|
#[rustc_confusables]
|
|
//~^ ERROR malformed `rustc_confusables` attribute input
|
|
//~| HELP must be of the form
|
|
fn qux() {}
|
|
|
|
#[rustc_confusables(invalid_meta_item)]
|
|
//~^ ERROR expected a quoted string literal
|
|
//~| HELP consider surrounding this with quotes
|
|
fn quux() {}
|
|
}
|
|
|
|
#[rustc_confusables("blah")]
|
|
//~^ ERROR attribute should be applied to an inherent method
|
|
fn not_inherent_impl_method() {}
|