diff options
author | Martin Fischer <martin@push-f.com> | 2021-11-25 13:48:26 +0100 |
---|---|---|
committer | Martin Fischer <martin@push-f.com> | 2021-11-25 13:48:46 +0100 |
commit | 8046190e8f537407210fb87acbfe96d4084d58da (patch) | |
tree | 34c093627f5fd75db82cb8fb48402b82ace7d803 /src/trait_sig.rs | |
parent | 74a29b912aaa14dbeb7e5c51ae11c61e733ef645 (diff) |
support Self qualified as same trait
Diffstat (limited to 'src/trait_sig.rs')
-rw-r--r-- | src/trait_sig.rs | 40 |
1 files changed, 25 insertions, 15 deletions
diff --git a/src/trait_sig.rs b/src/trait_sig.rs index 3fb439f..5d8eddf 100644 --- a/src/trait_sig.rs +++ b/src/trait_sig.rs @@ -140,6 +140,8 @@ fn bounds_self_and_has_bound_sized(predicate: &WherePredicate) -> bool { #[cfg(test)] mod tests { + use std::collections::HashMap; + use quote::{format_ident, quote}; use syn::{TraitItemMethod, Type}; @@ -149,6 +151,14 @@ mod tests { transform::{TransformError, TypeConverter}, }; + fn test_converter() -> TypeConverter<'static> { + TypeConverter { + assoc_type_conversions: HashMap::new(), + collections: HashMap::new(), + trait_ident: format_ident!("test"), + } + } + #[test] fn ok_void() { let mut type1: TraitItemMethod = syn::parse2(quote! { @@ -157,7 +167,7 @@ mod tests { .unwrap(); assert!(matches!( - convert_trait_signature(&mut type1.sig, &Default::default()), + convert_trait_signature(&mut type1.sig, &test_converter()), Ok(SignatureChanges { return_type: TypeTransform::NoOp, .. @@ -172,7 +182,7 @@ mod tests { }) .unwrap(); - let mut type_converter = TypeConverter::default(); + let mut type_converter = test_converter(); let ident = format_ident!("A"); let dest_inner = Type::Verbatim(quote! {Example}); let dest = DestType::Into(&dest_inner); @@ -195,7 +205,7 @@ mod tests { .unwrap(); assert!(matches!( - convert_trait_signature(&mut type1.sig, &Default::default()), + convert_trait_signature(&mut type1.sig, &test_converter()), Err(( _, MethodError::Transform(TransformError::AssocTypeWithoutDestType) @@ -211,7 +221,7 @@ mod tests { .unwrap(); assert!(matches!( - convert_trait_signature(&mut type1.sig, &Default::default()), + convert_trait_signature(&mut type1.sig, &test_converter()), Err((_, MethodError::NonDispatchableMethod)) )); } @@ -224,7 +234,7 @@ mod tests { .unwrap(); assert!(matches!( - convert_trait_signature(&mut type1.sig, &Default::default()), + convert_trait_signature(&mut type1.sig, &test_converter()), Err((_, MethodError::NonDispatchableMethod)) )); } @@ -237,7 +247,7 @@ mod tests { .unwrap(); assert!(matches!( - convert_trait_signature(&mut type1.sig, &Default::default()), + convert_trait_signature(&mut type1.sig, &test_converter()), Err((_, MethodError::NonDispatchableMethod)) )); } @@ -250,7 +260,7 @@ mod tests { .unwrap(); assert!(matches!( - convert_trait_signature(&mut type1.sig, &Default::default()), + convert_trait_signature(&mut type1.sig, &test_converter()), Err((_, MethodError::NonDispatchableMethod)) )); } @@ -263,7 +273,7 @@ mod tests { .unwrap(); assert!(matches!( - convert_trait_signature(&mut type1.sig, &Default::default()), + convert_trait_signature(&mut type1.sig, &test_converter()), Err((_, MethodError::Transform(TransformError::UnsupportedType))) )); } @@ -276,7 +286,7 @@ mod tests { .unwrap(); assert!(matches!( - convert_trait_signature(&mut type1.sig, &Default::default()), + convert_trait_signature(&mut type1.sig, &test_converter()), Err((_, MethodError::Transform(TransformError::UnsupportedType))) )); } @@ -289,7 +299,7 @@ mod tests { .unwrap(); assert!(matches!( - convert_trait_signature(&mut type1.sig, &Default::default()), + convert_trait_signature(&mut type1.sig, &test_converter()), Err((_, MethodError::Transform(TransformError::UnsupportedType))) )); } @@ -302,7 +312,7 @@ mod tests { .unwrap(); assert!(matches!( - convert_trait_signature(&mut type1.sig, &Default::default()), + convert_trait_signature(&mut type1.sig, &test_converter()), Err((_, MethodError::Transform(TransformError::UnsupportedType))) )); } @@ -315,7 +325,7 @@ mod tests { .unwrap(); assert!(matches!( - convert_trait_signature(&mut type1.sig, &Default::default()), + convert_trait_signature(&mut type1.sig, &test_converter()), Err((_, MethodError::AssocTypeInInputs)) )); } @@ -328,7 +338,7 @@ mod tests { .unwrap(); assert!(matches!( - convert_trait_signature(&mut type1.sig, &Default::default()), + convert_trait_signature(&mut type1.sig, &test_converter()), Err((_, MethodError::AssocTypeInInputs)) )); } @@ -341,7 +351,7 @@ mod tests { .unwrap(); assert!(matches!( - convert_trait_signature(&mut type1.sig, &Default::default()), + convert_trait_signature(&mut type1.sig, &test_converter()), Err((_, MethodError::ImplTraitInInputs)) )); } @@ -354,7 +364,7 @@ mod tests { .unwrap(); assert!(matches!( - convert_trait_signature(&mut type1.sig, &Default::default()), + convert_trait_signature(&mut type1.sig, &test_converter()), Err((_, MethodError::Transform(TransformError::UnsupportedType))) )); } |