Rollup merge of #121304 - compiler-errors:ext, r=nnethercote

Add docs for extension proc-macro

r? nnethercote
This commit is contained in:
Dylan DPC 2024-02-21 08:55:57 +00:00 committed by GitHub
commit 94e459f1a9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -41,6 +41,20 @@ pub fn symbols(input: TokenStream) -> TokenStream {
symbols::symbols(input.into()).into()
}
/// Derive an extension trait for a given impl block. The trait name
/// goes into the parenthesized args of the macro, for greppability.
/// For example:
/// ```
/// use rustc_macros::extension;
/// #[extension(pub trait Foo)]
/// impl i32 { fn hello() {} }
/// ```
///
/// expands to:
/// ```
/// pub trait Foo { fn hello(); }
/// impl Foo for i32 { fn hello() {} }
/// ```
#[proc_macro_attribute]
pub fn extension(attr: TokenStream, input: TokenStream) -> TokenStream {
extension::extension(attr, input)