Skip to content

Commit 1202508

Browse files
committed
Merge remote-tracking branch 'upstream/master' into rustup
2 parents 835e6a6 + d8ecde0 commit 1202508

File tree

2,515 files changed

+31634
-13930
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,515 files changed

+31634
-13930
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5530,6 +5530,7 @@ Released 2018-09-13
55305530
[`diverging_sub_expression`]: https://rust-lang.github.io/rust-clippy/master/index.html#diverging_sub_expression
55315531
[`doc_include_without_cfg`]: https://rust-lang.github.io/rust-clippy/master/index.html#doc_include_without_cfg
55325532
[`doc_lazy_continuation`]: https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation
5533+
[`doc_link_code`]: https://rust-lang.github.io/rust-clippy/master/index.html#doc_link_code
55335534
[`doc_link_with_quotes`]: https://rust-lang.github.io/rust-clippy/master/index.html#doc_link_with_quotes
55345535
[`doc_markdown`]: https://rust-lang.github.io/rust-clippy/master/index.html#doc_markdown
55355536
[`doc_nested_refdefs`]: https://rust-lang.github.io/rust-clippy/master/index.html#doc_nested_refdefs
@@ -5742,6 +5743,7 @@ Released 2018-09-13
57425743
[`manual_bits`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_bits
57435744
[`manual_c_str_literals`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_c_str_literals
57445745
[`manual_clamp`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp
5746+
[`manual_contains`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains
57455747
[`manual_div_ceil`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil
57465748
[`manual_filter`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter
57475749
[`manual_filter_map`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_filter_map
@@ -5812,6 +5814,7 @@ Released 2018-09-13
58125814
[`mem_discriminant_non_enum`]: https://rust-lang.github.io/rust-clippy/master/index.html#mem_discriminant_non_enum
58135815
[`mem_forget`]: https://rust-lang.github.io/rust-clippy/master/index.html#mem_forget
58145816
[`mem_replace_option_with_none`]: https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_none
5817+
[`mem_replace_option_with_some`]: https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_some
58155818
[`mem_replace_with_default`]: https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default
58165819
[`mem_replace_with_uninit`]: https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_uninit
58175820
[`min_ident_chars`]: https://rust-lang.github.io/rust-clippy/master/index.html#min_ident_chars
@@ -6067,6 +6070,7 @@ Released 2018-09-13
60676070
[`single_element_loop`]: https://rust-lang.github.io/rust-clippy/master/index.html#single_element_loop
60686071
[`single_match`]: https://rust-lang.github.io/rust-clippy/master/index.html#single_match
60696072
[`single_match_else`]: https://rust-lang.github.io/rust-clippy/master/index.html#single_match_else
6073+
[`single_option_map`]: https://rust-lang.github.io/rust-clippy/master/index.html#single_option_map
60706074
[`single_range_in_vec_init`]: https://rust-lang.github.io/rust-clippy/master/index.html#single_range_in_vec_init
60716075
[`size_of_in_element_count`]: https://rust-lang.github.io/rust-clippy/master/index.html#size_of_in_element_count
60726076
[`size_of_ref`]: https://rust-lang.github.io/rust-clippy/master/index.html#size_of_ref
@@ -6143,6 +6147,7 @@ Released 2018-09-13
61436147
[`type_complexity`]: https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity
61446148
[`type_id_on_box`]: https://rust-lang.github.io/rust-clippy/master/index.html#type_id_on_box
61456149
[`type_repetition_in_bounds`]: https://rust-lang.github.io/rust-clippy/master/index.html#type_repetition_in_bounds
6150+
[`unbuffered_bytes`]: https://rust-lang.github.io/rust-clippy/master/index.html#unbuffered_bytes
61466151
[`unchecked_duration_subtraction`]: https://rust-lang.github.io/rust-clippy/master/index.html#unchecked_duration_subtraction
61476152
[`unconditional_recursion`]: https://rust-lang.github.io/rust-clippy/master/index.html#unconditional_recursion
61486153
[`undocumented_unsafe_blocks`]: https://rust-lang.github.io/rust-clippy/master/index.html#undocumented_unsafe_blocks
@@ -6267,6 +6272,7 @@ Released 2018-09-13
62676272
[`accept-comment-above-statement`]: https://doc.rust-lang.org/clippy/lint_configuration.html#accept-comment-above-statement
62686273
[`allow-comparison-to-zero`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-comparison-to-zero
62696274
[`allow-dbg-in-tests`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-dbg-in-tests
6275+
[`allow-expect-in-consts`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-expect-in-consts
62706276
[`allow-expect-in-tests`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-expect-in-tests
62716277
[`allow-indexing-slicing-in-tests`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-indexing-slicing-in-tests
62726278
[`allow-mixed-uninlined-format-args`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-mixed-uninlined-format-args
@@ -6275,6 +6281,7 @@ Released 2018-09-13
62756281
[`allow-print-in-tests`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-print-in-tests
62766282
[`allow-private-module-inception`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-private-module-inception
62776283
[`allow-renamed-params-for`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-renamed-params-for
6284+
[`allow-unwrap-in-consts`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-unwrap-in-consts
62786285
[`allow-unwrap-in-tests`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-unwrap-in-tests
62796286
[`allow-useless-vec-in-tests`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allow-useless-vec-in-tests
62806287
[`allowed-dotfiles`]: https://doc.rust-lang.org/clippy/lint_configuration.html#allowed-dotfiles

Cargo.toml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ path = "src/driver.rs"
2525
[dependencies]
2626
clippy_config = { path = "clippy_config" }
2727
clippy_lints = { path = "clippy_lints" }
28-
rustc_tools_util = "0.4.0"
28+
rustc_tools_util = { path = "rustc_tools_util", version = "0.4.2" }
2929
tempfile = { version = "3.3", optional = true }
3030
termize = "0.1"
3131
color-print = "0.3.4"
@@ -54,7 +54,7 @@ parking_lot = "0.12"
5454
tokio = { version = "1", features = ["io-util"] }
5555

5656
[build-dependencies]
57-
rustc_tools_util = "0.4.0"
57+
rustc_tools_util = { path = "rustc_tools_util", version = "0.4.2" }
5858

5959
[features]
6060
integration = ["tempfile"]
@@ -71,3 +71,10 @@ harness = false
7171
[[test]]
7272
name = "dogfood"
7373
harness = false
74+
75+
# quine-mc_cluskey makes up a significant part of the runtime in dogfood
76+
# due to the number of conditions in the clippy_lints crate
77+
# and enabling optimizations for that specific dependency helps a bit
78+
# without increasing total build times.
79+
[profile.dev.package.quine-mc_cluskey]
80+
opt-level = 3

book/src/development/adding_lints.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ from the lint to the code of the test file and compare that to the contents of a
169169
Use `cargo bless` to automatically generate the `.fixed` file while running
170170
the tests.
171171

172-
[rustfix]: https://github.com/rust-lang/rustfix
172+
[rustfix]: https://github.com/rust-lang/cargo/tree/master/crates/rustfix
173173

174174
## Testing manually
175175

book/src/development/basics.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ or if you modify a test file to add a test case.
7575
> _Note:_ This command may update more files than you intended. In that case
7676
> only commit the files you wanted to update.
7777
78-
[UI test]: https://rustc-dev-guide.rust-lang.org/tests/adding.html#guide-to-the-ui-tests
78+
[UI test]: https://rustc-dev-guide.rust-lang.org/tests/adding.html#ui-test-walkthrough
7979

8080
## `cargo dev`
8181

book/src/development/writing_tests.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ We'll talk about suggestions more in depth in a [later chapter](emitting_lints.m
203203
Use `cargo bless` to automatically generate the `.fixed` file after running
204204
the tests.
205205

206-
[`rustfix`]: https://github.com/rust-lang/rustfix
206+
[`rustfix`]: https://github.com/rust-lang/cargo/tree/master/crates/rustfix
207207
[`span_lint_and_sugg`]: https://doc.rust-lang.org/beta/nightly-rustc/clippy_utils/diagnostics/fn.span_lint_and_sugg.html
208208

209209
## Testing Manually

book/src/lint_configuration.md

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,16 @@ Whether `dbg!` should be allowed in test functions or `#[cfg(test)]`
7171
* [`dbg_macro`](https://rust-lang.github.io/rust-clippy/master/index.html#dbg_macro)
7272

7373

74+
## `allow-expect-in-consts`
75+
Whether `expect` should be allowed in code always evaluated at compile time
76+
77+
**Default Value:** `true`
78+
79+
---
80+
**Affected lints:**
81+
* [`expect_used`](https://rust-lang.github.io/rust-clippy/master/index.html#expect_used)
82+
83+
7484
## `allow-expect-in-tests`
7585
Whether `expect` should be allowed in test functions or `#[cfg(test)]`
7686

@@ -108,7 +118,7 @@ Whether to allow `r#""#` when `r""` can be used
108118

109119
---
110120
**Affected lints:**
111-
* [`unnecessary_raw_string_hashes`](https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_raw_string_hashes)
121+
* [`needless_raw_string_hashes`](https://rust-lang.github.io/rust-clippy/master/index.html#needless_raw_string_hashes)
112122

113123

114124
## `allow-panic-in-tests`
@@ -164,6 +174,16 @@ default configuration of Clippy. By default, any configuration will replace the
164174
* [`renamed_function_params`](https://rust-lang.github.io/rust-clippy/master/index.html#renamed_function_params)
165175

166176

177+
## `allow-unwrap-in-consts`
178+
Whether `unwrap` should be allowed in code always evaluated at compile time
179+
180+
**Default Value:** `true`
181+
182+
---
183+
**Affected lints:**
184+
* [`unwrap_used`](https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_used)
185+
186+
167187
## `allow-unwrap-in-tests`
168188
Whether `unwrap` should be allowed in test functions or `#[cfg(test)]`
169189

@@ -740,13 +760,16 @@ The minimum rust version that the project supports. Defaults to the `rust-versio
740760
* [`index_refutable_slice`](https://rust-lang.github.io/rust-clippy/master/index.html#index_refutable_slice)
741761
* [`iter_kv_map`](https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map)
742762
* [`legacy_numeric_constants`](https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants)
763+
* [`lines_filter_map_ok`](https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok)
743764
* [`manual_bits`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_bits)
744765
* [`manual_c_str_literals`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_c_str_literals)
745766
* [`manual_clamp`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp)
767+
* [`manual_flatten`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten)
746768
* [`manual_hash_one`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_hash_one)
747769
* [`manual_is_ascii_check`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_ascii_check)
748770
* [`manual_let_else`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else)
749771
* [`manual_non_exhaustive`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_non_exhaustive)
772+
* [`manual_option_as_slice`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_option_as_slice)
750773
* [`manual_pattern_char_comparison`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_pattern_char_comparison)
751774
* [`manual_range_contains`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains)
752775
* [`manual_rem_euclid`](https://rust-lang.github.io/rust-clippy/master/index.html#manual_rem_euclid)
@@ -761,6 +784,7 @@ The minimum rust version that the project supports. Defaults to the `rust-versio
761784
* [`map_unwrap_or`](https://rust-lang.github.io/rust-clippy/master/index.html#map_unwrap_or)
762785
* [`map_with_unused_argument_over_ranges`](https://rust-lang.github.io/rust-clippy/master/index.html#map_with_unused_argument_over_ranges)
763786
* [`match_like_matches_macro`](https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro)
787+
* [`mem_replace_option_with_some`](https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_option_with_some)
764788
* [`mem_replace_with_default`](https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default)
765789
* [`missing_const_for_fn`](https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_fn)
766790
* [`needless_borrow`](https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow)

clippy_config/src/conf.rs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use crate::ClippyConfiguration;
22
use crate::types::{
3-
DisallowedPath, MacroMatcher, MatchLintBehaviour, PubUnderscoreFieldsBehaviour, Rename, SourceItemOrdering,
4-
SourceItemOrderingCategory, SourceItemOrderingModuleItemGroupings, SourceItemOrderingModuleItemKind,
5-
SourceItemOrderingTraitAssocItemKind, SourceItemOrderingTraitAssocItemKinds,
3+
DisallowedPath, DisallowedPathWithoutReplacement, MacroMatcher, MatchLintBehaviour, PubUnderscoreFieldsBehaviour,
4+
Rename, SourceItemOrdering, SourceItemOrderingCategory, SourceItemOrderingModuleItemGroupings,
5+
SourceItemOrderingModuleItemKind, SourceItemOrderingTraitAssocItemKind, SourceItemOrderingTraitAssocItemKinds,
66
};
77
use clippy_utils::msrvs::Msrv;
88
use rustc_errors::Applicability;
@@ -288,6 +288,9 @@ define_Conf! {
288288
/// Whether `dbg!` should be allowed in test functions or `#[cfg(test)]`
289289
#[lints(dbg_macro)]
290290
allow_dbg_in_tests: bool = false,
291+
/// Whether `expect` should be allowed in code always evaluated at compile time
292+
#[lints(expect_used)]
293+
allow_expect_in_consts: bool = true,
291294
/// Whether `expect` should be allowed in test functions or `#[cfg(test)]`
292295
#[lints(expect_used)]
293296
allow_expect_in_tests: bool = false,
@@ -298,7 +301,7 @@ define_Conf! {
298301
#[lints(uninlined_format_args)]
299302
allow_mixed_uninlined_format_args: bool = true,
300303
/// Whether to allow `r#""#` when `r""` can be used
301-
#[lints(unnecessary_raw_string_hashes)]
304+
#[lints(needless_raw_string_hashes)]
302305
allow_one_hash_in_raw_strings: bool = false,
303306
/// Whether `panic` should be allowed in test functions or `#[cfg(test)]`
304307
#[lints(panic)]
@@ -325,6 +328,9 @@ define_Conf! {
325328
#[lints(renamed_function_params)]
326329
allow_renamed_params_for: Vec<String> =
327330
DEFAULT_ALLOWED_TRAITS_WITH_RENAMED_PARAMS.iter().map(ToString::to_string).collect(),
331+
/// Whether `unwrap` should be allowed in code always evaluated at compile time
332+
#[lints(unwrap_used)]
333+
allow_unwrap_in_consts: bool = true,
328334
/// Whether `unwrap` should be allowed in test functions or `#[cfg(test)]`
329335
#[lints(unwrap_used)]
330336
allow_unwrap_in_tests: bool = false,
@@ -448,7 +454,7 @@ define_Conf! {
448454
avoid_breaking_exported_api: bool = true,
449455
/// The list of types which may not be held across an await point.
450456
#[lints(await_holding_invalid_type)]
451-
await_holding_invalid_types: Vec<DisallowedPath> = Vec::new(),
457+
await_holding_invalid_types: Vec<DisallowedPathWithoutReplacement> = Vec::new(),
452458
/// DEPRECATED LINT: BLACKLISTED_NAME.
453459
///
454460
/// Use the Disallowed Names lint instead
@@ -609,13 +615,16 @@ define_Conf! {
609615
index_refutable_slice,
610616
iter_kv_map,
611617
legacy_numeric_constants,
618+
lines_filter_map_ok,
612619
manual_bits,
613620
manual_c_str_literals,
614621
manual_clamp,
622+
manual_flatten,
615623
manual_hash_one,
616624
manual_is_ascii_check,
617625
manual_let_else,
618626
manual_non_exhaustive,
627+
manual_option_as_slice,
619628
manual_pattern_char_comparison,
620629
manual_range_contains,
621630
manual_rem_euclid,
@@ -630,6 +639,7 @@ define_Conf! {
630639
map_unwrap_or,
631640
map_with_unused_argument_over_ranges,
632641
match_like_matches_macro,
642+
mem_replace_option_with_some,
633643
mem_replace_with_default,
634644
missing_const_for_fn,
635645
needless_borrow,

clippy_config/src/types.rs

Lines changed: 74 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
use clippy_utils::def_path_def_ids;
2+
use rustc_errors::{Applicability, Diag};
23
use rustc_hir::def_id::DefIdMap;
34
use rustc_middle::ty::TyCtxt;
5+
use rustc_span::Span;
46
use serde::de::{self, Deserializer, Visitor};
57
use serde::{Deserialize, Serialize, ser};
68
use std::collections::HashMap;
@@ -12,37 +14,99 @@ pub struct Rename {
1214
pub rename: String,
1315
}
1416

15-
#[derive(Debug, Deserialize)]
17+
pub type DisallowedPathWithoutReplacement = DisallowedPath<false>;
18+
19+
#[derive(Debug, Serialize)]
20+
pub struct DisallowedPath<const REPLACEMENT_ALLOWED: bool = true> {
21+
path: String,
22+
reason: Option<String>,
23+
replacement: Option<String>,
24+
}
25+
26+
impl<'de, const REPLACEMENT_ALLOWED: bool> Deserialize<'de> for DisallowedPath<REPLACEMENT_ALLOWED> {
27+
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
28+
where
29+
D: Deserializer<'de>,
30+
{
31+
let enum_ = DisallowedPathEnum::deserialize(deserializer)?;
32+
if !REPLACEMENT_ALLOWED && enum_.replacement().is_some() {
33+
return Err(de::Error::custom("replacement not allowed for this configuration"));
34+
}
35+
Ok(Self {
36+
path: enum_.path().to_owned(),
37+
reason: enum_.reason().map(ToOwned::to_owned),
38+
replacement: enum_.replacement().map(ToOwned::to_owned),
39+
})
40+
}
41+
}
42+
43+
// `DisallowedPathEnum` is an implementation detail to enable the `Deserialize` implementation just
44+
// above. `DisallowedPathEnum` is not meant to be used outside of this file.
45+
#[derive(Debug, Deserialize, Serialize)]
1646
#[serde(untagged)]
17-
pub enum DisallowedPath {
47+
enum DisallowedPathEnum {
1848
Simple(String),
19-
WithReason { path: String, reason: Option<String> },
49+
WithReason {
50+
path: String,
51+
reason: Option<String>,
52+
replacement: Option<String>,
53+
},
2054
}
2155

22-
impl DisallowedPath {
56+
impl<const REPLACEMENT_ALLOWED: bool> DisallowedPath<REPLACEMENT_ALLOWED> {
57+
pub fn path(&self) -> &str {
58+
&self.path
59+
}
60+
61+
pub fn diag_amendment(&self, span: Span) -> impl FnOnce(&mut Diag<'_, ()>) + use<'_, REPLACEMENT_ALLOWED> {
62+
move |diag| {
63+
if let Some(replacement) = &self.replacement {
64+
diag.span_suggestion(
65+
span,
66+
self.reason.as_ref().map_or_else(|| String::from("use"), Clone::clone),
67+
replacement,
68+
Applicability::MachineApplicable,
69+
);
70+
} else if let Some(reason) = &self.reason {
71+
diag.note(reason.clone());
72+
}
73+
}
74+
}
75+
}
76+
77+
impl DisallowedPathEnum {
2378
pub fn path(&self) -> &str {
2479
let (Self::Simple(path) | Self::WithReason { path, .. }) = self;
2580

2681
path
2782
}
2883

29-
pub fn reason(&self) -> Option<&str> {
84+
fn reason(&self) -> Option<&str> {
3085
match &self {
3186
Self::WithReason { reason, .. } => reason.as_deref(),
3287
Self::Simple(_) => None,
3388
}
3489
}
90+
91+
fn replacement(&self) -> Option<&str> {
92+
match &self {
93+
Self::WithReason { replacement, .. } => replacement.as_deref(),
94+
Self::Simple(_) => None,
95+
}
96+
}
3597
}
3698

3799
/// Creates a map of disallowed items to the reason they were disallowed.
38-
pub fn create_disallowed_map(
100+
pub fn create_disallowed_map<const REPLACEMENT_ALLOWED: bool>(
39101
tcx: TyCtxt<'_>,
40-
disallowed: &'static [DisallowedPath],
41-
) -> DefIdMap<(&'static str, Option<&'static str>)> {
102+
disallowed: &'static [DisallowedPath<REPLACEMENT_ALLOWED>],
103+
) -> DefIdMap<(&'static str, &'static DisallowedPath<REPLACEMENT_ALLOWED>)> {
42104
disallowed
43105
.iter()
44-
.map(|x| (x.path(), x.path().split("::").collect::<Vec<_>>(), x.reason()))
45-
.flat_map(|(name, path, reason)| def_path_def_ids(tcx, &path).map(move |id| (id, (name, reason))))
106+
.map(|x| (x.path(), x.path().split("::").collect::<Vec<_>>(), x))
107+
.flat_map(|(name, path, disallowed_path)| {
108+
def_path_def_ids(tcx, &path).map(move |id| (id, (name, disallowed_path)))
109+
})
46110
.collect()
47111
}
48112

@@ -436,7 +500,6 @@ macro_rules! unimplemented_serialize {
436500
}
437501

438502
unimplemented_serialize! {
439-
DisallowedPath,
440503
Rename,
441504
MacroMatcher,
442505
}

0 commit comments

Comments
 (0)