]> git.lizzy.rs Git - rust.git/commitdiff
Allow empty lines in lint doc examples
authorPhilipp Hansch <dev@phansch.net>
Thu, 1 Feb 2018 22:04:59 +0000 (23:04 +0100)
committerPhilipp Hansch <dev@phansch.net>
Thu, 1 Feb 2018 22:21:36 +0000 (23:21 +0100)
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
clippy_lints/src/invalid_ref.rs
util/export.py

index 939fdf1fae99ae23aa175f21fcc64e3cc236e399..2237a463ddcd5083613d54a59f44433daa5d80a2 100644 (file)
 /// // 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,
index 90eb92b8ca453bc070d23392a8353bc7eee455e5..6e6b0392a909fe2a3dc9e428c0128dab3676ea82 100644 (file)
@@ -13,7 +13,6 @@
 /// ```rust
 /// let bad_ref: &usize = std::mem::zeroed();
 /// ```
-
 declare_lint! {
     pub INVALID_REF,
     Warn,
index ae8e4a72c08d8827efeed86d9f27844fbfc719f5..0607c864259d2f6ab75df02dd869537975eb43e6 100755 (executable)
@@ -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