Rollup merge of #74272 - davidtwco:issue-73626-multiline-mixed-comments, r=Mark-Simulacrum

pprust: support multiline comments within lines

Fixes #73626.

This PR adds support to `rustc_ast_pretty` for multiline comments that start and end within a line of source code.

Fun fact: [the commit which added this assert](d12ea39896) was from 2011!
d12ea39896/src/comp/pretty/pprust.rs (L1146-L1150)
This commit is contained in:
Manish Goregaokar 2020-07-14 13:19:32 -07:00 committed by GitHub
commit 92e90f943c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 47 additions and 2 deletions

View File

@ -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 => {

View File

@ -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;
}