Skip to content

Commit cfcdf08

Browse files
authored
Rollup merge of #41173 - GuillaumeGomez:fix-rustdoc-code-block-parsing, r=steveklabnik
Fix block code headers parsing Fixes #41167. r? @rust-lang/docs
2 parents 4fa2226 + 143f7be commit cfcdf08

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

src/librustdoc/html/markdown.rs

+17-9
Original file line numberDiff line numberDiff line change
@@ -469,22 +469,28 @@ impl LangString {
469469
);
470470

471471
for token in tokens {
472-
match token {
472+
match token.trim() {
473473
"" => {},
474-
"should_panic" => { data.should_panic = true; seen_rust_tags = true; },
475-
"no_run" => { data.no_run = true; seen_rust_tags = true; },
476-
"ignore" => { data.ignore = true; seen_rust_tags = true; },
477-
"rust" => { data.rust = true; seen_rust_tags = true; },
478-
"test_harness" => { data.test_harness = true; seen_rust_tags = true; },
474+
"should_panic" => {
475+
data.should_panic = true;
476+
seen_rust_tags = seen_other_tags == false;
477+
}
478+
"no_run" => { data.no_run = true; seen_rust_tags = !seen_other_tags; }
479+
"ignore" => { data.ignore = true; seen_rust_tags = !seen_other_tags; }
480+
"rust" => { data.rust = true; seen_rust_tags = true; }
481+
"test_harness" => {
482+
data.test_harness = true;
483+
seen_rust_tags = !seen_other_tags || seen_rust_tags;
484+
}
479485
"compile_fail" if allow_compile_fail => {
480486
data.compile_fail = true;
481-
seen_rust_tags = true;
487+
seen_rust_tags = !seen_other_tags || seen_rust_tags;
482488
data.no_run = true;
483489
}
484490
x if allow_error_code_check && x.starts_with("E") && x.len() == 5 => {
485491
if let Ok(_) = x[1..].parse::<u32>() {
486492
data.error_codes.push(x.to_owned());
487-
seen_rust_tags = true;
493+
seen_rust_tags = !seen_other_tags || seen_rust_tags;
488494
} else {
489495
seen_other_tags = true;
490496
}
@@ -670,9 +676,11 @@ mod tests {
670676
t("test_harness", false, false, false, true, true, false, Vec::new());
671677
t("compile_fail", false, true, false, true, false, true, Vec::new());
672678
t("{.no_run .example}", false, true, false, true, false, false, Vec::new());
673-
t("{.sh .should_panic}", true, false, false, true, false, false, Vec::new());
679+
t("{.sh .should_panic}", true, false, false, false, false, false, Vec::new());
674680
t("{.example .rust}", false, false, false, true, false, false, Vec::new());
675681
t("{.test_harness .rust}", false, false, false, true, true, false, Vec::new());
682+
t("text, no_run", false, true, false, false, false, false, Vec::new());
683+
t("text,no_run", false, true, false, false, false, false, Vec::new());
676684
}
677685

678686
#[test]

0 commit comments

Comments
 (0)