Compiler errors 异常锈蚀:如何禁用所有可能的警告和检查?

Compiler errors 异常锈蚀:如何禁用所有可能的警告和检查?,compiler-errors,rust,warnings,dangerous-request,Compiler Errors,Rust,Warnings,Dangerous Request,让我们假设我想要编写用rustc编译的可怕而邪恶的代码。在不重新编译的情况下,我可以禁用多少编译器检查、类型检查和警告?我该怎么做呢 我正在寻找与Perl相当的无警告;不严格 显然我知道这不是个好建议。我想了解一下rustc的配置选项的乐趣所在。您应该使用\![允许(警告,未使用)]。但是,我不相信您可以禁用类型检查或其他编译错误:这样做与编译器的目的背道而驰。您可能需要生成一个语法树,然后通过从源代码中删除行来删除任何错误,直到代码编译(或基于错误建议),这与工作原理类似 例如,要使所有警告

让我们假设我想要编写用
rustc
编译的可怕而邪恶的代码。在不重新编译的情况下,我可以禁用多少编译器检查、类型检查和警告?我该怎么做呢

我正在寻找与Perl相当的
无警告;不严格



显然我知道这不是个好建议。我想了解一下
rustc的配置选项的乐趣所在。

您应该使用
\![允许(警告,未使用)]
。但是,我不相信您可以禁用类型检查或其他编译错误:这样做与编译器的目的背道而驰。您可能需要生成一个语法树,然后通过从源代码中删除行来删除任何错误,直到代码编译(或基于错误建议),这与工作原理类似

例如,要使所有警告静音,请执行以下操作:

#![allow(warnings, unused)]

unsafe fn iHaTeReAdAbLeCoDe(arg: u8, unused_arg: u32) -> u8 {
    let x: i32;
    arg
}

pub fn main() {
    print!("{:?}", unsafe {

                iHaTeReAdAbLeCoDe(5, 0)
    });
}

请不要这样做。

允许,这种代码会使任何rust编译器不兼容,您的要求与rust完全相反。这是没有道理的。“类型检查”并不是你真正可以关闭的东西;这是编译器理解代码的基础。不进行类型检查的代码不仅不安全,而且毫无意义。有些警告可以关闭,大多数被认为是“lints”,但大多数警告都是类型系统的一部分——根本没有理由使用关闭开关。