Deviant Rust:如何禁用所有可能的警告和检查?
Deviant Rust: how can I disable all the warnings and checks possible?
假设我想编写用 rustc
编译的可怕而邪恶的 代码。在不重新编译 Rust 的情况下,我可以禁用多少编译器检查、类型检查和警告?我该怎么做呢?
我正在寻找 no warnings; no strict;
的 Perl 等价物
显然我知道这不是好建议。我想以有趣的方式了解 rustc
的配置选项。
您应该使用 #![allow(warnings, unused)]
来消除警告和任何未使用的参数等。但是,我认为您不能禁用类型检查或其他编译错误:这样做与编译器的目的背道而驰。您可能需要生成语法树,然后通过从源代码中删除行来删除所有错误,直到代码编译(或基于错误建议),类似于 fuckitpy 的工作方式。
例如,让所有警告静音等:
#![allow(warnings, unused)]
unsafe fn iHaTeReAdAbLeCoDe(arg: u8, unused_arg: u32) -> u8 {
let x: i32;
arg
}
pub fn main() {
print!("{:?}", unsafe {
iHaTeReAdAbLeCoDe(5, 0)
});
}
请不要这样做。
假设我想编写用 rustc
编译的可怕而邪恶的 代码。在不重新编译 Rust 的情况下,我可以禁用多少编译器检查、类型检查和警告?我该怎么做呢?
我正在寻找 no warnings; no strict;
显然我知道这不是好建议。我想以有趣的方式了解 rustc
的配置选项。
您应该使用 #![allow(warnings, unused)]
来消除警告和任何未使用的参数等。但是,我认为您不能禁用类型检查或其他编译错误:这样做与编译器的目的背道而驰。您可能需要生成语法树,然后通过从源代码中删除行来删除所有错误,直到代码编译(或基于错误建议),类似于 fuckitpy 的工作方式。
例如,让所有警告静音等:
#![allow(warnings, unused)]
unsafe fn iHaTeReAdAbLeCoDe(arg: u8, unused_arg: u32) -> u8 {
let x: i32;
arg
}
pub fn main() {
print!("{:?}", unsafe {
iHaTeReAdAbLeCoDe(5, 0)
});
}
请不要这样做。