I'm writing a program in Rust and I have some tests for it. I wrote a helper function for these tests, but whenever I build using cargo build
it warns me that the function is never used:
warning: function is never used: ... #[warn(dead_code)] on by default
How I can mark this function as used so as not to get the warnings?
If something is only used in tests, it should be omitted altogether. This can be done with the
#[cfg(test)]
attribute.Specific question
The Rust compiler runs many lints to warn you about possible issues in your code and the
dead_code
lint is one of them. It can be very useful in pointing out mistakes when code is complete, but may also be a nuisance at earlier stages. However, all lints can be turned off byallow
ing them, and your error message (#[warn(dead_code)] on by default
) contains the name of the lint you could disable.Alternative for testing
This happens to be a special case, which is that code that is only used for testing isn't needed in the real executable and should probably not be included.
In order to optionally disable compilation of test code, you can mark it accordingly using the
cfg
attribute with thetest
profile.When marked in this way, the compiler knows to ignore the method during compilation. This is similar to commonly used
ifdef
usage in other languages like C or C++, where you are telling a preprocessor to ignore the enclosed code unlessTESTING
is defined.dead_code
is a lint, which means you canallow
it on the thing that's causing it to trigger.