Say there is a single warning such as path_statements
, unused_variables
. Is there a way to ignore a single instant of this, without isolating them into a code block or function?
To be clear, when there is a single warning in the code. I would like the ability to quiet only that warning, without having to do special changes addressing the particular warning. And without this quieting warnings anywhere else, even later on in the same function.
With GCC this can be done as follows:
#pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wformat" /* Isolated region which doesn't raise warnings! */ this_would_raise_Wformat(args); #pragma GCC diagnostic pop
Does Rust have the equivalent capability?
Note, am asking about the general case of how to quiet warnings. Am aware there are ways to resolve unused var warning for eg.
So for unused_variables errors, you can add #![ allow(unused_variables)] . To avoid warnings in code, You have to add below code at starting in the rust code file. Third way, adding underscore(_) to names of variables, functions,structs.
To silence warnings you have to add the allow(warning_type)
attribute to the affected expression or any of its parents. If you only want to silence the warning on one specific expression, you can add the attribute to that expression/statement:
fn main() { #[allow(unused_variables)] let not_used = 27; #[allow(path_statements)] std::io::stdin; println!("hi!"); }
However, the feature of adding attributes to statements/expressions (as opposed to items, like functions) is still a bit broken. In particular, in the above code, the std::io::stdin
line still triggers a warning. You can read the ongoing discussion about this feature here.
Often it is not necessary to use an attribute though. Many warnings (like unused_variables
and unused_must_use
) can be silenced by using let _ =
as the left side of your statement. In general, any variable that starts with an underscore won't trigger unused-warnings.
If you want to silence all warnings of a kind in a module, write e.g. #![allow(dead_code)]
(note the exclamation mark) at the top of the module. This will disable all warnings of this kind in the whole module. You can also call rustc
with e.g. -A dead_code
.
You can disable all warnings by writing #![allow(warnings)]
at the top of the module.
You can insert a mod
ule (as described in the Rust book) where the specific warnings are ignored.
As Lukas said, you can also write e.g. #[allow(dead_code)]
on a statement or an expression.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With