commit
19e305bb57
36 changed files with 86 additions and 46 deletions
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "clippy"
|
||||
# begin autogenerated version
|
||||
version = "0.1.85"
|
||||
version = "0.1.86"
|
||||
# end autogenerated version
|
||||
description = "A bunch of helpful lints to avoid common pitfalls in Rust"
|
||||
repository = "https://github.com/rust-lang/rust-clippy"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "clippy_config"
|
||||
# begin autogenerated version
|
||||
version = "0.1.85"
|
||||
version = "0.1.86"
|
||||
# end autogenerated version
|
||||
edition = "2021"
|
||||
publish = false
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "clippy_lints"
|
||||
# begin autogenerated version
|
||||
version = "0.1.85"
|
||||
version = "0.1.86"
|
||||
# end autogenerated version
|
||||
description = "A bunch of helpful lints to avoid common pitfalls in Rust"
|
||||
repository = "https://github.com/rust-lang/rust-clippy"
|
||||
|
|
|
@ -464,7 +464,7 @@ fn convert_module_item_kind(value: &ItemKind<'_>) -> SourceItemOrderingModuleIte
|
|||
ItemKind::Use(..) => Use,
|
||||
ItemKind::Static(..) => Static,
|
||||
ItemKind::Const(..) => Const,
|
||||
ItemKind::Fn(..) => Fn,
|
||||
ItemKind::Fn { .. } => Fn,
|
||||
ItemKind::Macro(..) => Macro,
|
||||
ItemKind::Mod(..) => Mod,
|
||||
ItemKind::ForeignMod { .. } => ForeignMod,
|
||||
|
|
|
@ -21,7 +21,7 @@ pub(super) fn is_lint_level(symbol: Symbol, attr_id: AttrId) -> bool {
|
|||
}
|
||||
|
||||
pub(super) fn is_relevant_item(cx: &LateContext<'_>, item: &Item<'_>) -> bool {
|
||||
if let ItemKind::Fn(_, _, eid) = item.kind {
|
||||
if let ItemKind::Fn { body: eid, .. } = item.kind {
|
||||
is_relevant_expr(cx, cx.tcx.typeck_body(eid), cx.tcx.hir().body(eid).value)
|
||||
} else {
|
||||
true
|
||||
|
|
|
@ -639,7 +639,7 @@ impl<'tcx> LateLintPass<'tcx> for Documentation {
|
|||
self.check_private_items,
|
||||
);
|
||||
match item.kind {
|
||||
ItemKind::Fn(sig, _, body_id) => {
|
||||
ItemKind::Fn { sig, body: body_id, .. } => {
|
||||
if !(is_entrypoint_fn(cx, item.owner_id.to_def_id())
|
||||
|| in_external_macro(cx.tcx.sess, item.span))
|
||||
{
|
||||
|
|
|
@ -25,7 +25,7 @@ pub(super) fn check(
|
|||
// page. So associated items or impl blocks are not part of this list.
|
||||
ItemKind::Static(..)
|
||||
| ItemKind::Const(..)
|
||||
| ItemKind::Fn(..)
|
||||
| ItemKind::Fn { .. }
|
||||
| ItemKind::Macro(..)
|
||||
| ItemKind::Mod(..)
|
||||
| ItemKind::TyAlias(..)
|
||||
|
|
|
@ -55,7 +55,7 @@ fn unary_pattern(pat: &Pat<'_>) -> bool {
|
|||
| PatKind::Err(_) => false,
|
||||
PatKind::Struct(_, a, etc) => !etc && a.iter().all(|x| unary_pattern(x.pat)),
|
||||
PatKind::Tuple(a, etc) | PatKind::TupleStruct(_, a, etc) => etc.as_opt_usize().is_none() && array_rec(a),
|
||||
PatKind::Ref(x, _) | PatKind::Box(x) | PatKind::Deref(x) => unary_pattern(x),
|
||||
PatKind::Ref(x, _) | PatKind::Box(x) | PatKind::Deref(x) | PatKind::Guard(x, _) => unary_pattern(x),
|
||||
PatKind::Path(_) | PatKind::Lit(_) => true,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ impl<'tcx> LateLintPass<'tcx> for Exit {
|
|||
&& let Some(def_id) = cx.qpath_res(path, path_expr.hir_id).opt_def_id()
|
||||
&& cx.tcx.is_diagnostic_item(sym::process_exit, def_id)
|
||||
&& let parent = cx.tcx.hir().get_parent_item(e.hir_id)
|
||||
&& let OwnerNode::Item(Item{kind: ItemKind::Fn(..), ..}) = cx.tcx.hir_owner_node(parent)
|
||||
&& let OwnerNode::Item(Item{kind: ItemKind::Fn{ .. }, ..}) = cx.tcx.hir_owner_node(parent)
|
||||
// If the next item up is a function we check if it is an entry point
|
||||
// and only then emit a linter warning
|
||||
&& !is_entrypoint_fn(cx, parent.to_def_id())
|
||||
|
|
|
@ -253,7 +253,11 @@ fn is_empty_body(cx: &LateContext<'_>, body: BodyId) -> bool {
|
|||
|
||||
impl<'tcx> LateLintPass<'tcx> for ExtraUnusedTypeParameters {
|
||||
fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'tcx>) {
|
||||
if let ItemKind::Fn(_, generics, body_id) = item.kind
|
||||
if let ItemKind::Fn {
|
||||
generics,
|
||||
body: body_id,
|
||||
..
|
||||
} = item.kind
|
||||
&& !generics.params.is_empty()
|
||||
&& !is_empty_body(cx, body_id)
|
||||
&& (!self.avoid_breaking_exported_api || !cx.effective_visibilities.is_exported(item.owner_id.def_id))
|
||||
|
|
|
@ -24,7 +24,12 @@ use super::{DOUBLE_MUST_USE, MUST_USE_CANDIDATE, MUST_USE_UNIT};
|
|||
pub(super) fn check_item<'tcx>(cx: &LateContext<'tcx>, item: &'tcx hir::Item<'_>) {
|
||||
let attrs = cx.tcx.hir().attrs(item.hir_id());
|
||||
let attr = cx.tcx.get_attr(item.owner_id, sym::must_use);
|
||||
if let hir::ItemKind::Fn(ref sig, _generics, ref body_id) = item.kind {
|
||||
if let hir::ItemKind::Fn {
|
||||
ref sig,
|
||||
body: ref body_id,
|
||||
..
|
||||
} = item.kind
|
||||
{
|
||||
let is_public = cx.effective_visibilities.is_exported(item.owner_id.def_id);
|
||||
let fn_header_span = item.span.with_hi(sig.decl.output.span().hi());
|
||||
if let Some(attr) = attr {
|
||||
|
|
|
@ -36,7 +36,7 @@ fn result_err_ty<'tcx>(
|
|||
}
|
||||
|
||||
pub(super) fn check_item<'tcx>(cx: &LateContext<'tcx>, item: &hir::Item<'tcx>, large_err_threshold: u64, msrv: &Msrv) {
|
||||
if let hir::ItemKind::Fn(ref sig, _generics, _) = item.kind
|
||||
if let hir::ItemKind::Fn { ref sig, .. } = item.kind
|
||||
&& let Some((hir_ty, err_ty)) = result_err_ty(cx, sig.decl, item.owner_id.def_id, item.span)
|
||||
{
|
||||
if cx.effective_visibilities.is_exported(item.owner_id.def_id) {
|
||||
|
|
|
@ -149,7 +149,12 @@ impl<'tcx> LateLintPass<'tcx> for ImplicitHasher {
|
|||
);
|
||||
}
|
||||
},
|
||||
ItemKind::Fn(ref sig, generics, body_id) => {
|
||||
ItemKind::Fn {
|
||||
ref sig,
|
||||
generics,
|
||||
body: body_id,
|
||||
..
|
||||
} => {
|
||||
let body = cx.tcx.hir().body(body_id);
|
||||
|
||||
for ty in sig.decl.inputs {
|
||||
|
|
|
@ -95,7 +95,13 @@ declare_lint_pass!(Lifetimes => [NEEDLESS_LIFETIMES, EXTRA_UNUSED_LIFETIMES]);
|
|||
|
||||
impl<'tcx> LateLintPass<'tcx> for Lifetimes {
|
||||
fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'_>) {
|
||||
if let ItemKind::Fn(ref sig, generics, id) = item.kind {
|
||||
if let ItemKind::Fn {
|
||||
ref sig,
|
||||
generics,
|
||||
body: id,
|
||||
..
|
||||
} = item.kind
|
||||
{
|
||||
check_fn_inner(cx, sig, Some(id), None, generics, item.span, true);
|
||||
} else if let ItemKind::Impl(impl_) = item.kind {
|
||||
if !item.span.from_expansion() {
|
||||
|
|
|
@ -75,7 +75,11 @@ fn get_parent_fn_ret_ty<'tcx>(cx: &LateContext<'tcx>, expr: &Expr<'_>) -> Option
|
|||
..
|
||||
}) => (),
|
||||
Node::Item(hir::Item {
|
||||
kind: hir::ItemKind::Fn(FnSig { decl, .. }, _, _),
|
||||
kind:
|
||||
hir::ItemKind::Fn {
|
||||
sig: FnSig { decl, .. },
|
||||
..
|
||||
},
|
||||
..
|
||||
})
|
||||
| Node::TraitItem(hir::TraitItem {
|
||||
|
|
|
@ -254,9 +254,11 @@ impl<'a> NormalizedPat<'a> {
|
|||
fn from_pat(cx: &LateContext<'_>, arena: &'a DroplessArena, pat: &'a Pat<'_>) -> Self {
|
||||
match pat.kind {
|
||||
PatKind::Wild | PatKind::Binding(.., None) => Self::Wild,
|
||||
PatKind::Binding(.., Some(pat)) | PatKind::Box(pat) | PatKind::Deref(pat) | PatKind::Ref(pat, _) => {
|
||||
Self::from_pat(cx, arena, pat)
|
||||
},
|
||||
PatKind::Binding(.., Some(pat))
|
||||
| PatKind::Box(pat)
|
||||
| PatKind::Deref(pat)
|
||||
| PatKind::Ref(pat, _)
|
||||
| PatKind::Guard(pat, _) => Self::from_pat(cx, arena, pat),
|
||||
PatKind::Never => Self::Never,
|
||||
PatKind::Struct(ref path, fields, _) => {
|
||||
let fields =
|
||||
|
|
|
@ -133,7 +133,7 @@ fn expr_ty_matches_p_ty(cx: &LateContext<'_>, expr: &Expr<'_>, p_expr: &Expr<'_>
|
|||
},
|
||||
// compare match_expr ty with RetTy in `fn foo() -> RetTy`
|
||||
Node::Item(item) => {
|
||||
if let ItemKind::Fn(..) = item.kind {
|
||||
if let ItemKind::Fn { .. } = item.kind {
|
||||
let output = cx
|
||||
.tcx
|
||||
.fn_sig(item.owner_id)
|
||||
|
|
|
@ -343,6 +343,10 @@ impl<'a> PatState<'a> {
|
|||
matches!(self, Self::Wild)
|
||||
},
|
||||
|
||||
PatKind::Guard(..) => {
|
||||
matches!(self, Self::Wild)
|
||||
},
|
||||
|
||||
// Patterns for things which can only contain a single sub-pattern.
|
||||
PatKind::Binding(_, _, _, Some(pat)) | PatKind::Ref(pat, _) | PatKind::Box(pat) | PatKind::Deref(pat) => {
|
||||
self.add_pat(cx, pat)
|
||||
|
|
|
@ -496,7 +496,7 @@ fn can_change_type<'a>(cx: &LateContext<'a>, mut expr: &'a Expr<'a>, mut ty: Ty<
|
|||
Node::Stmt(_) => return true,
|
||||
Node::Block(..) => {},
|
||||
Node::Item(item) => {
|
||||
if let ItemKind::Fn(_, _, body_id) = &item.kind
|
||||
if let ItemKind::Fn { body: body_id, .. } = &item.kind
|
||||
&& let output_ty = return_ty(cx, item.owner_id)
|
||||
&& rustc_hir_typeck::can_coerce(cx.tcx, cx.param_env, item.owner_id.def_id, ty, output_ty)
|
||||
{
|
||||
|
|
|
@ -192,7 +192,7 @@ impl<'tcx> LateLintPass<'tcx> for MissingDoc {
|
|||
|
||||
fn check_item(&mut self, cx: &LateContext<'tcx>, it: &'tcx hir::Item<'_>) {
|
||||
match it.kind {
|
||||
hir::ItemKind::Fn(..) => {
|
||||
hir::ItemKind::Fn { .. } => {
|
||||
// ignore main()
|
||||
if it.ident.name == sym::main {
|
||||
let at_root = cx.tcx.local_parent(it.owner_id.def_id) == CRATE_DEF_ID;
|
||||
|
|
|
@ -96,7 +96,7 @@ impl<'tcx> LateLintPass<'tcx> for MissingInline {
|
|||
return;
|
||||
}
|
||||
match it.kind {
|
||||
hir::ItemKind::Fn(..) => {
|
||||
hir::ItemKind::Fn { .. } => {
|
||||
let desc = "a function";
|
||||
let attrs = cx.tcx.hir().attrs(it.hir_id());
|
||||
check_missing_inline_attrs(cx, attrs, it.span, desc);
|
||||
|
|
|
@ -76,7 +76,7 @@ impl_lint_pass!(MutableKeyType<'_> => [ MUTABLE_KEY_TYPE ]);
|
|||
|
||||
impl<'tcx> LateLintPass<'tcx> for MutableKeyType<'tcx> {
|
||||
fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx hir::Item<'tcx>) {
|
||||
if let hir::ItemKind::Fn(ref sig, ..) = item.kind {
|
||||
if let hir::ItemKind::Fn { ref sig, .. } = item.kind {
|
||||
self.check_sig(cx, item.owner_id.def_id, sig.decl);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -144,7 +144,7 @@ impl NoEffect {
|
|||
|diag| {
|
||||
for parent in cx.tcx.hir().parent_iter(stmt.hir_id) {
|
||||
if let Node::Item(item) = parent.1
|
||||
&& let ItemKind::Fn(..) = item.kind
|
||||
&& let ItemKind::Fn { .. } = item.kind
|
||||
&& let Node::Block(block) = cx.tcx.parent_hir_node(stmt.hir_id)
|
||||
&& let [.., final_stmt] = block.stmts
|
||||
&& final_stmt.hir_id == stmt.hir_id
|
||||
|
|
|
@ -37,7 +37,7 @@ declare_lint_pass!(NoMangleWithRustAbi => [NO_MANGLE_WITH_RUST_ABI]);
|
|||
|
||||
impl<'tcx> LateLintPass<'tcx> for NoMangleWithRustAbi {
|
||||
fn check_item(&mut self, cx: &LateContext<'tcx>, item: &'tcx Item<'tcx>) {
|
||||
if let ItemKind::Fn(fn_sig, _, _) = &item.kind {
|
||||
if let ItemKind::Fn { sig: fn_sig, .. } = &item.kind {
|
||||
let attrs = cx.tcx.hir().attrs(item.hir_id());
|
||||
let mut app = Applicability::MaybeIncorrect;
|
||||
let fn_snippet = snippet_with_applicability(cx, fn_sig.span.with_hi(item.ident.span.lo()), "..", &mut app);
|
||||
|
|
|
@ -189,7 +189,7 @@ impl<'tcx> LateLintPass<'tcx> for Ptr {
|
|||
let mut parents = hir.parent_iter(body.value.hir_id);
|
||||
let (item_id, sig, is_trait_item) = match parents.next() {
|
||||
Some((_, Node::Item(i))) => {
|
||||
if let ItemKind::Fn(sig, ..) = &i.kind {
|
||||
if let ItemKind::Fn { sig, .. } = &i.kind {
|
||||
(i.owner_id, sig, false)
|
||||
} else {
|
||||
return;
|
||||
|
|
|
@ -204,7 +204,7 @@ impl<'tcx> LateLintPass<'tcx> for Return {
|
|||
|
||||
// Ensure this is not the final stmt, otherwise removing it would cause a compile error
|
||||
&& let OwnerNode::Item(item) = cx.tcx.hir_owner_node(cx.tcx.hir().get_parent_item(expr.hir_id))
|
||||
&& let ItemKind::Fn(_, _, body) = item.kind
|
||||
&& let ItemKind::Fn { body, .. } = item.kind
|
||||
&& let block = cx.tcx.hir().body(body).value
|
||||
&& let ExprKind::Block(block, _) = block.kind
|
||||
&& !is_inside_let_else(cx.tcx, expr)
|
||||
|
|
|
@ -130,9 +130,9 @@ impl LateLintPass<'_> for UnnecessaryBoxReturns {
|
|||
}
|
||||
|
||||
fn check_item(&mut self, cx: &LateContext<'_>, item: &Item<'_>) {
|
||||
let ItemKind::Fn(signature, ..) = &item.kind else {
|
||||
let ItemKind::Fn { sig, .. } = &item.kind else {
|
||||
return;
|
||||
};
|
||||
self.check_fn_item(cx, signature.decl, item.owner_id.def_id, item.ident.name);
|
||||
self.check_fn_item(cx, sig.decl, item.owner_id.def_id, item.ident.name);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -712,6 +712,12 @@ impl<'a, 'tcx> PrintVisitor<'a, 'tcx> {
|
|||
kind!("Ref({pat}, Mutability::{muta:?})");
|
||||
self.pat(pat);
|
||||
},
|
||||
PatKind::Guard(pat, cond) => {
|
||||
bind!(self, pat, cond);
|
||||
kind!("Guard({pat}, {cond})");
|
||||
self.pat(pat);
|
||||
self.expr(cond);
|
||||
},
|
||||
PatKind::Lit(lit_expr) => {
|
||||
bind!(self, lit_expr);
|
||||
kind!("Lit({lit_expr})");
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "clippy_utils"
|
||||
# begin autogenerated version
|
||||
version = "0.1.85"
|
||||
version = "0.1.86"
|
||||
# end autogenerated version
|
||||
edition = "2021"
|
||||
description = "Helpful tools for writing lints, provided as they are used in Clippy"
|
||||
|
|
|
@ -8,7 +8,7 @@ This crate is only guaranteed to build with this `nightly` toolchain:
|
|||
|
||||
<!-- begin autogenerated nightly -->
|
||||
```
|
||||
nightly-2024-12-26
|
||||
nightly-2025-01-09
|
||||
```
|
||||
<!-- end autogenerated nightly -->
|
||||
|
||||
|
|
|
@ -245,7 +245,7 @@ fn item_search_pat(item: &Item<'_>) -> (Pat, Pat) {
|
|||
ItemKind::ExternCrate(_) => (Pat::Str("extern"), Pat::Str(";")),
|
||||
ItemKind::Static(..) => (Pat::Str("static"), Pat::Str(";")),
|
||||
ItemKind::Const(..) => (Pat::Str("const"), Pat::Str(";")),
|
||||
ItemKind::Fn(sig, ..) => (fn_header_search_pat(sig.header), Pat::Str("")),
|
||||
ItemKind::Fn { sig, .. } => (fn_header_search_pat(sig.header), Pat::Str("")),
|
||||
ItemKind::ForeignMod { .. } => (Pat::Str("extern"), Pat::Str("}")),
|
||||
ItemKind::TyAlias(..) => (Pat::Str("type"), Pat::Str(";")),
|
||||
ItemKind::Enum(..) => (Pat::Str("enum"), Pat::Str("}")),
|
||||
|
|
|
@ -1104,6 +1104,10 @@ impl<'a, 'tcx> SpanlessHash<'a, 'tcx> {
|
|||
self.hash_pat(pat);
|
||||
std::mem::discriminant(&mu).hash(&mut self.s);
|
||||
},
|
||||
PatKind::Guard(pat, guard) => {
|
||||
self.hash_pat(pat);
|
||||
self.hash_expr(guard);
|
||||
},
|
||||
PatKind::Slice(l, m, r) => {
|
||||
for pat in l {
|
||||
self.hash_pat(pat);
|
||||
|
|
|
@ -1397,7 +1397,7 @@ pub fn get_enclosing_block<'tcx>(cx: &LateContext<'tcx>, hir_id: HirId) -> Optio
|
|||
enclosing_node.and_then(|node| match node {
|
||||
Node::Block(block) => Some(block),
|
||||
Node::Item(&Item {
|
||||
kind: ItemKind::Fn(_, _, eid),
|
||||
kind: ItemKind::Fn { body: eid, .. },
|
||||
..
|
||||
})
|
||||
| Node::ImplItem(&ImplItem {
|
||||
|
@ -1776,7 +1776,7 @@ pub fn is_refutable(cx: &LateContext<'_>, pat: &Pat<'_>) -> bool {
|
|||
},
|
||||
}
|
||||
},
|
||||
PatKind::Lit(..) | PatKind::Range(..) | PatKind::Err(_) | PatKind::Deref(_) => true,
|
||||
PatKind::Lit(..) | PatKind::Range(..) | PatKind::Err(_) | PatKind::Deref(_) | PatKind::Guard(..) => true,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2564,7 +2564,7 @@ pub fn is_in_test_function(tcx: TyCtxt<'_>, id: HirId) -> bool {
|
|||
// function scope
|
||||
.any(|(_id, node)| {
|
||||
if let Node::Item(item) = node {
|
||||
if let ItemKind::Fn(_, _, _) = item.kind {
|
||||
if let ItemKind::Fn { .. } = item.kind {
|
||||
// Note that we have sorted the item names in the visitor,
|
||||
// so the binary_search gets the same as `contains`, but faster.
|
||||
return names.binary_search(&item.ident.name).is_ok();
|
||||
|
@ -2721,7 +2721,7 @@ impl<'tcx> ExprUseCtxt<'tcx> {
|
|||
}) => ExprUseNode::ConstStatic(owner_id),
|
||||
|
||||
Node::Item(&Item {
|
||||
kind: ItemKind::Fn(..),
|
||||
kind: ItemKind::Fn { .. },
|
||||
owner_id,
|
||||
..
|
||||
})
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[toolchain]
|
||||
# begin autogenerated nightly
|
||||
channel = "nightly-2024-12-26"
|
||||
channel = "nightly-2025-01-09"
|
||||
# end autogenerated nightly
|
||||
components = ["cargo", "llvm-tools", "rust-src", "rust-std", "rustc", "rustc-dev", "rustfmt"]
|
||||
profile = "minimal"
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
|
||||
thread '<unnamed>' panicked at clippy_lints/src/utils/internal_lints/produce_ice.rs:
|
||||
Would you like some help with that?
|
||||
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
|
||||
|
|
|
@ -1,12 +1,3 @@
|
|||
error: use of a disallowed macro `std::vec`
|
||||
--> tests/ui-toml/disallowed_macros/disallowed_macros.rs:16:5
|
||||
|
|
||||
LL | vec![1, 2, 3];
|
||||
| ^^^^^^^^^^^^^
|
||||
|
|
||||
= note: `-D clippy::disallowed-macros` implied by `-D warnings`
|
||||
= help: to override `-D warnings` add `#[allow(clippy::disallowed_macros)]`
|
||||
|
||||
error: use of a disallowed macro `serde::Serialize`
|
||||
--> tests/ui-toml/disallowed_macros/disallowed_macros.rs:18:14
|
||||
|
|
||||
|
@ -14,6 +5,8 @@ LL | #[derive(Serialize)]
|
|||
| ^^^^^^^^^
|
||||
|
|
||||
= note: no serializing
|
||||
= note: `-D clippy::disallowed-macros` implied by `-D warnings`
|
||||
= help: to override `-D warnings` add `#[allow(clippy::disallowed_macros)]`
|
||||
|
||||
error: use of a disallowed macro `macros::attr`
|
||||
--> tests/ui-toml/disallowed_macros/disallowed_macros.rs:31:1
|
||||
|
@ -47,6 +40,12 @@ error: use of a disallowed macro `std::cfg`
|
|||
LL | cfg!(unix);
|
||||
| ^^^^^^^^^^
|
||||
|
||||
error: use of a disallowed macro `std::vec`
|
||||
--> tests/ui-toml/disallowed_macros/disallowed_macros.rs:16:5
|
||||
|
|
||||
LL | vec![1, 2, 3];
|
||||
| ^^^^^^^^^^^^^
|
||||
|
||||
error: use of a disallowed macro `macros::expr`
|
||||
--> tests/ui-toml/disallowed_macros/disallowed_macros.rs:21:13
|
||||
|
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue