rust/src/test/ui/hygiene/assoc_item_ctxt.rs
2018-12-25 21:08:33 -07:00

43 lines
735 B
Rust

// ignore-pretty pretty-printing is unhygienic
#![feature(decl_macro)]
#![allow(unused)]
mod ok {
macro mac_trait_item($method: ident) {
fn $method();
}
trait Tr {
mac_trait_item!(method);
}
macro mac_trait_impl() {
impl Tr for u8 { // OK
fn method() {} // OK
}
}
mac_trait_impl!();
}
mod error {
macro mac_trait_item() {
fn method();
}
trait Tr {
mac_trait_item!();
}
macro mac_trait_impl() {
impl Tr for u8 { //~ ERROR not all trait items implemented, missing: `method`
fn method() {} //~ ERROR method `method` is not a member of trait `Tr`
}
}
mac_trait_impl!();
}
fn main() {}