Fix bounds for macro named the same as a type parameter

This commit is contained in:
David Tolnay
2017-11-05 12:18:39 -08:00
parent ab68132b1f
commit b8a40551a2
2 changed files with 19 additions and 0 deletions
+8
View File
@@ -116,6 +116,14 @@ where
}
visit::walk_path(self, path);
}
// Type parameter should not be considered used by a macro path.
//
// struct TypeMacro<T> {
// mac: T!(),
// marker: PhantomData<T>,
// }
fn visit_mac(&mut self, _mac: &syn::Mac) {}
}
let all_ty_params: HashSet<_> = generics
+11
View File
@@ -519,6 +519,17 @@ fn test_gen() {
other: isize,
}
assert::<SkippedStaticStr>();
macro_rules! T {
() => { () }
}
#[derive(Serialize, Deserialize)]
struct TypeMacro<T> {
mac: T!(),
marker: PhantomData<T>,
}
assert::<TypeMacro<X>>();
}
//////////////////////////////////////////////////////////////////////////