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.
This commit is contained in:
Philipp Hansch 2018-02-01 23:04:59 +01:00
parent d5bac82837
commit 5c28cd259a
No known key found for this signature in database
GPG key ID: 667C8F4B5A698A60
3 changed files with 10 additions and 7 deletions

View file

@ -97,12 +97,11 @@ declare_lint! {
/// // 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,

View file

@ -13,7 +13,6 @@ use utils::{match_def_path, opt_def_id, paths, span_help_and_lint};
/// ```rust
/// let bad_ref: &usize = std::mem::zeroed();
/// ```
declare_lint! {
pub INVALID_REF,
Warn,

View file

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