diff --git a/src/librustc/hir/print.rs b/src/librustc/hir/print.rs index 137f20d6c32b..9acf6d895e3e 100644 --- a/src/librustc/hir/print.rs +++ b/src/librustc/hir/print.rs @@ -72,7 +72,7 @@ impl PpAnn for hir::Crate { pub struct State<'a> { pub s: pp::Printer<'a>, cm: Option<&'a SourceMap>, - comments: Option>, + comments: Vec, cur_cmnt: usize, ann: &'a (dyn PpAnn + 'a), } @@ -82,7 +82,7 @@ impl<'a> PrintState<'a> for State<'a> { &mut self.s } - fn comments(&mut self) -> &mut Option> { + fn comments(&mut self) -> &mut Vec { &mut self.comments } @@ -134,7 +134,7 @@ impl<'a> State<'a> { State { s: pp::mk_printer(out), cm: Some(cm), - comments, + comments: comments.unwrap_or_default(), cur_cmnt: 0, ann, } @@ -149,7 +149,7 @@ pub fn to_string(ann: &dyn PpAnn, f: F) -> String let mut printer = State { s: pp::mk_printer(&mut wr), cm: None, - comments: None, + comments: Vec::new(), cur_cmnt: 0, ann, }; diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 4c86300b8056..460c44347128 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -46,7 +46,7 @@ impl PpAnn for NoAnn {} pub struct State<'a> { pub s: pp::Printer<'a>, cm: Option<&'a SourceMap>, - comments: Option>, + comments: Vec, cur_cmnt: usize, ann: &'a (dyn PpAnn+'a), is_expanded: bool @@ -110,7 +110,7 @@ impl<'a> State<'a> { State { s: pp::mk_printer(out), cm: Some(cm), - comments, + comments: comments.unwrap_or_default(), cur_cmnt: 0, ann, is_expanded, @@ -126,7 +126,7 @@ pub fn to_string(f: F) -> String where let mut printer = State { s: pp::mk_printer(&mut wr), cm: None, - comments: None, + comments: Vec::new(), cur_cmnt: 0, ann: &NoAnn, is_expanded: false @@ -423,7 +423,7 @@ fn visibility_qualified(vis: &ast::Visibility, s: &str) -> String { pub trait PrintState<'a> { fn writer(&mut self) -> &mut pp::Printer<'a>; - fn comments(&mut self) -> &mut Option>; + fn comments(&mut self) -> &mut Vec; fn cur_cmnt(&mut self) -> &mut usize; fn word_space>>(&mut self, w: S) { @@ -550,15 +550,11 @@ pub trait PrintState<'a> { fn next_comment(&mut self) -> Option { let cur_cmnt = *self.cur_cmnt(); - match *self.comments() { - Some(ref cmnts) => { - if cur_cmnt < cmnts.len() { - Some(cmnts[cur_cmnt].clone()) - } else { - None - } - } - _ => None + let cmnts = &*self.comments(); + if cur_cmnt < cmnts.len() { + Some(cmnts[cur_cmnt].clone()) + } else { + None } } @@ -756,7 +752,7 @@ impl<'a> PrintState<'a> for State<'a> { &mut self.s } - fn comments(&mut self) -> &mut Option> { + fn comments(&mut self) -> &mut Vec { &mut self.comments }