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