rust/tests/ui/attributes/rustc_confusables.rs

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() {}