diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2021-01-03 17:09:09 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-03 17:09:09 +0100 |
| commit | fd0dbac943a12744af47a3bd327bcb4e16a9f1b6 (patch) | |
| tree | e9c3c7e625f1d0a97e9d3868df4dd596f38ee368 | |
| parent | 2072e117304da97ea1c7df052519f6dc3777b7ff (diff) | |
| parent | da3eef61f521f442d02235da0ebc6abaec614e22 (diff) | |
| download | rust-fd0dbac943a12744af47a3bd327bcb4e16a9f1b6.tar.gz rust-fd0dbac943a12744af47a3bd327bcb4e16a9f1b6.zip | |
Rollup merge of #80617 - GuillaumeGomez:detect-invalid-rustdoc-test-commands, r=jyn514
Detect invalid rustdoc test commands Fixes #80570. There are now errors displayed in case of bad command syntax: ``` ---- [rustdoc] rustdoc/remove-url-from-headings.rs stdout ---- error: htmldocck failed! status: exit code: 1 command: "/usr/bin/python" "/home/imperio/rust/rust/src/etc/htmldocck.py" "/home/imperio/rust/rust/build/x86_64-unknown-linux-gnu/test/rustdoc/remove-url-from-headings" "/home/imperio/rust/rust/src/test/rustdoc/remove-url-from-headings.rs" stdout: ------------------------------------------ ------------------------------------------ stderr: ------------------------------------------ 3: Invalid command: `!`@has`,` (try with ``@!has`)` // !`@has` - '//a[`@href="http://a.a"]'` Encountered 1 errors ``` r? `@camelid`
| -rw-r--r-- | src/etc/htmldocck.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/etc/htmldocck.py b/src/etc/htmldocck.py index 440181a7611..2f7233685db 100644 --- a/src/etc/htmldocck.py +++ b/src/etc/htmldocck.py @@ -218,7 +218,7 @@ def concat_multi_lines(f): LINE_PATTERN = re.compile(r''' - (?<=(?<!\S)@)(?P<negated>!?) + (?<=(?<!\S))(?P<invalid>!?)@(?P<negated>!?) (?P<cmd>[A-Za-z]+(?:-[A-Za-z]+)*) (?P<args>.*)$ ''', re.X | re.UNICODE) @@ -233,6 +233,16 @@ def get_commands(template): negated = (m.group('negated') == '!') cmd = m.group('cmd') + if m.group('invalid') == '!': + print_err( + lineno, + line, + 'Invalid command: `!@{0}{1}`, (help: try with `@!{1}`)'.format( + '!' if negated else '', + cmd, + ), + ) + continue args = m.group('args') if args and not args[:1].isspace(): print_err(lineno, line, 'Invalid template syntax') |
