Skip to content

Commit dc96467

Browse files
committed
Fix ICE on malformed plugin attributes
1 parent decbb83 commit dc96467

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/libsyntax/ext/expand.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -484,13 +484,15 @@ impl<'a, 'b> MacroExpander<'a, 'b> {
484484

485485
match *ext {
486486
MultiModifier(ref mac) => {
487-
let meta = attr.parse_meta(self.cx.parse_sess).ok()?;
487+
let meta = attr.parse_meta(self.cx.parse_sess)
488+
.map_err(|mut e| { e.emit(); }).ok()?;
488489
let item = mac.expand(self.cx, attr.span, &meta, item);
489490
Some(kind.expect_from_annotatables(item))
490491
}
491492
MultiDecorator(ref mac) => {
492493
let mut items = Vec::new();
493-
let meta = attr.parse_meta(self.cx.parse_sess).ok()?;
494+
let meta = attr.parse_meta(self.cx.parse_sess)
495+
.expect("derive meta should already have been parsed");
494496
mac.expand(self.cx, attr.span, &meta, &item, &mut |item| items.push(item));
495497
items.push(item);
496498
Some(kind.expect_from_annotatables(items))

0 commit comments

Comments
 (0)