From 698847905629d22d8039b42fec79ebc26e0153f6 Mon Sep 17 00:00:00 2001 From: NathanW Date: Mon, 17 May 2021 13:38:27 -0600 Subject: [PATCH] add panic message when trying to derive TypeUuid on a generic --- crates/bevy_reflect/bevy_reflect_derive/src/type_uuid.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/crates/bevy_reflect/bevy_reflect_derive/src/type_uuid.rs b/crates/bevy_reflect/bevy_reflect_derive/src/type_uuid.rs index 587abaf055f60..fc8d8e6d762d9 100644 --- a/crates/bevy_reflect/bevy_reflect_derive/src/type_uuid.rs +++ b/crates/bevy_reflect/bevy_reflect_derive/src/type_uuid.rs @@ -1,6 +1,6 @@ extern crate proc_macro; -use quote::quote; +use quote::{quote, ToTokens}; use syn::{parse::*, *}; use uuid::Uuid; @@ -15,7 +15,11 @@ pub fn type_uuid_derive(input: proc_macro::TokenStream) -> proc_macro::TokenStre // Build the trait implementation let name = &ast.ident; - let (_impl_generics, _type_generics, _where_clause) = &ast.generics.split_for_impl(); + let (impl_generics, type_generics, _) = &ast.generics.split_for_impl(); + + if !impl_generics.to_token_stream().is_empty() || !type_generics.to_token_stream().is_empty() { + panic!("#[derive(TypeUuid)] is not supported for generics."); + } // TODO: panic if there are generics.