diff --git a/core/src/usage/lifetimes.rs b/core/src/usage/lifetimes.rs index 5f527a9..80aee6f 100644 --- a/core/src/usage/lifetimes.rs +++ b/core/src/usage/lifetimes.rs @@ -107,6 +107,9 @@ uses_lifetimes!(syn::LifetimeDef, lifetime, bounds); uses_lifetimes!(syn::ParenthesizedGenericArguments, inputs, output); uses_lifetimes!(syn::Path, segments); uses_lifetimes!(syn::PathSegment, arguments); +uses_lifetimes!(syn::PredicateEq, lhs_ty, rhs_ty); +uses_lifetimes!(syn::PredicateLifetime, lifetime, bounds); +uses_lifetimes!(syn::PredicateType, lifetimes, bounded_ty, bounds); uses_lifetimes!(syn::QSelf, ty); uses_lifetimes!(syn::TraitBound, path, lifetimes); uses_lifetimes!(syn::TypeArray, elem); @@ -214,6 +217,20 @@ impl UsesLifetimes for syn::PathArguments { } } +impl UsesLifetimes for syn::WherePredicate { + fn uses_lifetimes<'a>( + &self, + options: &Options, + lifetimes: &'a LifetimeSet, + ) -> LifetimeRefSet<'a> { + match *self { + syn::WherePredicate::Type(ref v) => v.uses_lifetimes(options, lifetimes), + syn::WherePredicate::Lifetime(ref v) => v.uses_lifetimes(options, lifetimes), + syn::WherePredicate::Eq(ref v) => v.uses_lifetimes(options, lifetimes), + } + } +} + impl UsesLifetimes for syn::GenericArgument { fn uses_lifetimes<'a>( &self, diff --git a/core/src/usage/type_params.rs b/core/src/usage/type_params.rs index d804f4a..9b46286 100644 --- a/core/src/usage/type_params.rs +++ b/core/src/usage/type_params.rs @@ -77,6 +77,8 @@ uses_type_params!(syn::DataUnion, fields); uses_type_params!(syn::Field, ty); uses_type_params!(syn::FieldsNamed, named); uses_type_params!(syn::ParenthesizedGenericArguments, inputs, output); +uses_type_params!(syn::PredicateEq, lhs_ty, rhs_ty); +uses_type_params!(syn::PredicateType, bounded_ty, bounds); uses_type_params!(syn::QSelf, ty); uses_type_params!(syn::TraitBound, path); uses_type_params!(syn::TypeArray, elem); @@ -190,6 +192,16 @@ impl UsesTypeParams for syn::PathArguments { } } +impl UsesTypeParams for syn::WherePredicate { + fn uses_type_params<'a>(&self, options: &Options, type_set: &'a IdentSet) -> IdentRefSet<'a> { + match *self { + syn::WherePredicate::Lifetime(_) => Default::default(), + syn::WherePredicate::Type(ref v) => v.uses_type_params(options, type_set), + syn::WherePredicate::Eq(ref v) => v.uses_type_params(options, type_set), + } + } +} + impl UsesTypeParams for syn::GenericArgument { fn uses_type_params<'a>(&self, options: &Options, type_set: &'a IdentSet) -> IdentRefSet<'a> { match *self {