Skip to content

Commit

Permalink
find_deprecation: deprecation attr may be ill-formed meta.
Browse files Browse the repository at this point in the history
  • Loading branch information
Centril committed Nov 15, 2019
1 parent 695fe96 commit 91aadf0
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 1 deletion.
5 changes: 4 additions & 1 deletion src/libsyntax/attr/builtin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -665,7 +665,10 @@ fn find_deprecation_generic<'a, I>(sess: &ParseSess,
break
}

let meta = attr.meta().unwrap();
let meta = match attr.meta() {
Some(meta) => meta,
None => continue,
};
depr = match &meta.kind {
MetaItemKind::Word => Some(Deprecation { since: None, note: None }),
MetaItemKind::NameValue(..) => {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// The original problem in #66340 was that `find_deprecation_generic`
// called `attr.meta().unwrap()` under the assumption that the attribute
// was a well-formed `MetaItem`.

fn main() {
foo()
}

#[deprecated(note = test)]
//~^ ERROR expected unsuffixed literal or identifier, found `test`
fn foo() {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
error: expected unsuffixed literal or identifier, found `test`
--> $DIR/issue-66340-deprecated-attr-non-meta-grammar.rs:9:21
|
LL | #[deprecated(note = test)]
| ^^^^

error: aborting due to previous error

0 comments on commit 91aadf0

Please sign in to comment.