diff --git a/clippy_lints/src/utils/conf.rs b/clippy_lints/src/utils/conf.rs
index cb335522f..2f8064499 100644
--- a/clippy_lints/src/utils/conf.rs
+++ b/clippy_lints/src/utils/conf.rs
@@ -24,15 +24,18 @@ impl TryConf {
}
}
+/// Note that the configuration parsing currently doesn't support documentation that will
+/// that spans over several lines. This will be possible with the new implementation
+/// See (rust-clippy#7172)
macro_rules! define_Conf {
($(
- $(#[doc = $doc:literal])*
+ #[doc = $doc:literal]
$(#[conf_deprecated($dep:literal)])?
($name:ident: $ty:ty = $default:expr),
)*) => {
/// Clippy lint configuration
pub struct Conf {
- $($(#[doc = $doc])* pub $name: $ty,)*
+ $(#[doc = $doc] pub $name: $ty,)*
}
mod defaults {
@@ -109,7 +112,7 @@ macro_rules! define_Conf {
stringify!($name),
stringify!($ty),
format!("{:?}", super::defaults::$name()),
- concat!($($doc,)*),
+ $doc,
deprecation_reason,
)
},
@@ -198,11 +201,7 @@ define_Conf! {
(upper_case_acronyms_aggressive: bool = false),
/// Lint: _CARGO_COMMON_METADATA. For internal testing only, ignores the current `publish` settings in the Cargo manifest.
(cargo_ignore_publish: bool = false),
- /// Lint: NONSTANDARD_MACRO_BRACES. Enforce the named macros always use the braces specified.
- ///
- /// A `MacroMatcher` can be added like so `{ name = "macro_name", brace = "(" }`.
- /// If the macro is could be used with a full path two `MacroMatcher`s have to be added one
- /// with the full path `crate_name::macro_name` and one with just the macro name.
+ /// Lint: NONSTANDARD_MACRO_BRACES. Enforce the named macros always use the braces specified.
A `MacroMatcher` can be added like so `{ name = "macro_name", brace = "(" }`. If the macro is could be used with a full path two `MacroMatcher`s have to be added one with the full path `crate_name::macro_name` and one with just the macro name.
(standard_macro_braces: Vec = Vec::new()),
}
diff --git a/util/lintlib.py b/util/lintlib.py
index 5707cf0ce..3b6e8c372 100644
--- a/util/lintlib.py
+++ b/util/lintlib.py
@@ -12,7 +12,7 @@ Config = collections.namedtuple('Config', 'name ty doc default')
lintname_re = re.compile(r'''pub\s+([A-Z_][A-Z_0-9]*)''')
group_re = re.compile(r'''\s*([a-z_][a-z_0-9]+)''')
-conf_re = re.compile(r'''define_Conf! {\n([^}]*)\n}''', re.MULTILINE)
+conf_re = re.compile(r'''define_Conf! {\n((?!\n})[\s\S])*\n}''', re.MULTILINE)
confvar_re = re.compile(
r'''/// Lint: ([\w,\s]+)\. (.*)\n\s*\(([^:]+):\s*([^\s=]+)\s*=\s*([^\.\)]+).*\),''', re.MULTILINE)
comment_re = re.compile(r'''\s*/// ?(.*)''')
@@ -91,7 +91,7 @@ def parse_configs(path):
contents = fp.read()
match = re.search(conf_re, contents)
- confvars = re.findall(confvar_re, match.group(1))
+ confvars = re.findall(confvar_re, match.group(0))
for (lints, doc, name, ty, default) in confvars:
for lint in lints.split(','):