Ensure that generic arguments don't end up in attribute paths.

This commit is contained in:
Jeffrey Seyfried
2017-08-17 11:44:28 -07:00
parent 469a6f9bd9
commit d54a6d9413
2 changed files with 29 additions and 1 deletions

View File

@@ -1776,7 +1776,13 @@ impl<'a> Parser<'a> {
pub fn parse_path_common(&mut self, style: PathStyle, enable_warning: bool)
-> PResult<'a, ast::Path> {
maybe_whole!(self, NtPath, |x| x);
maybe_whole!(self, NtPath, |path| {
if style == PathStyle::Mod &&
path.segments.iter().any(|segment| segment.parameters.is_some()) {
self.diagnostic().span_err(path.span, "unexpected generic arguments in path");
}
path
});
let lo = self.meta_var_span.unwrap_or(self.span);
let mut segments = Vec::new();