//@ check-pass | |
//@ compile-flags: --crate-type=lib | |
#![feature(decl_macro)] | |
#![feature(lang_items)] | |
#![feature(no_core)] | |
#![feature(rustc_attrs)] | |
#![no_core] | |
#[rustc_builtin_macro] | |
macro derive() {} | |
#[rustc_builtin_macro(Default, attributes(default))] | |
macro Default() {} | |
mod default { | |
pub trait Default { | |
fn default() -> Self; | |
} | |
impl Default for u8 { | |
fn default() -> u8 { | |
0 | |
} | |
} | |
} | |
#[lang = "sized"] | |
trait Sized {} | |
#[derive(Default)] | |
enum S { | |
#[default] // OK | |
Foo, | |
} |