Deny rust warnings by default.
* "-D warnings" means "deny all warnings" and make them errors.
* Modules with warnings should fix all warnings or use
deny_warnings: false
Bug: 141699953
Test: mm in projects with Rust modules
Change-Id: I6310dee8e34b7780937e8fc1834016a04a943a2f
diff --git a/rust/compiler.go b/rust/compiler.go
index f45744b..6c603df 100644
--- a/rust/compiler.go
+++ b/rust/compiler.go
@@ -25,7 +25,8 @@
func NewBaseCompiler(dir, dir64 string) *baseCompiler {
return &baseCompiler{
Properties: BaseCompilerProperties{
- Edition: &config.DefaultEdition,
+ Edition: &config.DefaultEdition,
+ Deny_warnings: config.DefaultDenyWarnings,
},
dir: dir,
dir64: dir64,
@@ -33,6 +34,9 @@
}
type BaseCompilerProperties struct {
+ // whether to pass "-D warnings" to rustc. Defaults to true.
+ Deny_warnings *bool
+
// flags to pass to rustc
Flags []string `android:"path,arch_variant"`
@@ -109,6 +113,9 @@
func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags) Flags {
+ if Bool(compiler.Properties.Deny_warnings) {
+ flags.RustFlags = append(flags.RustFlags, "-D warnings")
+ }
flags.RustFlags = append(flags.RustFlags, compiler.Properties.Flags...)
flags.RustFlags = append(flags.RustFlags, compiler.featuresToFlags(compiler.Properties.Features)...)
flags.RustFlags = append(flags.RustFlags, "--edition="+*compiler.Properties.Edition)