rust: Allow suppressing experimental warnings
diff --git a/compiler/back_end/experimental/rust/emboss_codegen_rust.py b/compiler/back_end/experimental/rust/emboss_codegen_rust.py index f93a545..cc45f6d 100644 --- a/compiler/back_end/experimental/rust/emboss_codegen_rust.py +++ b/compiler/back_end/experimental/rust/emboss_codegen_rust.py
@@ -949,11 +949,18 @@ def generate_code_and_log_errors( - ir: ir_data.EmbossIr, color_output: ColorOutput + ir: ir_data.EmbossIr, color_output: ColorOutput, show_warnings: bool = True ) -> tuple[Source, ErrorList]: """Generates Rust source code and logs any resulting errors or warnings.""" rust_source, diagnostics = generate_code(ir) + if not show_warnings: + diagnostics = [ + msg_list + for msg_list in diagnostics + if any(msg.severity == error.ERROR for msg in msg_list) + ] + if diagnostics: _show_errors(diagnostics, ir, color_output) @@ -975,6 +982,11 @@ "--output-file", type=str, help="Path to output rust file", required=True ) parser.add_argument("--color-output", type=str, default="auto") + parser.add_argument( + "--no-experimental-warning", + action="store_true", + help="Suppress experimental warnings.", + ) return parser.parse_args(argv[1:]) @@ -982,7 +994,9 @@ with open(flags.input_file) as f: ir = ir_data_utils.IrDataSerializer.from_json(ir_data.EmbossIr, f.read()) - rust_source, errors = generate_code_and_log_errors(ir, flags.color_output) + rust_source, errors = generate_code_and_log_errors( + ir, flags.color_output, not flags.no_experimental_warning + ) if errors: return 1
diff --git a/embossc b/embossc index 472de45..b1907f1 100755 --- a/embossc +++ b/embossc
@@ -62,6 +62,11 @@ default=True, help="Controls generation of EnumTraits by the C++ backend", ) + parser.add_argument( + "--no-experimental-warning", + action="store_true", + help="Suppress experimental warnings", + ) parser.add_argument("input_file", type=str, nargs=1, help=".emb file to compile.") return parser.parse_args(argv[1:]) @@ -74,7 +79,7 @@ ) # pylint:disable=import-outside-toplevel return emboss_codegen_rust.generate_code_and_log_errors( - ir, flags.color_output + ir, flags.color_output, not flags.no_experimental_warning ) case "cc": from compiler.back_end.cpp import (