Skip to content

Commit

Permalink
pprust: support multiline comments within lines
Browse files Browse the repository at this point in the history
This commit adds support to rustc_ast_pretty for multiline comments that
start and end within a line of source code.

Signed-off-by: David Wood <david@davidtw.co>
  • Loading branch information
davidtwco committed Jul 12, 2020
1 parent 346aec9 commit 083c2f6
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 2 deletions.
15 changes: 13 additions & 2 deletions src/librustc_ast_pretty/pprust.rs
Original file line number Diff line number Diff line change
Expand Up @@ -450,9 +450,20 @@ pub trait PrintState<'a>: std::ops::Deref<Target = pp::Printer> + std::ops::Dere
fn print_comment(&mut self, cmnt: &comments::Comment) {
match cmnt.style {
comments::Mixed => {
assert_eq!(cmnt.lines.len(), 1);
self.zerobreak();
self.word(cmnt.lines[0].clone());
if let Some((last, lines)) = cmnt.lines.split_last() {
self.ibox(0);

for line in lines {
self.word(line.clone());
self.hardbreak()
}

self.word(last.clone());
self.space();

self.end();
}
self.zerobreak()
}
comments::Isolated => {
Expand Down
34 changes: 34 additions & 0 deletions src/test/pretty/issue-73626.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
fn main(/*
---
*/) {
let x /* this is one line */ = 3;

let x /*
* this
* is
* multiple
* lines
*/ = 3;

let x = /*
* this
* is
* multiple
* lines
* after
* the
* =
*/ 3;

let x /*
* this
* is
* multiple
* lines
* including
* a
* blank
* line
*/ = 3;
}

0 comments on commit 083c2f6

Please sign in to comment.