Fix some formatting issues
This commit is contained in:
parent
1751d2496d
commit
63fa5d24e1
14 changed files with 120 additions and 139 deletions
|
@ -27,10 +27,9 @@ use if_chain::if_chain;
|
||||||
/// writeln!(&mut io::stderr(), "foo: {:?}", bar).unwrap();
|
/// writeln!(&mut io::stderr(), "foo: {:?}", bar).unwrap();
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub EXPLICIT_WRITE,
|
pub EXPLICIT_WRITE,
|
||||||
complexity,
|
complexity,
|
||||||
"using the `write!()` family of functions instead of the `print!()` family \
|
"using the `write!()` family of functions instead of the `print!()` family of functions, when using the latter would work"
|
||||||
of functions, when using the latter would work"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Copy, Clone, Debug)]
|
#[derive(Copy, Clone, Debug)]
|
||||||
|
|
|
@ -249,10 +249,9 @@ declare_clippy_lint! {
|
||||||
/// vec.iter().map(|x| /* some operation returning () */).collect::<Vec<_>>();
|
/// vec.iter().map(|x| /* some operation returning () */).collect::<Vec<_>>();
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub UNUSED_COLLECT,
|
pub UNUSED_COLLECT,
|
||||||
perf,
|
perf,
|
||||||
"`collect()`ing an iterator without using the result; this is usually better \
|
"`collect()`ing an iterator without using the result; this is usually better written as a for loop"
|
||||||
written as a for loop"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for functions collecting an iterator when collect
|
/// **What it does:** Checks for functions collecting an iterator when collect
|
||||||
|
|
|
@ -81,7 +81,7 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Pass {
|
||||||
hir::PatKind::Binding(hir::BindingAnnotation::Unannotated, _, name, None) => {
|
hir::PatKind::Binding(hir::BindingAnnotation::Unannotated, _, name, None) => {
|
||||||
match closure_expr.node {
|
match closure_expr.node {
|
||||||
hir::ExprKind::Unary(hir::UnOp::UnDeref, ref inner) => {
|
hir::ExprKind::Unary(hir::UnOp::UnDeref, ref inner) => {
|
||||||
if !cx.tables.expr_ty(inner).is_box() => {
|
if !cx.tables.expr_ty(inner).is_box() {
|
||||||
lint(cx, e.span, args[0].span, name, inner);
|
lint(cx, e.span, args[0].span, name, inner);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -40,10 +40,9 @@ use std::collections::Bound;
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub SINGLE_MATCH,
|
pub SINGLE_MATCH,
|
||||||
style,
|
style,
|
||||||
"a match statement with a single nontrivial arm (i.e. where the other arm \
|
"a match statement with a single nontrivial arm (i.e. where the other arm is `_ => {}`) instead of `if let`"
|
||||||
is `_ => {}`) instead of `if let`"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for matches with a two arms where an `if let` will
|
/// **What it does:** Checks for matches with a two arms where an `if let` will
|
||||||
|
@ -61,10 +60,9 @@ style,
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub SINGLE_MATCH_ELSE,
|
pub SINGLE_MATCH_ELSE,
|
||||||
pedantic,
|
pedantic,
|
||||||
"a match statement with a two arms where the second arm's pattern is a wildcard \
|
"a match statement with a two arms where the second arm's pattern is a wildcard instead of `if let`"
|
||||||
instead of `if let`"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for matches where all arms match a reference,
|
/// **What it does:** Checks for matches where all arms match a reference,
|
||||||
|
|
|
@ -131,10 +131,9 @@ declare_clippy_lint! {
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub WRONG_SELF_CONVENTION,
|
pub WRONG_SELF_CONVENTION,
|
||||||
style,
|
style,
|
||||||
"defining a method named with an established prefix (like \"into_\") that takes \
|
"defining a method named with an established prefix (like \"into_\") that takes `self` with the wrong convention"
|
||||||
`self` with the wrong convention"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** This is the same as
|
/// **What it does:** This is the same as
|
||||||
|
@ -155,10 +154,9 @@ style,
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub WRONG_PUB_SELF_CONVENTION,
|
pub WRONG_PUB_SELF_CONVENTION,
|
||||||
restriction,
|
restriction,
|
||||||
"defining a public method named with an established prefix (like \"into_\") that takes \
|
"defining a public method named with an established prefix (like \"into_\") that takes `self` with the wrong convention"
|
||||||
`self` with the wrong convention"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for usage of `ok().expect(..)`.
|
/// **What it does:** Checks for usage of `ok().expect(..)`.
|
||||||
|
@ -173,10 +171,9 @@ restriction,
|
||||||
/// x.ok().expect("why did I do this again?")
|
/// x.ok().expect("why did I do this again?")
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub OK_EXPECT,
|
pub OK_EXPECT,
|
||||||
style,
|
style,
|
||||||
"using `ok().expect()`, which gives worse error messages than \
|
"using `ok().expect()`, which gives worse error messages than calling `expect` directly on the Result"
|
||||||
calling `expect` directly on the Result"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for usage of `_.map(_).unwrap_or(_)`.
|
/// **What it does:** Checks for usage of `_.map(_).unwrap_or(_)`.
|
||||||
|
@ -209,10 +206,9 @@ pedantic,
|
||||||
/// x.map(|a| a + 1).unwrap_or_else(some_function)
|
/// x.map(|a| a + 1).unwrap_or_else(some_function)
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub OPTION_MAP_UNWRAP_OR_ELSE,
|
pub OPTION_MAP_UNWRAP_OR_ELSE,
|
||||||
pedantic,
|
pedantic,
|
||||||
"using `Option.map(f).unwrap_or_else(g)`, which is more succinctly expressed as \
|
"using `Option.map(f).unwrap_or_else(g)`, which is more succinctly expressed as `map_or_else(g, f)`"
|
||||||
`map_or_else(g, f)`"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for usage of `result.map(_).unwrap_or_else(_)`.
|
/// **What it does:** Checks for usage of `result.map(_).unwrap_or_else(_)`.
|
||||||
|
@ -227,10 +223,9 @@ pedantic,
|
||||||
/// x.map(|a| a + 1).unwrap_or_else(some_function)
|
/// x.map(|a| a + 1).unwrap_or_else(some_function)
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub RESULT_MAP_UNWRAP_OR_ELSE,
|
pub RESULT_MAP_UNWRAP_OR_ELSE,
|
||||||
pedantic,
|
pedantic,
|
||||||
"using `Result.map(f).unwrap_or_else(g)`, which is more succinctly expressed as \
|
"using `Result.map(f).unwrap_or_else(g)`, which is more succinctly expressed as `.ok().map_or_else(g, f)`"
|
||||||
`.ok().map_or_else(g, f)`"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for usage of `_.map_or(None, _)`.
|
/// **What it does:** Checks for usage of `_.map_or(None, _)`.
|
||||||
|
@ -245,10 +240,9 @@ pedantic,
|
||||||
/// opt.map_or(None, |a| a + 1)
|
/// opt.map_or(None, |a| a + 1)
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub OPTION_MAP_OR_NONE,
|
pub OPTION_MAP_OR_NONE,
|
||||||
style,
|
style,
|
||||||
"using `Option.map_or(None, f)`, which is more succinctly expressed as \
|
"using `Option.map_or(None, f)`, which is more succinctly expressed as `and_then(f)`"
|
||||||
`and_then(f)`"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for usage of `_.filter(_).next()`.
|
/// **What it does:** Checks for usage of `_.filter(_).next()`.
|
||||||
|
@ -280,10 +274,9 @@ declare_clippy_lint! {
|
||||||
/// iter.map(|x| x.iter()).flatten()
|
/// iter.map(|x| x.iter()).flatten()
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub MAP_FLATTEN,
|
pub MAP_FLATTEN,
|
||||||
pedantic,
|
pedantic,
|
||||||
"using combinations of `flatten` and `map` which can usually be written as a \
|
"using combinations of `flatten` and `map` which can usually be written as a single method call"
|
||||||
single method call"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for usage of `_.filter(_).map(_)`,
|
/// **What it does:** Checks for usage of `_.filter(_).map(_)`,
|
||||||
|
@ -300,10 +293,9 @@ pedantic,
|
||||||
/// iter.filter(|x| x == 0).map(|x| x * 2)
|
/// iter.filter(|x| x == 0).map(|x| x * 2)
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub FILTER_MAP,
|
pub FILTER_MAP,
|
||||||
pedantic,
|
pedantic,
|
||||||
"using combinations of `filter`, `map`, `filter_map` and `flat_map` which can \
|
"using combinations of `filter`, `map`, `filter_map` and `flat_map` which can usually be written as a single method call"
|
||||||
usually be written as a single method call"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for an iterator search (such as `find()`,
|
/// **What it does:** Checks for an iterator search (such as `find()`,
|
||||||
|
@ -319,10 +311,9 @@ pedantic,
|
||||||
/// iter.find(|x| x == 0).is_some()
|
/// iter.find(|x| x == 0).is_some()
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub SEARCH_IS_SOME,
|
pub SEARCH_IS_SOME,
|
||||||
complexity,
|
complexity,
|
||||||
"using an iterator search followed by `is_some()`, which is more succinctly \
|
"using an iterator search followed by `is_some()`, which is more succinctly expressed as a call to `any()`"
|
||||||
expressed as a call to `any()`"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for usage of `.chars().next()` on a `str` to check
|
/// **What it does:** Checks for usage of `.chars().next()` on a `str` to check
|
||||||
|
@ -485,10 +476,9 @@ declare_clippy_lint! {
|
||||||
/// **Example:**
|
/// **Example:**
|
||||||
/// `_.split("x")` could be `_.split('x')`
|
/// `_.split("x")` could be `_.split('x')`
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub SINGLE_CHAR_PATTERN,
|
pub SINGLE_CHAR_PATTERN,
|
||||||
perf,
|
perf,
|
||||||
"using a single-character str where a char could be used, e.g. \
|
"using a single-character str where a char could be used, e.g. `_.split(\"x\")`"
|
||||||
`_.split(\"x\")`"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for getting the inner pointer of a temporary
|
/// **What it does:** Checks for getting the inner pointer of a temporary
|
||||||
|
|
|
@ -27,10 +27,9 @@ use crate::utils::span_lint;
|
||||||
/// my_vec.push(&mut value)
|
/// my_vec.push(&mut value)
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub UNNECESSARY_MUT_PASSED,
|
pub UNNECESSARY_MUT_PASSED,
|
||||||
style,
|
style,
|
||||||
"an argument passed as a mutable reference although the callee only demands an \
|
"an argument passed as a mutable reference although the callee only demands an immutable reference"
|
||||||
immutable reference"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Copy, Clone)]
|
#[derive(Copy, Clone)]
|
||||||
|
|
|
@ -40,10 +40,9 @@ use crate::utils::{in_macro, snippet_with_applicability, span_lint, span_lint_an
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub NEEDLESS_BOOL,
|
pub NEEDLESS_BOOL,
|
||||||
complexity,
|
complexity,
|
||||||
"if-statements with plain booleans in the then- and else-clause, e.g. \
|
"if-statements with plain booleans in the then- and else-clause, e.g. `if p { true } else { false }`"
|
||||||
`if p { true } else { false }`"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for expressions of the form `x == true` (or vice
|
/// **What it does:** Checks for expressions of the form `x == true` (or vice
|
||||||
|
|
|
@ -54,10 +54,9 @@ use std::borrow::Cow;
|
||||||
/// fn foo(&Vec<u32>) { .. }
|
/// fn foo(&Vec<u32>) { .. }
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub PTR_ARG,
|
pub PTR_ARG,
|
||||||
style,
|
style,
|
||||||
"fn arguments of the type `&Vec<...>` or `&String`, suggesting to use `&[...]` or `&str` \
|
"fn arguments of the type `&Vec<...>` or `&String`, suggesting to use `&[...]` or `&str` instead, respectively"
|
||||||
instead, respectively"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** This lint checks for equality comparisons with `ptr::null`
|
/// **What it does:** This lint checks for equality comparisons with `ptr::null`
|
||||||
|
|
|
@ -65,10 +65,9 @@ declare_clippy_lint! {
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub LET_AND_RETURN,
|
pub LET_AND_RETURN,
|
||||||
style,
|
style,
|
||||||
"creating a let-binding and then immediately returning it like `let x = expr; x` at \
|
"creating a let-binding and then immediately returning it like `let x = expr; x` at the end of a block"
|
||||||
the end of a block"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for unit (`()`) expressions that can be removed.
|
/// **What it does:** Checks for unit (`()`) expressions that can be removed.
|
||||||
|
|
|
@ -56,10 +56,9 @@ declare_clippy_lint! {
|
||||||
/// let y = x + 1;
|
/// let y = x + 1;
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub SHADOW_REUSE,
|
pub SHADOW_REUSE,
|
||||||
restriction,
|
restriction,
|
||||||
"rebinding a name to an expression that re-uses the original value, e.g. \
|
"rebinding a name to an expression that re-uses the original value, e.g. `let x = x + 1`"
|
||||||
`let x = x + 1`"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for bindings that shadow other bindings already in
|
/// **What it does:** Checks for bindings that shadow other bindings already in
|
||||||
|
|
|
@ -81,6 +81,7 @@ declare_clippy_lint! {
|
||||||
/// **Example:**
|
/// **Example:**
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// let _: &T = std::mem::transmute(p); // where p: *const T
|
/// let _: &T = std::mem::transmute(p); // where p: *const T
|
||||||
|
///
|
||||||
/// // can be written:
|
/// // can be written:
|
||||||
/// let _: &T = &*p;
|
/// let _: &T = &*p;
|
||||||
/// ```
|
/// ```
|
||||||
|
@ -108,6 +109,7 @@ declare_clippy_lint! {
|
||||||
/// **Example:**
|
/// **Example:**
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// let _: char = std::mem::transmute(x); // where x: u32
|
/// let _: char = std::mem::transmute(x); // where x: u32
|
||||||
|
///
|
||||||
/// // should be:
|
/// // should be:
|
||||||
/// let _ = std::char::from_u32(x).unwrap();
|
/// let _ = std::char::from_u32(x).unwrap();
|
||||||
/// ```
|
/// ```
|
||||||
|
@ -135,6 +137,7 @@ declare_clippy_lint! {
|
||||||
/// **Example:**
|
/// **Example:**
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// let _: &str = std::mem::transmute(b); // where b: &[u8]
|
/// let _: &str = std::mem::transmute(b); // where b: &[u8]
|
||||||
|
///
|
||||||
/// // should be:
|
/// // should be:
|
||||||
/// let _ = std::str::from_utf8(b).unwrap();
|
/// let _ = std::str::from_utf8(b).unwrap();
|
||||||
/// ```
|
/// ```
|
||||||
|
@ -153,6 +156,7 @@ declare_clippy_lint! {
|
||||||
/// **Example:**
|
/// **Example:**
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// let _: bool = std::mem::transmute(x); // where x: u8
|
/// let _: bool = std::mem::transmute(x); // where x: u8
|
||||||
|
///
|
||||||
/// // should be:
|
/// // should be:
|
||||||
/// let _: bool = x != 0;
|
/// let _: bool = x != 0;
|
||||||
/// ```
|
/// ```
|
||||||
|
@ -171,6 +175,7 @@ declare_clippy_lint! {
|
||||||
/// **Example:**
|
/// **Example:**
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// let _: f32 = std::mem::transmute(x); // where x: u32
|
/// let _: f32 = std::mem::transmute(x); // where x: u32
|
||||||
|
///
|
||||||
/// // should be:
|
/// // should be:
|
||||||
/// let _: f32 = f32::from_bits(x);
|
/// let _: f32 = f32::from_bits(x);
|
||||||
/// ```
|
/// ```
|
||||||
|
|
|
@ -117,10 +117,9 @@ declare_clippy_lint! {
|
||||||
/// let x = LinkedList::new();
|
/// let x = LinkedList::new();
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub LINKEDLIST,
|
pub LINKEDLIST,
|
||||||
pedantic,
|
pedantic,
|
||||||
"usage of LinkedList, usually a vector is faster, or a more specialized data \
|
"usage of LinkedList, usually a vector is faster, or a more specialized data structure like a VecDeque"
|
||||||
structure like a VecDeque"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for use of `&Box<T>` anywhere in the code.
|
/// **What it does:** Checks for use of `&Box<T>` anywhere in the code.
|
||||||
|
@ -668,10 +667,9 @@ declare_clippy_lint! {
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub CAST_POSSIBLE_TRUNCATION,
|
pub CAST_POSSIBLE_TRUNCATION,
|
||||||
pedantic,
|
pedantic,
|
||||||
"casts that may cause truncation of the value, e.g. `x as u8` where `x: u32`, \
|
"casts that may cause truncation of the value, e.g. `x as u8` where `x: u32`, or `x as i32` where `x: f32`"
|
||||||
or `x as i32` where `x: f32`"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for casts from an unsigned type to a signed type of
|
/// **What it does:** Checks for casts from an unsigned type to a signed type of
|
||||||
|
@ -692,10 +690,9 @@ pedantic,
|
||||||
/// u32::MAX as i32 // will yield a value of `-1`
|
/// u32::MAX as i32 // will yield a value of `-1`
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub CAST_POSSIBLE_WRAP,
|
pub CAST_POSSIBLE_WRAP,
|
||||||
pedantic,
|
pedantic,
|
||||||
"casts that may cause wrapping around the value, e.g. `x as i32` where `x: u32` \
|
"casts that may cause wrapping around the value, e.g. `x as i32` where `x: u32` and `x > i32::MAX`"
|
||||||
and `x > i32::MAX`"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for on casts between numerical types that may
|
/// **What it does:** Checks for on casts between numerical types that may
|
||||||
|
|
|
@ -45,10 +45,9 @@ declare_clippy_lint! {
|
||||||
/// let x = "Hä?"
|
/// let x = "Hä?"
|
||||||
/// ```
|
/// ```
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub NON_ASCII_LITERAL,
|
pub NON_ASCII_LITERAL,
|
||||||
pedantic,
|
pedantic,
|
||||||
"using any literal non-ASCII chars in a string literal instead of \
|
"using any literal non-ASCII chars in a string literal instead of using the `\\u` escape"
|
||||||
using the `\\u` escape"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// **What it does:** Checks for string literals that contain Unicode in a form
|
/// **What it does:** Checks for string literals that contain Unicode in a form
|
||||||
|
@ -63,10 +62,9 @@ pedantic,
|
||||||
/// **Example:** You may not see it, but “à” and “à” aren't the same string. The
|
/// **Example:** You may not see it, but “à” and “à” aren't the same string. The
|
||||||
/// former when escaped is actually `"a\u{300}"` while the latter is `"\u{e0}"`.
|
/// former when escaped is actually `"a\u{300}"` while the latter is `"\u{e0}"`.
|
||||||
declare_clippy_lint! {
|
declare_clippy_lint! {
|
||||||
pub UNICODE_NOT_NFC,
|
pub UNICODE_NOT_NFC,
|
||||||
pedantic,
|
pedantic,
|
||||||
"using a unicode literal not in NFC normal form (see \
|
"using a unicode literal not in NFC normal form (see [unicode tr15](http://www.unicode.org/reports/tr15/) for further information)"
|
||||||
[unicode tr15](http://www.unicode.org/reports/tr15/) for further information)"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Copy, Clone)]
|
#[derive(Copy, Clone)]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue