Lines Matching refs:syn
5 use syn::punctuated::{Pair, Punctuated};
6 use syn::Token;
11 pub fn without_defaults(generics: &syn::Generics) -> syn::Generics {
12 syn::Generics {
17 syn::GenericParam::Type(param) => syn::GenericParam::Type(syn::TypeParam {
30 generics: &syn::Generics,
31 predicates: &[syn::WherePredicate],
32 ) -> syn::Generics {
43 generics: &syn::Generics,
44 from_field: fn(&attr::Field) -> Option<&[syn::WherePredicate]>,
45 ) -> syn::Generics {
50 .flat_map(<[syn::WherePredicate]>::to_vec);
59 generics: &syn::Generics,
60 from_variant: fn(&attr::Variant) -> Option<&[syn::WherePredicate]>,
61 ) -> syn::Generics {
72 .flat_map(<[syn::WherePredicate]>::to_vec);
93 generics: &syn::Generics,
95 bound: &syn::Path,
96 ) -> syn::Generics {
100 all_type_params: HashSet<syn::Ident>,
105 relevant_type_params: HashSet<syn::Ident>,
109 associated_type_usage: Vec<&'ast syn::TypePath>,
113 fn visit_field(&mut self, field: &'ast syn::Field) {
114 if let syn::Type::Path(ty) = ungroup(&field.ty) {
124 fn visit_path(&mut self, path: &'ast syn::Path) {
145 fn visit_type(&mut self, ty: &'ast syn::Type) {
148 syn::Type::Array(ty) => self.visit_type(&ty.elem),
149 syn::Type::BareFn(ty) => {
155 syn::Type::Group(ty) => self.visit_type(&ty.elem),
156 syn::Type::ImplTrait(ty) => {
161 syn::Type::Macro(ty) => self.visit_macro(&ty.mac),
162 syn::Type::Paren(ty) => self.visit_type(&ty.elem),
163 syn::Type::Path(ty) => {
169 syn::Type::Ptr(ty) => self.visit_type(&ty.elem),
170 syn::Type::Reference(ty) => self.visit_type(&ty.elem),
171 syn::Type::Slice(ty) => self.visit_type(&ty.elem),
172 syn::Type::TraitObject(ty) => {
177 syn::Type::Tuple(ty) => {
183 syn::Type::Infer(_) | syn::Type::Never(_) | syn::Type::Verbatim(_) => {}
189 fn visit_path_segment(&mut self, segment: &'ast syn::PathSegment) {
193 fn visit_path_arguments(&mut self, arguments: &'ast syn::PathArguments) {
195 syn::PathArguments::None => {}
196 syn::PathArguments::AngleBracketed(arguments) => {
200 syn::GenericArgument::Type(arg) => self.visit_type(arg),
201 syn::GenericArgument::AssocType(arg) => self.visit_type(&arg.ty),
202 syn::GenericArgument::Lifetime(_)
203 | syn::GenericArgument::Const(_)
204 | syn::GenericArgument::AssocConst(_)
205 | syn::GenericArgument::Constraint(_) => {}
210 syn::PathArguments::Parenthesized(arguments) => {
219 fn visit_return_type(&mut self, return_type: &'ast syn::ReturnType) {
221 syn::ReturnType::Default => {}
222 syn::ReturnType::Type(_, output) => self.visit_type(output),
226 fn visit_type_param_bound(&mut self, bound: &'ast syn::TypeParamBound) {
229 syn::TypeParamBound::Trait(bound) => self.visit_path(&bound.path),
230 syn::TypeParamBound::Lifetime(_) | syn::TypeParamBound::Verbatim(_) => {}
241 fn visit_macro(&mut self, _mac: &'ast syn::Macro) {}
279 .map(|id| syn::TypePath {
285 syn::WherePredicate::Type(syn::PredicateType {
288 bounded_ty: syn::Type::Path(bounded_ty),
291 bounds: vec![syn::TypeParamBound::Trait(syn::TraitBound {
293 modifier: syn::TraitBoundModifier::None,
312 generics: &syn::Generics,
313 bound: &syn::Path,
314 ) -> syn::Generics {
319 .push(syn::WherePredicate::Type(syn::PredicateType {
325 bounds: vec![syn::TypeParamBound::Trait(syn::TraitBound {
327 modifier: syn::TraitBoundModifier::None,
337 pub fn with_lifetime_bound(generics: &syn::Generics, lifetime: &str) -> syn::Generics {
338 let bound = syn::Lifetime::new(lifetime, Span::call_site());
339 let def = syn::LifetimeParam {
346 let params = Some(syn::GenericParam::Lifetime(def))
350 syn::GenericParam::Lifetime(param) => {
353 syn::GenericParam::Type(param) => {
356 .push(syn::TypeParamBound::Lifetime(bound.clone()));
358 syn::GenericParam::Const(_) => {}
364 syn::Generics {
370 fn type_of_item(cont: &Container) -> syn::Type {
371 syn::Type::Path(syn::TypePath {
373 path: syn::Path {
375 segments: vec![syn::PathSegment {
377 arguments: syn::PathArguments::AngleBracketed(
378 syn::AngleBracketedGenericArguments {
386 syn::GenericParam::Type(param) => {
387 syn::GenericArgument::Type(syn::Type::Path(syn::TypePath {
392 syn::GenericParam::Lifetime(param) => {
393 syn::GenericArgument::Lifetime(param.lifetime.clone())
395 syn::GenericParam::Const(_) => {