Skip to content

Commit

Permalink
derive: Replicate proc-macro-error's "dummy implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
tesaguri committed Sep 8, 2024
1 parent b3f429b commit 95414b5
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 6 deletions.
28 changes: 22 additions & 6 deletions oauth1-request-derive/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,10 +88,6 @@ fn expand_derive_oauth1_authorize(input: DeriveInput) -> TokenStream {

let meta = ContainerMeta::new(input.attrs, &mut cx);

if let Some(tokens) = cx.emit_errors() {
return tokens;
}

let use_oauth1_request = if let Some(krate) = meta.krate {
quote! {
use #krate as _oauth1_request;
Expand All @@ -117,11 +113,31 @@ fn expand_derive_oauth1_authorize(input: DeriveInput) -> TokenStream {
}
};

let body = MethodBody::new(&fields);

add_trait_bounds(&mut generics);
let (impl_generics, ty_generics, where_clause) = generics.split_for_impl();

if let Some(mut tokens) = cx.emit_errors() {
tokens.extend(quote! {
const _: () = {
#use_oauth1_request

impl #impl_generics _oauth1_request::Request for #name #ty_generics
#where_clause
{
fn serialize<S>(&self, serializer: S) -> S::Output
where
S: _oauth1_request::serializer::Serializer,
{
unimplemented!();
}
}
};
});
return tokens;
}

let body = MethodBody::new(&fields);

quote_spanned! {Span::mixed_site()=>
const _: () = {
#use_oauth1_request
Expand Down
9 changes: 9 additions & 0 deletions oauth1-request-derive/tests/ui/fallback_impl.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#[derive(oauth1_request::Request)]
struct Dummy {
#[oauth1(unknown)]
_field: (),
}

impl Dummy where Dummy: oauth1_request::Request {} // OK

fn main() {}
5 changes: 5 additions & 0 deletions oauth1-request-derive/tests/ui/fallback_impl.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
error: unknown attribute `unknown`
--> tests/ui/fallback_impl.rs:3:14
|
3 | #[oauth1(unknown)]
| ^^^^^^^

0 comments on commit 95414b5

Please sign in to comment.