diff --git a/Cargo.toml b/Cargo.toml index a53e93b..8af0b3b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ proc-macro = true [dependencies] proc-macro2 = "1.0" quote = "1.0" -syn = { version = "1.0.61", features = ["full", "visit-mut", "extra-traits"] } +syn = { version = "1.0.61", features = ["full", "visit-mut"] } [dev-dependencies] futures = "0.3" diff --git a/src/expand.rs b/src/expand.rs index 33ed451..42e2cd8 100644 --- a/src/expand.rs +++ b/src/expand.rs @@ -396,7 +396,12 @@ fn positional_arg(i: usize, pat: &Pat) -> Ident { fn has_bound(supertraits: &Supertraits, marker: &Ident) -> bool { for bound in supertraits { if let TypeParamBound::Trait(bound) = bound { - if bound.path.is_ident(marker) || bound.path == parse_quote!(::core::marker::#marker) { + if bound.path.is_ident(marker) + || bound.path.segments.len() == 3 + && bound.path.segments[0].ident == "core" + && bound.path.segments[1].ident == "marker" + && bound.path.segments[2].ident == *marker + { return true; } }