From 5c28cd259a174e906b733da93fe387124ed2dd02 Mon Sep 17 00:00:00 2001 From: Philipp Hansch Date: Thu, 1 Feb 2018 23:04:59 +0100 Subject: [PATCH] Allow empty lines in lint doc examples This makes sure that empty lines in lint examples are preserved. It also fixes the documentation for the invalid_ref lint, which was not shown because of an extra newline before the lint declaration. --- clippy_lints/src/attrs.rs | 5 ++--- clippy_lints/src/invalid_ref.rs | 1 - util/export.py | 11 ++++++++--- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/clippy_lints/src/attrs.rs b/clippy_lints/src/attrs.rs index 939fdf1fae9..2237a463ddc 100644 --- a/clippy_lints/src/attrs.rs +++ b/clippy_lints/src/attrs.rs @@ -97,12 +97,11 @@ /// // Good (as inner attribute) /// #![inline(always)] /// -/// fn this_is_fine_too(..) { ... } +/// fn this_is_fine(..) { ... } /// /// // Good (as outer attribute) /// #[inline(always)] -/// fn this_is_fine(..) { ... } -/// +/// fn this_is_fine_too(..) { ... } /// ``` declare_lint! { pub EMPTY_LINE_AFTER_OUTER_ATTR, diff --git a/clippy_lints/src/invalid_ref.rs b/clippy_lints/src/invalid_ref.rs index 90eb92b8ca4..6e6b0392a90 100644 --- a/clippy_lints/src/invalid_ref.rs +++ b/clippy_lints/src/invalid_ref.rs @@ -13,7 +13,6 @@ /// ```rust /// let bad_ref: &usize = std::mem::zeroed(); /// ``` - declare_lint! { pub INVALID_REF, Warn, diff --git a/util/export.py b/util/export.py index ae8e4a72c08..0607c864259 100755 --- a/util/export.py +++ b/util/export.py @@ -24,7 +24,7 @@ def parse_lint_def(lint): last_section = None for line in lint.doc: - if len(line.strip()) == 0: + if len(line.strip()) == 0 and not last_section.startswith("Example"): continue match = re.match(lint_subheadline, line) @@ -39,8 +39,13 @@ def parse_lint_def(lint): log.warn("Skipping comment line as it was not preceded by a heading") log.debug("in lint `%s`, line `%s`", lint.name, line) - lint_dict['docs'][last_section] = \ - (lint_dict['docs'].get(last_section, "") + "\n" + text).strip() + fragment = lint_dict['docs'].get(last_section, "") + if text == "\n": + line = fragment + text + else: + line = (fragment + "\n" + text).strip() + + lint_dict['docs'][last_section] = line return lint_dict -- 2.44.0