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
No known key found for this signature in database
GPG Key ID: F9BA143B95FF6D82
2 changed files with 19 additions and 0 deletions

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

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>>();
}
//////////////////////////////////////////////////////////////////////////