diff --git a/Changelog.md b/Changelog.md index c7bf10c8a..50dc4540e 100644 --- a/Changelog.md +++ b/Changelog.md @@ -6,6 +6,8 @@ Language Features: Compiler Features: + * Commandline Interface: Allow the use of ``--via-ir`` in place of ``--experimental-via-ir``. + * Compilation via Yul IR is no longer marked as experimental. * JSON-AST: Added selector field for errors and events. * LSP: Implements goto-definition. * Peephole Optimizer: Optimize comparisons in front of conditional jumps and conditional jumps across a single unconditional jump. diff --git a/docs/internals/layout_in_storage.rst b/docs/internals/layout_in_storage.rst index 4682d640c..599cd03d3 100644 --- a/docs/internals/layout_in_storage.rst +++ b/docs/internals/layout_in_storage.rst @@ -140,8 +140,7 @@ by checking if the lowest bit is set: short (not set) and long (set). .. note:: Handling invalidly encoded slots is currently not supported but may be added in the future. - If you are compiling via the experimental IR-based compiler pipeline, reading an invalidly encoded - slot results in a ``Panic(0x22)`` error. + If you are compiling via IR, reading an invalidly encoded slot results in a ``Panic(0x22)`` error. JSON Output =========== diff --git a/docs/internals/optimizer.rst b/docs/internals/optimizer.rst index a7eff7346..1d6c214e5 100644 --- a/docs/internals/optimizer.rst +++ b/docs/internals/optimizer.rst @@ -23,7 +23,7 @@ call completely. Currently, the parameter ``--optimize`` activates the opcode-based optimizer for the generated bytecode and the Yul optimizer for the Yul code generated internally, for example for ABI coder v2. One can use ``solc --ir-optimized --optimize`` to produce an -optimized experimental Yul IR for a Solidity source. Similarly, one can use ``solc --strict-assembly --optimize`` +optimized Yul IR for a Solidity source. Similarly, one can use ``solc --strict-assembly --optimize`` for a stand-alone Yul mode. You can find more details on both optimizer modules and their optimization steps below. diff --git a/docs/ir-breaking-changes.rst b/docs/ir-breaking-changes.rst index 3fce53b3b..f235accaf 100644 --- a/docs/ir-breaking-changes.rst +++ b/docs/ir-breaking-changes.rst @@ -15,11 +15,7 @@ The IR-based code generator was introduced with an aim to not only allow code generation to be more transparent and auditable but also to enable more powerful optimization passes that span across functions. -Currently, the IR-based code generator is still marked experimental, -but it supports all language features and has received a lot of testing, -so we consider it almost ready for production use. - -You can enable it on the command line using ``--experimental-via-ir`` +You can enable it on the command line using ``--via-ir`` or with the option ``{"viaIR": true}`` in standard-json and we encourage everyone to try it out! diff --git a/docs/using-the-compiler.rst b/docs/using-the-compiler.rst index 067c96c96..3c2ec38f9 100644 --- a/docs/using-the-compiler.rst +++ b/docs/using-the-compiler.rst @@ -298,7 +298,7 @@ Input Description // tangerineWhistle, spuriousDragon, byzantium, constantinople, petersburg, istanbul or berlin "evmVersion": "byzantium", // Optional: Change compilation pipeline to go through the Yul intermediate representation. - // This is a highly EXPERIMENTAL feature, not to be used for production. This is false by default. + // This is false by default. "viaIR": true, // Optional: Debugging settings "debug": { diff --git a/libsolidity/codegen/ir/IRGenerator.cpp b/libsolidity/codegen/ir/IRGenerator.cpp index 672520c6d..cb62cc292 100644 --- a/libsolidity/codegen/ir/IRGenerator.cpp +++ b/libsolidity/codegen/ir/IRGenerator.cpp @@ -93,7 +93,7 @@ pair IRGenerator::run( map const& _otherYulSources ) { - string const ir = yul::reindent(generate(_contract, _cborMetadata, _otherYulSources)); + string ir = yul::reindent(generate(_contract, _cborMetadata, _otherYulSources)); yul::AssemblyStack asmStack( m_evmVersion, @@ -113,15 +113,7 @@ pair IRGenerator::run( } asmStack.optimize(); - string warning = - "/*=====================================================*\n" - " * WARNING *\n" - " * Solidity to Yul compilation is still EXPERIMENTAL *\n" - " * It can result in LOSS OF FUNDS or worse *\n" - " * !USE AT YOUR OWN RISK! *\n" - " *=====================================================*/\n\n"; - - return {warning + ir, warning + asmStack.print(m_context.soliditySourceProvider())}; + return {move(ir), asmStack.print(m_context.soliditySourceProvider())}; } string IRGenerator::generate( diff --git a/libsolidity/interface/CompilerStack.cpp b/libsolidity/interface/CompilerStack.cpp index 3eb25987d..de5bea137 100644 --- a/libsolidity/interface/CompilerStack.cpp +++ b/libsolidity/interface/CompilerStack.cpp @@ -1677,7 +1677,7 @@ bytes CompilerStack::createCBORMetadata(Contract const& _contract, bool _forIR) else solAssert(m_metadataHash == MetadataHash::None, "Invalid metadata hash"); - if (experimentalMode || _forIR) + if (experimentalMode) encoder.pushBool("experimental", true); if (m_metadataFormat == MetadataFormat::WithReleaseVersionTag) encoder.pushBytes("solc", VersionCompactBytes); diff --git a/libsolidity/interface/CompilerStack.h b/libsolidity/interface/CompilerStack.h index c1f15a480..e5bc9b345 100644 --- a/libsolidity/interface/CompilerStack.h +++ b/libsolidity/interface/CompilerStack.h @@ -189,7 +189,7 @@ public: /// Enable EVM Bytecode generation. This is enabled by default. void enableEvmBytecodeGeneration(bool _enable = true) { m_generateEvmBytecode = _enable; } - /// Enable experimental generation of Yul IR code. + /// Enable generation of Yul IR code. void enableIRGeneration(bool _enable = true) { m_generateIR = _enable; } /// Enable experimental generation of Ewasm code. If enabled, IR is also generated. @@ -373,8 +373,8 @@ private: std::shared_ptr evmRuntimeAssembly; evmasm::LinkerObject object; ///< Deployment object (includes the runtime sub-object). evmasm::LinkerObject runtimeObject; ///< Runtime object. - std::string yulIR; ///< Experimental Yul IR code. - std::string yulIROptimized; ///< Optimized experimental Yul IR code. + std::string yulIR; ///< Yul IR code. + std::string yulIROptimized; ///< Optimized Yul IR code. std::string ewasm; ///< Experimental Ewasm text representation evmasm::LinkerObject ewasmObject; ///< Experimental Ewasm code util::LazyInit metadata; ///< The metadata json that will be hashed into the chain. @@ -447,8 +447,7 @@ private: /// Can only be called after state is SourcesSet. Source const& source(std::string const& _sourceName) const; - /// @param _forIR If true, include a flag that indicates that the bytecode comes from the - /// experimental IR codegen. + /// @param _forIR If true, include a flag that indicates that the bytecode comes from IR codegen. /// @returns the metadata JSON as a compact string for the given contract. std::string createMetadata(Contract const& _contract, bool _forIR) const; diff --git a/libsolidity/interface/StandardCompiler.cpp b/libsolidity/interface/StandardCompiler.cpp index 93ac20b03..31400ccad 100644 --- a/libsolidity/interface/StandardCompiler.cpp +++ b/libsolidity/interface/StandardCompiler.cpp @@ -1448,10 +1448,6 @@ Json::Value StandardCompiler::compileYul(InputsAndSettings _inputsAndSettings) return output; } - // TODO: move this warning to AssemblyStack - output["errors"] = Json::arrayValue; - output["errors"].append(formatError(Error::Severity::Warning, "Warning", "general", "Yul is still experimental. Please use the output with care.")); - string contractName = stack.parserResult()->name.str(); bool const wildcardMatchesExperimental = true; diff --git a/scripts/common_cmdline.sh b/scripts/common_cmdline.sh index 3efeadc03..d364f6444 100644 --- a/scripts/common_cmdline.sh +++ b/scripts/common_cmdline.sh @@ -69,7 +69,6 @@ function compileFull local exit_code=$? local errors; errors=$(grep -v -E \ -e 'Warning: This is a pre-release compiler version|Warning: Experimental features are turned on|pragma experimental ABIEncoderV2|^ +--> |^ +\||^[0-9]+ +\| ' \ - -e 'Warning: Yul is still experimental. Please use the output with care.' \ -e '^No text representation found.$' < "$stderr_path" ) diff --git a/solc/CommandLineInterface.cpp b/solc/CommandLineInterface.cpp index 03679bd7c..55b703392 100644 --- a/solc/CommandLineInterface.cpp +++ b/solc/CommandLineInterface.cpp @@ -693,7 +693,7 @@ void CommandLineInterface::compile() m_compiler->setModelCheckerSettings(m_options.modelChecker.settings); m_compiler->setRemappings(m_options.input.remappings); m_compiler->setLibraries(m_options.linker.libraries); - m_compiler->setViaIR(m_options.output.experimentalViaIR); + m_compiler->setViaIR(m_options.output.viaIR); m_compiler->setEVMVersion(m_options.output.evmVersion); m_compiler->setRevertStringBehaviour(m_options.output.revertStrings); if (m_options.output.debugInfoSelection.has_value()) @@ -1017,8 +1017,6 @@ void CommandLineInterface::assemble(yul::AssemblyStack::Language _language, yul: { solAssert(m_options.input.mode == InputMode::Assembler, ""); - serr() << "Warning: Yul is still experimental. Please use the output with care." << endl; - bool successful = true; map assemblyStacks; for (auto const& src: m_fileReader.sourceUnits()) diff --git a/solc/CommandLineParser.cpp b/solc/CommandLineParser.cpp index 8f6d549f2..4cc346737 100644 --- a/solc/CommandLineParser.cpp +++ b/solc/CommandLineParser.cpp @@ -47,6 +47,7 @@ static string const g_strErrorRecovery = "error-recovery"; static string const g_strEVM = "evm"; static string const g_strEVMVersion = "evm-version"; static string const g_strEwasm = "ewasm"; +static string const g_strViaIR = "via-ir"; static string const g_strExperimentalViaIR = "experimental-via-ir"; static string const g_strGas = "gas"; static string const g_strHelp = "help"; @@ -225,7 +226,7 @@ bool CommandLineOptions::operator==(CommandLineOptions const& _other) const noex output.dir == _other.output.dir && output.overwriteFiles == _other.output.overwriteFiles && output.evmVersion == _other.output.evmVersion && - output.experimentalViaIR == _other.output.experimentalViaIR && + output.viaIR == _other.output.viaIR && output.revertStrings == _other.output.revertStrings && output.debugInfoSelection == _other.output.debugInfoSelection && output.stopAfter == _other.output.stopAfter && @@ -578,7 +579,11 @@ General Information)").c_str(), ) ( g_strExperimentalViaIR.c_str(), - "Turn on experimental compilation mode via the IR (EXPERIMENTAL)." + "Deprecated synonym of --via-ir." + ) + ( + g_strViaIR.c_str(), + "Turn on compilation mode via the IR." ) ( g_strRevertStrings.c_str(), @@ -706,8 +711,8 @@ General Information)").c_str(), (CompilerOutputs::componentName(&CompilerOutputs::binary).c_str(), "Binary of the contracts in hex.") (CompilerOutputs::componentName(&CompilerOutputs::binaryRuntime).c_str(), "Binary of the runtime part of the contracts in hex.") (CompilerOutputs::componentName(&CompilerOutputs::abi).c_str(), "ABI specification of the contracts.") - (CompilerOutputs::componentName(&CompilerOutputs::ir).c_str(), "Intermediate Representation (IR) of all contracts (EXPERIMENTAL).") - (CompilerOutputs::componentName(&CompilerOutputs::irOptimized).c_str(), "Optimized intermediate Representation (IR) of all contracts (EXPERIMENTAL).") + (CompilerOutputs::componentName(&CompilerOutputs::ir).c_str(), "Intermediate Representation (IR) of all contracts.") + (CompilerOutputs::componentName(&CompilerOutputs::irOptimized).c_str(), "Optimized intermediate Representation (IR) of all contracts.") (CompilerOutputs::componentName(&CompilerOutputs::ewasm).c_str(), "Ewasm text representation of all contracts (EXPERIMENTAL).") (CompilerOutputs::componentName(&CompilerOutputs::ewasmIR).c_str(), "Intermediate representation (IR) converted to a form that can be translated directly into Ewasm text representation (EXPERIMENTAL).") (CompilerOutputs::componentName(&CompilerOutputs::signatureHashes).c_str(), "Function signature hashes of the contracts.") @@ -906,6 +911,7 @@ void CommandLineParser::processArgs() // TODO: This should eventually contain all options. {g_strErrorRecovery, {InputMode::Compiler, InputMode::CompilerWithASTImport}}, {g_strExperimentalViaIR, {InputMode::Compiler, InputMode::CompilerWithASTImport}}, + {g_strViaIR, {InputMode::Compiler, InputMode::CompilerWithASTImport}} }; vector invalidOptionsForCurrentInputMode; for (auto const& [optionName, inputModes]: validOptionInputModeCombinations) @@ -1256,7 +1262,7 @@ void CommandLineParser::processArgs() m_args.count(g_strModelCheckerSolvers) || m_args.count(g_strModelCheckerTargets) || m_args.count(g_strModelCheckerTimeout); - m_options.output.experimentalViaIR = (m_args.count(g_strExperimentalViaIR) > 0); + m_options.output.viaIR = (m_args.count(g_strExperimentalViaIR) > 0 || m_args.count(g_strViaIR) > 0); if (m_options.input.mode == InputMode::Compiler) m_options.input.errorRecovery = (m_args.count(g_strErrorRecovery) > 0); diff --git a/solc/CommandLineParser.h b/solc/CommandLineParser.h index 791e7f1c1..9723d5e06 100644 --- a/solc/CommandLineParser.h +++ b/solc/CommandLineParser.h @@ -182,7 +182,7 @@ struct CommandLineOptions boost::filesystem::path dir; bool overwriteFiles = false; langutil::EVMVersion evmVersion; - bool experimentalViaIR = false; + bool viaIR = false; RevertStrings revertStrings = RevertStrings::Default; std::optional debugInfoSelection; CompilerStack::State stopAfter = CompilerStack::State::CompilationSuccessful; diff --git a/test/cmdlineTests.sh b/test/cmdlineTests.sh index d33dd208c..6798a83f8 100755 --- a/test/cmdlineTests.sh +++ b/test/cmdlineTests.sh @@ -339,7 +339,7 @@ function test_via_ir_equivalence() ) asm_output_via_ir=$( echo "$solidity_code" | - msg_on_error --no-stderr "$SOLC" - --experimental-via-ir --asm --debug-info location "${optimizer_flags[@]}" | + msg_on_error --no-stderr "$SOLC" - --via-ir --asm --debug-info location "${optimizer_flags[@]}" | sed '/^======= /d' | sed '/^EVM assembly:$/d' ) @@ -355,7 +355,7 @@ function test_via_ir_equivalence() ) bin_output_via_ir=$( echo "$solidity_code" | - msg_on_error --no-stderr "$SOLC" - --experimental-via-ir --bin "${optimizer_flags[@]}" | + msg_on_error --no-stderr "$SOLC" - --via-ir --bin "${optimizer_flags[@]}" | sed '/^======= /d' | sed '/^Binary:$/d' ) @@ -588,7 +588,7 @@ printTask "Testing assemble, yul, strict-assembly and optimize..." test_solc_assembly_output "{ let x := 0 }" "{ { } }" "--strict-assembly --optimize" ) -printTask "Testing the eqivalence of --experimental-via-ir and a two-stage compilation..." +printTask "Testing the eqivalence of --via-ir and a two-stage compilation..." ( printTask " - Smoke test" test_via_ir_equivalence "contract C {}" diff --git a/test/cmdlineTests/constant_optimizer_yul/output b/test/cmdlineTests/constant_optimizer_yul/output index ae0b7a0f6..9c7faa732 100644 --- a/test/cmdlineTests/constant_optimizer_yul/output +++ b/test/cmdlineTests/constant_optimizer_yul/output @@ -1,11 +1,4 @@ Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"constant_optimizer_yul/input.sol" object "C_12" { code { diff --git a/test/cmdlineTests/debug_info_in_yul_and_evm_asm_print_all/output b/test/cmdlineTests/debug_info_in_yul_and_evm_asm_print_all/output index 3b0e1d3ba..af83c9f36 100644 --- a/test/cmdlineTests/debug_info_in_yul_and_evm_asm_print_all/output +++ b/test/cmdlineTests/debug_info_in_yul_and_evm_asm_print_all/output @@ -54,13 +54,6 @@ sub_0: assembly { } IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"debug_info_in_yul_and_evm_asm_print_all/input.sol" object "C_6" { @@ -176,13 +169,6 @@ object "C_6" { Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"debug_info_in_yul_and_evm_asm_print_all/input.sol" object "C_6" { code { diff --git a/test/cmdlineTests/debug_info_in_yul_and_evm_asm_print_location_only/output b/test/cmdlineTests/debug_info_in_yul_and_evm_asm_print_location_only/output index 94d748169..dc4ea45fd 100644 --- a/test/cmdlineTests/debug_info_in_yul_and_evm_asm_print_location_only/output +++ b/test/cmdlineTests/debug_info_in_yul_and_evm_asm_print_location_only/output @@ -54,13 +54,6 @@ sub_0: assembly { } IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"debug_info_in_yul_and_evm_asm_print_location_only/input.sol" object "C_6" { @@ -175,13 +168,6 @@ object "C_6" { Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"debug_info_in_yul_and_evm_asm_print_location_only/input.sol" object "C_6" { code { diff --git a/test/cmdlineTests/debug_info_in_yul_and_evm_asm_print_none/output b/test/cmdlineTests/debug_info_in_yul_and_evm_asm_print_none/output index 706b8f773..b2ad57c30 100644 --- a/test/cmdlineTests/debug_info_in_yul_and_evm_asm_print_none/output +++ b/test/cmdlineTests/debug_info_in_yul_and_evm_asm_print_none/output @@ -51,13 +51,6 @@ sub_0: assembly { } IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"debug_info_in_yul_and_evm_asm_print_none/input.sol" object "C_6" { @@ -166,13 +159,6 @@ object "C_6" { Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"debug_info_in_yul_and_evm_asm_print_none/input.sol" object "C_6" { code { diff --git a/test/cmdlineTests/debug_info_in_yul_snippet_escaping/output b/test/cmdlineTests/debug_info_in_yul_snippet_escaping/output index 1408b6021..04a354e2e 100644 --- a/test/cmdlineTests/debug_info_in_yul_snippet_escaping/output +++ b/test/cmdlineTests/debug_info_in_yul_snippet_escaping/output @@ -1,11 +1,4 @@ IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"debug_info_in_yul_snippet_escaping/input.sol" object "C_2" { @@ -70,13 +63,6 @@ object "C_2" { Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"debug_info_in_yul_snippet_escaping/input.sol" object "C_2" { code { @@ -103,13 +89,6 @@ object "C_2" { } IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"debug_info_in_yul_snippet_escaping/input.sol" object "D_27" { @@ -367,12 +346,6 @@ object "D_27" { /// @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..." } - /*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ /// @use-src 0:"debug_info_in_yul_snippet_escaping/input.sol" object "C_2" { @@ -442,13 +415,6 @@ object "D_27" { Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"debug_info_in_yul_snippet_escaping/input.sol" object "D_27" { code { diff --git a/test/cmdlineTests/evm_to_wasm/err b/test/cmdlineTests/evm_to_wasm/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/evm_to_wasm/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/evm_to_wasm_break/err b/test/cmdlineTests/evm_to_wasm_break/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/evm_to_wasm_break/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/evm_to_wasm_output_selection_asm_only/err b/test/cmdlineTests/evm_to_wasm_output_selection_asm_only/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/evm_to_wasm_output_selection_asm_only/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/evm_to_wasm_output_selection_ewasm_ir_only/err b/test/cmdlineTests/evm_to_wasm_output_selection_ewasm_ir_only/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/evm_to_wasm_output_selection_ewasm_ir_only/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/evm_to_wasm_output_selection_ewasm_only/err b/test/cmdlineTests/evm_to_wasm_output_selection_ewasm_only/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/evm_to_wasm_output_selection_ewasm_only/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/exp_base_literal/output b/test/cmdlineTests/exp_base_literal/output index 7b6e6e628..24e5d29be 100644 --- a/test/cmdlineTests/exp_base_literal/output +++ b/test/cmdlineTests/exp_base_literal/output @@ -1,11 +1,4 @@ IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"exp_base_literal/input.sol" object "C_81" { diff --git a/test/cmdlineTests/function_debug_info_via_yul/args b/test/cmdlineTests/function_debug_info_via_yul/args index ab626e663..7b0bf90f1 100644 --- a/test/cmdlineTests/function_debug_info_via_yul/args +++ b/test/cmdlineTests/function_debug_info_via_yul/args @@ -1 +1 @@ ---experimental-via-ir --optimize --combined-json function-debug,function-debug-runtime --pretty-json +--via-ir --optimize --combined-json function-debug,function-debug-runtime --pretty-json diff --git a/test/cmdlineTests/inline_assembly_function_name_clash/args b/test/cmdlineTests/inline_assembly_function_name_clash/args index 4299d023e..a4e76abf2 100644 --- a/test/cmdlineTests/inline_assembly_function_name_clash/args +++ b/test/cmdlineTests/inline_assembly_function_name_clash/args @@ -1 +1 @@ ---experimental-via-ir --combined-json function-debug-runtime --pretty-json --json-indent 4 \ No newline at end of file +--via-ir --combined-json function-debug-runtime --pretty-json --json-indent 4 \ No newline at end of file diff --git a/test/cmdlineTests/ir_compiler_inheritance_nosubobjects/output b/test/cmdlineTests/ir_compiler_inheritance_nosubobjects/output index 5246a50ee..84fd9d0bc 100644 --- a/test/cmdlineTests/ir_compiler_inheritance_nosubobjects/output +++ b/test/cmdlineTests/ir_compiler_inheritance_nosubobjects/output @@ -1,11 +1,4 @@ Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"ir_compiler_inheritance_nosubobjects/input.sol" object "C_7" { code { @@ -32,13 +25,6 @@ object "C_7" { } Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"ir_compiler_inheritance_nosubobjects/input.sol" object "D_10" { code { diff --git a/test/cmdlineTests/ir_compiler_subobjects/output b/test/cmdlineTests/ir_compiler_subobjects/output index 80d90aac5..5cacb6c16 100644 --- a/test/cmdlineTests/ir_compiler_subobjects/output +++ b/test/cmdlineTests/ir_compiler_subobjects/output @@ -1,11 +1,4 @@ Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"ir_compiler_subobjects/input.sol" object "C_3" { code { @@ -32,13 +25,6 @@ object "C_3" { } Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"ir_compiler_subobjects/input.sol" object "D_16" { code { diff --git a/test/cmdlineTests/ir_with_assembly_no_memoryguard_creation/output b/test/cmdlineTests/ir_with_assembly_no_memoryguard_creation/output index 90c7ddf65..41f353269 100644 --- a/test/cmdlineTests/ir_with_assembly_no_memoryguard_creation/output +++ b/test/cmdlineTests/ir_with_assembly_no_memoryguard_creation/output @@ -1,11 +1,4 @@ Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"ir_with_assembly_no_memoryguard_creation/input.sol" object "D_12" { code { diff --git a/test/cmdlineTests/ir_with_assembly_no_memoryguard_runtime/output b/test/cmdlineTests/ir_with_assembly_no_memoryguard_runtime/output index 7738519c4..c406d4f7e 100644 --- a/test/cmdlineTests/ir_with_assembly_no_memoryguard_runtime/output +++ b/test/cmdlineTests/ir_with_assembly_no_memoryguard_runtime/output @@ -1,11 +1,4 @@ Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"ir_with_assembly_no_memoryguard_runtime/input.sol" object "D_8" { code { diff --git a/test/cmdlineTests/keccak_optimization_deploy_code/output b/test/cmdlineTests/keccak_optimization_deploy_code/output index b70a029fc..8b89ea5b6 100644 --- a/test/cmdlineTests/keccak_optimization_deploy_code/output +++ b/test/cmdlineTests/keccak_optimization_deploy_code/output @@ -1,11 +1,4 @@ Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"keccak_optimization_deploy_code/input.sol" object "C_12" { code { diff --git a/test/cmdlineTests/keccak_optimization_low_runs/output b/test/cmdlineTests/keccak_optimization_low_runs/output index 691e37145..c308d737b 100644 --- a/test/cmdlineTests/keccak_optimization_low_runs/output +++ b/test/cmdlineTests/keccak_optimization_low_runs/output @@ -1,11 +1,4 @@ Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"keccak_optimization_low_runs/input.sol" object "C_7" { code { diff --git a/test/cmdlineTests/linking_standard_yul/output.json b/test/cmdlineTests/linking_standard_yul/output.json index 7816df4ec..89fa9901c 100644 --- a/test/cmdlineTests/linking_standard_yul/output.json +++ b/test/cmdlineTests/linking_standard_yul/output.json @@ -1 +1 @@ -{"contracts":{"A":{"a":{"evm":{"bytecode":{"linkReferences":{},"object":""}}}}},"errors":[{"component":"general","formattedMessage":"Yul is still experimental. Please use the output with care.","message":"Yul is still experimental. Please use the output with care.","severity":"warning","type":"Warning"}]} +{"contracts":{"A":{"a":{"evm":{"bytecode":{"linkReferences":{},"object":""}}}}},} diff --git a/test/cmdlineTests/linking_standard_yul_quote_in_file_name/output.json b/test/cmdlineTests/linking_standard_yul_quote_in_file_name/output.json index 7816df4ec..89fa9901c 100644 --- a/test/cmdlineTests/linking_standard_yul_quote_in_file_name/output.json +++ b/test/cmdlineTests/linking_standard_yul_quote_in_file_name/output.json @@ -1 +1 @@ -{"contracts":{"A":{"a":{"evm":{"bytecode":{"linkReferences":{},"object":""}}}}},"errors":[{"component":"general","formattedMessage":"Yul is still experimental. Please use the output with care.","message":"Yul is still experimental. Please use the output with care.","severity":"warning","type":"Warning"}]} +{"contracts":{"A":{"a":{"evm":{"bytecode":{"linkReferences":{},"object":""}}}}},} diff --git a/test/cmdlineTests/linking_standard_yul_unresolved_references/output.json b/test/cmdlineTests/linking_standard_yul_unresolved_references/output.json index 4dab68351..ec597c396 100644 --- a/test/cmdlineTests/linking_standard_yul_unresolved_references/output.json +++ b/test/cmdlineTests/linking_standard_yul_unresolved_references/output.json @@ -1 +1 @@ -{"contracts":{"A":{"a":{"evm":{"bytecode":{"linkReferences":{"contract/test.sol":{"L2":[{"length":20,"start":22}]}},"object":"__$fb58009a6b1ecea3b9d99bedd645df4ec3$__"}}}}},"errors":[{"component":"general","formattedMessage":"Yul is still experimental. Please use the output with care.","message":"Yul is still experimental. Please use the output with care.","severity":"warning","type":"Warning"}]} +{"contracts":{"A":{"a":{"evm":{"bytecode":{"linkReferences":{"contract/test.sol":{"L2":[{"length":20,"start":22}]}},"object":"__$fb58009a6b1ecea3b9d99bedd645df4ec3$__"}}}}},} diff --git a/test/cmdlineTests/linking_strict_assembly/err b/test/cmdlineTests/linking_strict_assembly/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/linking_strict_assembly/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/linking_strict_assembly_qualified_library_qualified_reference/err b/test/cmdlineTests/linking_strict_assembly_qualified_library_qualified_reference/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/linking_strict_assembly_qualified_library_qualified_reference/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/linking_strict_assembly_qualified_library_unqualified_reference/err b/test/cmdlineTests/linking_strict_assembly_qualified_library_unqualified_reference/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/linking_strict_assembly_qualified_library_unqualified_reference/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/linking_strict_assembly_same_library_name_different_files/err b/test/cmdlineTests/linking_strict_assembly_same_library_name_different_files/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/linking_strict_assembly_same_library_name_different_files/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/linking_strict_assembly_same_library_name_different_files_in_link_references/err b/test/cmdlineTests/linking_strict_assembly_same_library_name_different_files_in_link_references/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/linking_strict_assembly_same_library_name_different_files_in_link_references/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/linking_strict_assembly_unqualified_library_qualified_reference/err b/test/cmdlineTests/linking_strict_assembly_unqualified_library_qualified_reference/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/linking_strict_assembly_unqualified_library_qualified_reference/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/linking_strict_assembly_unqualified_library_unqualified_reference/err b/test/cmdlineTests/linking_strict_assembly_unqualified_library_unqualified_reference/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/linking_strict_assembly_unqualified_library_unqualified_reference/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/linking_strict_assembly_unresolved_references/err b/test/cmdlineTests/linking_strict_assembly_unresolved_references/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/linking_strict_assembly_unresolved_references/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/name_simplifier/output b/test/cmdlineTests/name_simplifier/output index 3dabe9c8d..219d76769 100644 --- a/test/cmdlineTests/name_simplifier/output +++ b/test/cmdlineTests/name_simplifier/output @@ -1,11 +1,4 @@ Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"name_simplifier/input.sol" object "C_59" { code { diff --git a/test/cmdlineTests/object_compiler/err b/test/cmdlineTests/object_compiler/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/object_compiler/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/optimizer_array_sload/output b/test/cmdlineTests/optimizer_array_sload/output index 8404525f8..bb0d0bf40 100644 --- a/test/cmdlineTests/optimizer_array_sload/output +++ b/test/cmdlineTests/optimizer_array_sload/output @@ -1,11 +1,4 @@ Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"optimizer_array_sload/input.sol" object "Arraysum_34" { code { diff --git a/test/cmdlineTests/revert_strings/output b/test/cmdlineTests/revert_strings/output index 31b3db33b..0f16ff9d0 100644 --- a/test/cmdlineTests/revert_strings/output +++ b/test/cmdlineTests/revert_strings/output @@ -1,11 +1,4 @@ IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"revert_strings/input.sol" object "C_15" { diff --git a/test/cmdlineTests/standard_debug_info_in_yul_and_evm_asm_print_all/output.json b/test/cmdlineTests/standard_debug_info_in_yul_and_evm_asm_print_all/output.json index 44c143b71..30895c160 100644 --- a/test/cmdlineTests/standard_debug_info_in_yul_and_evm_asm_print_all/output.json +++ b/test/cmdlineTests/standard_debug_info_in_yul_and_evm_asm_print_all/output.json @@ -60,14 +60,7 @@ sub_0: assembly { } " }, - "ir": "/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - - + "ir": " /// @use-src 0:\"C\" object \"C_6\" { code { @@ -181,14 +174,7 @@ object \"C_6\" { } ", - "irOptimized": "/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - -/// @use-src 0:\"C\" + "irOptimized": "/// @use-src 0:\"C\" object \"C_6\" { code { { diff --git a/test/cmdlineTests/standard_debug_info_in_yul_and_evm_asm_print_location_only/output.json b/test/cmdlineTests/standard_debug_info_in_yul_and_evm_asm_print_location_only/output.json index 8dad4c42e..6ee9874d3 100644 --- a/test/cmdlineTests/standard_debug_info_in_yul_and_evm_asm_print_location_only/output.json +++ b/test/cmdlineTests/standard_debug_info_in_yul_and_evm_asm_print_location_only/output.json @@ -60,14 +60,7 @@ sub_0: assembly { } " }, - "ir": "/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - - + "ir": " /// @use-src 0:\"C\" object \"C_6\" { code { @@ -180,14 +173,7 @@ object \"C_6\" { } ", - "irOptimized": "/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - -/// @use-src 0:\"C\" + "irOptimized": "/// @use-src 0:\"C\" object \"C_6\" { code { { diff --git a/test/cmdlineTests/standard_debug_info_in_yul_and_evm_asm_print_none/output.json b/test/cmdlineTests/standard_debug_info_in_yul_and_evm_asm_print_none/output.json index 1675f7ec5..a32ee0580 100644 --- a/test/cmdlineTests/standard_debug_info_in_yul_and_evm_asm_print_none/output.json +++ b/test/cmdlineTests/standard_debug_info_in_yul_and_evm_asm_print_none/output.json @@ -57,14 +57,7 @@ sub_0: assembly { } " }, - "ir": "/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - - + "ir": " /// @use-src 0:\"C\" object \"C_6\" { code { @@ -171,14 +164,7 @@ object \"C_6\" { } ", - "irOptimized": "/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - -/// @use-src 0:\"C\" + "irOptimized": "/// @use-src 0:\"C\" object \"C_6\" { code { { diff --git a/test/cmdlineTests/standard_debug_info_in_yul_location/output.json b/test/cmdlineTests/standard_debug_info_in_yul_location/output.json index f21722a63..a57dbdc35 100644 --- a/test/cmdlineTests/standard_debug_info_in_yul_location/output.json +++ b/test/cmdlineTests/standard_debug_info_in_yul_location/output.json @@ -1,11 +1,4 @@ -{"contracts":{"C":{"C":{"ir":"/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - - +{"contracts":{"C":{"C":{"ir":" /// @use-src 0:\"C\" object \"C_54\" { code { @@ -609,14 +602,7 @@ object \"C_54\" { } -","irOptimized":"/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - -/// @use-src 0:\"C\" +","irOptimized":"/// @use-src 0:\"C\" object \"C_54\" { code { { @@ -776,14 +762,7 @@ object \"C_54\" { data \".metadata\" hex\"\" } } -"}},"D":{"D":{"ir":"/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - - +"}},"D":{"D":{"ir":" /// @use-src 0:\"C\", 1:\"D\" object \"D_72\" { code { @@ -1455,14 +1434,7 @@ object \"D_72\" { } -","irOptimized":"/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - -/// @use-src 0:\"C\", 1:\"D\" +","irOptimized":"/// @use-src 0:\"C\", 1:\"D\" object \"D_72\" { code { { diff --git a/test/cmdlineTests/standard_irOptimized_requested/output.json b/test/cmdlineTests/standard_irOptimized_requested/output.json index 85b861602..f91976411 100644 --- a/test/cmdlineTests/standard_irOptimized_requested/output.json +++ b/test/cmdlineTests/standard_irOptimized_requested/output.json @@ -1,11 +1,4 @@ -{"contracts":{"A":{"C":{"irOptimized":"/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - -/// @use-src 0:\"A\" +{"contracts":{"A":{"C":{"irOptimized":"/// @use-src 0:\"A\" object \"C_7\" { code { /// @src 0:79:121 \"contract C { function f() public pure {} }\" diff --git a/test/cmdlineTests/standard_ir_requested/output.json b/test/cmdlineTests/standard_ir_requested/output.json index 1e7f8dec3..78e2aebce 100644 --- a/test/cmdlineTests/standard_ir_requested/output.json +++ b/test/cmdlineTests/standard_ir_requested/output.json @@ -1,11 +1,4 @@ -{"contracts":{"A":{"C":{"ir":"/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - - +{"contracts":{"A":{"C":{"ir":" /// @use-src 0:\"A\" object \"C_7\" { code { diff --git a/test/cmdlineTests/standard_viair_requested/output.json b/test/cmdlineTests/standard_viair_requested/output.json index 881a4bad4..f08a5d302 100644 --- a/test/cmdlineTests/standard_viair_requested/output.json +++ b/test/cmdlineTests/standard_viair_requested/output.json @@ -1,11 +1,4 @@ -{"contracts":{"A":{"C":{"evm":{"bytecode":{"generatedSources":[],"object":""},"deployedBytecode":{"object":""}},"ir":"/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - - +{"contracts":{"A":{"C":{"evm":{"bytecode":{"generatedSources":[],"object":""},"deployedBytecode":{"object":""}},"ir":" /// @use-src 0:\"A\" object \"C_3\" { code { @@ -67,14 +60,7 @@ object \"C_3\" { } -"},"D":{"evm":{"bytecode":{"generatedSources":[],"object":""},"deployedBytecode":{"object":""}},"ir":"/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - - +"},"D":{"evm":{"bytecode":{"generatedSources":[],"object":""},"deployedBytecode":{"object":""}},"ir":" /// @use-src 0:\"A\" object \"D_16\" { code { @@ -207,12 +193,6 @@ object \"D_16\" { /// @src 0:93:146 \"contract D { function f() public { C c = new C(); } }\" } - /*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ /// @use-src 0:\"A\" object \"C_3\" { diff --git a/test/cmdlineTests/standard_yul/output.json b/test/cmdlineTests/standard_yul/output.json index 671b8ffa7..63da252cd 100644 --- a/test/cmdlineTests/standard_yul/output.json +++ b/test/cmdlineTests/standard_yul/output.json @@ -26,4 +26,4 @@ sstore(add(x, 0), 0) } } -"}}},"errors":[{"component":"general","formattedMessage":"Yul is still experimental. Please use the output with care.","message":"Yul is still experimental. Please use the output with care.","severity":"warning","type":"Warning"}]} +"}}},} diff --git a/test/cmdlineTests/standard_yul_debug_info_print_all/output.json b/test/cmdlineTests/standard_yul_debug_info_print_all/output.json index b57bc9188..70122b9a7 100644 --- a/test/cmdlineTests/standard_yul_debug_info_print_all/output.json +++ b/test/cmdlineTests/standard_yul_debug_info_print_all/output.json @@ -23,14 +23,4 @@ tag_3: } } }, - "errors": - [ - { - "component": "general", - "formattedMessage": "Yul is still experimental. Please use the output with care.", - "message": "Yul is still experimental. Please use the output with care.", - "severity": "warning", - "type": "Warning" - } - ] -} + } diff --git a/test/cmdlineTests/standard_yul_debug_info_print_location_only/output.json b/test/cmdlineTests/standard_yul_debug_info_print_location_only/output.json index 0ce9fd2de..e7b1a6943 100644 --- a/test/cmdlineTests/standard_yul_debug_info_print_location_only/output.json +++ b/test/cmdlineTests/standard_yul_debug_info_print_location_only/output.json @@ -23,14 +23,4 @@ tag_3: } } }, - "errors": - [ - { - "component": "general", - "formattedMessage": "Yul is still experimental. Please use the output with care.", - "message": "Yul is still experimental. Please use the output with care.", - "severity": "warning", - "type": "Warning" - } - ] -} + } diff --git a/test/cmdlineTests/standard_yul_debug_info_print_none/output.json b/test/cmdlineTests/standard_yul_debug_info_print_none/output.json index 8203ee0a2..b8b5ff913 100644 --- a/test/cmdlineTests/standard_yul_debug_info_print_none/output.json +++ b/test/cmdlineTests/standard_yul_debug_info_print_none/output.json @@ -21,14 +21,4 @@ tag_3: } } }, - "errors": - [ - { - "component": "general", - "formattedMessage": "Yul is still experimental. Please use the output with care.", - "message": "Yul is still experimental. Please use the output with care.", - "severity": "warning", - "type": "Warning" - } - ] -} + } diff --git a/test/cmdlineTests/standard_yul_embedded_object_name/output.json b/test/cmdlineTests/standard_yul_embedded_object_name/output.json index 32a2a647a..0967ef424 100644 --- a/test/cmdlineTests/standard_yul_embedded_object_name/output.json +++ b/test/cmdlineTests/standard_yul_embedded_object_name/output.json @@ -1 +1 @@ -{"errors":[{"component":"general","formattedMessage":"Yul is still experimental. Please use the output with care.","message":"Yul is still experimental. Please use the output with care.","severity":"warning","type":"Warning"}]} +{} diff --git a/test/cmdlineTests/standard_yul_immutable_references/output.json b/test/cmdlineTests/standard_yul_immutable_references/output.json index 42361097d..fe9bd66a6 100644 --- a/test/cmdlineTests/standard_yul_immutable_references/output.json +++ b/test/cmdlineTests/standard_yul_immutable_references/output.json @@ -39,14 +39,4 @@ } } }, - "errors": - [ - { - "component": "general", - "formattedMessage": "Yul is still experimental. Please use the output with care.", - "message": "Yul is still experimental. Please use the output with care.", - "severity": "warning", - "type": "Warning" - } - ] -} + } diff --git a/test/cmdlineTests/standard_yul_invalid_object_name/output.json b/test/cmdlineTests/standard_yul_invalid_object_name/output.json index 32a2a647a..0967ef424 100644 --- a/test/cmdlineTests/standard_yul_invalid_object_name/output.json +++ b/test/cmdlineTests/standard_yul_invalid_object_name/output.json @@ -1 +1 @@ -{"errors":[{"component":"general","formattedMessage":"Yul is still experimental. Please use the output with care.","message":"Yul is still experimental. Please use the output with care.","severity":"warning","type":"Warning"}]} +{} diff --git a/test/cmdlineTests/standard_yul_object/output.json b/test/cmdlineTests/standard_yul_object/output.json index 49aaa6a74..96903c452 100644 --- a/test/cmdlineTests/standard_yul_object/output.json +++ b/test/cmdlineTests/standard_yul_object/output.json @@ -28,4 +28,4 @@ data_4e03657aea45a94fc7d47ba826c8d667c0d1e6e33a64a036ec44f58fa12d6c45 616263 } data \"DataName\" hex\"616263\" } -"}}},"errors":[{"component":"general","formattedMessage":"Yul is still experimental. Please use the output with care.","message":"Yul is still experimental. Please use the output with care.","severity":"warning","type":"Warning"}]} +"}}},} diff --git a/test/cmdlineTests/standard_yul_object_name/output.json b/test/cmdlineTests/standard_yul_object_name/output.json index 45280c8a1..b4a9e3685 100644 --- a/test/cmdlineTests/standard_yul_object_name/output.json +++ b/test/cmdlineTests/standard_yul_object_name/output.json @@ -43,4 +43,4 @@ sub_0: assembly { code { revert(0, 0) } } } -"}}},"errors":[{"component":"general","formattedMessage":"Yul is still experimental. Please use the output with care.","message":"Yul is still experimental. Please use the output with care.","severity":"warning","type":"Warning"}]} +"}}},} diff --git a/test/cmdlineTests/standard_yul_optimiserSteps/output.json b/test/cmdlineTests/standard_yul_optimiserSteps/output.json index 4071589cb..c4b5f6e0e 100644 --- a/test/cmdlineTests/standard_yul_optimiserSteps/output.json +++ b/test/cmdlineTests/standard_yul_optimiserSteps/output.json @@ -21,4 +21,4 @@ } } } -"}}},"errors":[{"component":"general","formattedMessage":"Yul is still experimental. Please use the output with care.","message":"Yul is still experimental. Please use the output with care.","severity":"warning","type":"Warning"}]} +"}}},} diff --git a/test/cmdlineTests/standard_yul_optimized/output.json b/test/cmdlineTests/standard_yul_optimized/output.json index 371a0816b..40fd18d2b 100644 --- a/test/cmdlineTests/standard_yul_optimized/output.json +++ b/test/cmdlineTests/standard_yul_optimized/output.json @@ -16,4 +16,4 @@ ","irOptimized":"object \"object\" { code { { sstore(mload(0), 0) } } } -"}}},"errors":[{"component":"general","formattedMessage":"Yul is still experimental. Please use the output with care.","message":"Yul is still experimental. Please use the output with care.","severity":"warning","type":"Warning"}]} +"}}},} diff --git a/test/cmdlineTests/standard_yul_stack_opt/output.json b/test/cmdlineTests/standard_yul_stack_opt/output.json index f041adaa8..1bc924d95 100644 --- a/test/cmdlineTests/standard_yul_stack_opt/output.json +++ b/test/cmdlineTests/standard_yul_stack_opt/output.json @@ -12,4 +12,4 @@ sstore /* \"A\":0:72 */ stop -"}}}},"errors":[{"component":"general","formattedMessage":"Yul is still experimental. Please use the output with care.","message":"Yul is still experimental. Please use the output with care.","severity":"warning","type":"Warning"}]} +"}}}},} diff --git a/test/cmdlineTests/standard_yul_stack_opt_disabled/output.json b/test/cmdlineTests/standard_yul_stack_opt_disabled/output.json index a4670cf26..8fa9f92ce 100644 --- a/test/cmdlineTests/standard_yul_stack_opt_disabled/output.json +++ b/test/cmdlineTests/standard_yul_stack_opt_disabled/output.json @@ -15,4 +15,4 @@ /* \"A\":0:72 */ pop pop -"}}}},"errors":[{"component":"general","formattedMessage":"Yul is still experimental. Please use the output with care.","message":"Yul is still experimental. Please use the output with care.","severity":"warning","type":"Warning"}]} +"}}}},} diff --git a/test/cmdlineTests/strict_asm_debug_info_print_all/err b/test/cmdlineTests/strict_asm_debug_info_print_all/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/strict_asm_debug_info_print_all/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/strict_asm_debug_info_print_location_only/err b/test/cmdlineTests/strict_asm_debug_info_print_location_only/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/strict_asm_debug_info_print_location_only/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/strict_asm_debug_info_print_none/err b/test/cmdlineTests/strict_asm_debug_info_print_none/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/strict_asm_debug_info_print_none/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/strict_asm_jump/err b/test/cmdlineTests/strict_asm_jump/err index 866361af4..c0001f382 100644 --- a/test/cmdlineTests/strict_asm_jump/err +++ b/test/cmdlineTests/strict_asm_jump/err @@ -1,4 +1,3 @@ -Warning: Yul is still experimental. Please use the output with care. Error: Function "jump" not found. --> strict_asm_jump/input.yul:1:3: | diff --git a/test/cmdlineTests/strict_asm_only_cr/err b/test/cmdlineTests/strict_asm_only_cr/err index 62ebc300d..0879e4f21 100644 --- a/test/cmdlineTests/strict_asm_only_cr/err +++ b/test/cmdlineTests/strict_asm_only_cr/err @@ -1,4 +1,3 @@ -Warning: Yul is still experimental. Please use the output with care. Error: Expected keyword "object". --> strict_asm_only_cr/input.yul:1:2: | diff --git a/test/cmdlineTests/strict_asm_optimizer_steps/err b/test/cmdlineTests/strict_asm_optimizer_steps/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/strict_asm_optimizer_steps/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/strict_asm_output_selection_asm_only/err b/test/cmdlineTests/strict_asm_output_selection_asm_only/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/strict_asm_output_selection_asm_only/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/strict_asm_output_selection_bin_only/err b/test/cmdlineTests/strict_asm_output_selection_bin_only/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/strict_asm_output_selection_bin_only/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/strict_asm_output_selection_ewasm_ir_only/err b/test/cmdlineTests/strict_asm_output_selection_ewasm_ir_only/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/strict_asm_output_selection_ewasm_ir_only/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/strict_asm_output_selection_ewasm_only/err b/test/cmdlineTests/strict_asm_output_selection_ewasm_only/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/strict_asm_output_selection_ewasm_only/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/strict_asm_output_selection_ir_optimized_only/err b/test/cmdlineTests/strict_asm_output_selection_ir_optimized_only/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/strict_asm_output_selection_ir_optimized_only/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/viair_abicoder_v1/output b/test/cmdlineTests/viair_abicoder_v1/output index c71c535da..1c4d6c90e 100644 --- a/test/cmdlineTests/viair_abicoder_v1/output +++ b/test/cmdlineTests/viair_abicoder_v1/output @@ -1,11 +1,4 @@ IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"viair_abicoder_v1/input.sol" object "test_11" { diff --git a/test/cmdlineTests/viair_subobjects/args b/test/cmdlineTests/viair_subobjects/args index 1a5580b80..5331d83ac 100644 --- a/test/cmdlineTests/viair_subobjects/args +++ b/test/cmdlineTests/viair_subobjects/args @@ -1 +1 @@ ---ir-optimized --experimental-via-ir --optimize --bin --bin-runtime \ No newline at end of file +--ir-optimized --via-ir --optimize --bin --bin-runtime \ No newline at end of file diff --git a/test/cmdlineTests/viair_subobjects/output b/test/cmdlineTests/viair_subobjects/output index aea2013ec..51fdae924 100644 --- a/test/cmdlineTests/viair_subobjects/output +++ b/test/cmdlineTests/viair_subobjects/output @@ -5,13 +5,6 @@ Binary: Binary of the runtime part: Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"viair_subobjects/input.sol" object "C_3" { code { @@ -44,13 +37,6 @@ Binary: Binary of the runtime part: Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"viair_subobjects/input.sol" object "D_16" { code { diff --git a/test/cmdlineTests/wasm_to_wasm_function_returning_multiple_values/err b/test/cmdlineTests/wasm_to_wasm_function_returning_multiple_values/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/wasm_to_wasm_function_returning_multiple_values/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/wasm_to_wasm_memory_instructions_alignment/err b/test/cmdlineTests/wasm_to_wasm_memory_instructions_alignment/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/wasm_to_wasm_memory_instructions_alignment/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/yul_function_name_clashes/err b/test/cmdlineTests/yul_function_name_clashes/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/yul_function_name_clashes/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/yul_function_name_clashes_different_params/err b/test/cmdlineTests/yul_function_name_clashes_different_params/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/yul_function_name_clashes_different_params/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/yul_optimize_runs/err b/test/cmdlineTests/yul_optimize_runs/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/yul_optimize_runs/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/yul_optimizer_steps/output b/test/cmdlineTests/yul_optimizer_steps/output index a88ce164a..bb68a48fa 100644 --- a/test/cmdlineTests/yul_optimizer_steps/output +++ b/test/cmdlineTests/yul_optimizer_steps/output @@ -1,11 +1,4 @@ Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"yul_optimizer_steps/input.sol" object "C_7" { code { diff --git a/test/cmdlineTests/yul_optimizer_steps_nested_brackets/output b/test/cmdlineTests/yul_optimizer_steps_nested_brackets/output index 5b7c3fdb0..1e19c3a5c 100644 --- a/test/cmdlineTests/yul_optimizer_steps_nested_brackets/output +++ b/test/cmdlineTests/yul_optimizer_steps_nested_brackets/output @@ -1,11 +1,4 @@ Optimized IR: -/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - /// @use-src 0:"yul_optimizer_steps_nested_brackets/input.sol" object "C_6" { code { diff --git a/test/cmdlineTests/yul_string_format_ascii/output.json b/test/cmdlineTests/yul_string_format_ascii/output.json index 46dd577eb..3ff8779ff 100644 --- a/test/cmdlineTests/yul_string_format_ascii/output.json +++ b/test/cmdlineTests/yul_string_format_ascii/output.json @@ -1,11 +1,4 @@ -{"contracts":{"A":{"C":{"ir":"/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - - +{"contracts":{"A":{"C":{"ir":" /// @use-src 0:\"A\" object \"C_11\" { code { diff --git a/test/cmdlineTests/yul_string_format_ascii_bytes32/output.json b/test/cmdlineTests/yul_string_format_ascii_bytes32/output.json index 0ffffa3a4..a5aaa8633 100644 --- a/test/cmdlineTests/yul_string_format_ascii_bytes32/output.json +++ b/test/cmdlineTests/yul_string_format_ascii_bytes32/output.json @@ -1,11 +1,4 @@ -{"contracts":{"A":{"C":{"ir":"/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - - +{"contracts":{"A":{"C":{"ir":" /// @use-src 0:\"A\" object \"C_11\" { code { diff --git a/test/cmdlineTests/yul_string_format_ascii_bytes32_from_number/output.json b/test/cmdlineTests/yul_string_format_ascii_bytes32_from_number/output.json index 1fb107015..4cb4408ca 100644 --- a/test/cmdlineTests/yul_string_format_ascii_bytes32_from_number/output.json +++ b/test/cmdlineTests/yul_string_format_ascii_bytes32_from_number/output.json @@ -1,11 +1,4 @@ -{"contracts":{"A":{"C":{"ir":"/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - - +{"contracts":{"A":{"C":{"ir":" /// @use-src 0:\"A\" object \"C_11\" { code { diff --git a/test/cmdlineTests/yul_string_format_ascii_long/output.json b/test/cmdlineTests/yul_string_format_ascii_long/output.json index bf757e685..e019e5c2f 100644 --- a/test/cmdlineTests/yul_string_format_ascii_long/output.json +++ b/test/cmdlineTests/yul_string_format_ascii_long/output.json @@ -1,11 +1,4 @@ -{"contracts":{"A":{"C":{"ir":"/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - - +{"contracts":{"A":{"C":{"ir":" /// @use-src 0:\"A\" object \"C_11\" { code { diff --git a/test/cmdlineTests/yul_string_format_hex/output.json b/test/cmdlineTests/yul_string_format_hex/output.json index 0ff492ce4..a4e1b1463 100644 --- a/test/cmdlineTests/yul_string_format_hex/output.json +++ b/test/cmdlineTests/yul_string_format_hex/output.json @@ -1,11 +1,4 @@ -{"contracts":{"A":{"C":{"ir":"/*=====================================================* - * WARNING * - * Solidity to Yul compilation is still EXPERIMENTAL * - * It can result in LOSS OF FUNDS or worse * - * !USE AT YOUR OWN RISK! * - *=====================================================*/ - - +{"contracts":{"A":{"C":{"ir":" /// @use-src 0:\"A\" object \"C_11\" { code { diff --git a/test/cmdlineTests/yul_to_wasm_source_location_crash/err b/test/cmdlineTests/yul_to_wasm_source_location_crash/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/yul_to_wasm_source_location_crash/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/yul_verbatim/err b/test/cmdlineTests/yul_verbatim/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/yul_verbatim/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/cmdlineTests/yul_verbatim_msize/err b/test/cmdlineTests/yul_verbatim_msize/err deleted file mode 100644 index 014a1178f..000000000 --- a/test/cmdlineTests/yul_verbatim_msize/err +++ /dev/null @@ -1 +0,0 @@ -Warning: Yul is still experimental. Please use the output with care. diff --git a/test/libsolidity/Metadata.cpp b/test/libsolidity/Metadata.cpp index d37398637..9cbf73f84 100644 --- a/test/libsolidity/Metadata.cpp +++ b/test/libsolidity/Metadata.cpp @@ -373,13 +373,7 @@ BOOST_AUTO_TEST_CASE(metadata_viair) CompilerStack::MetadataFormat::WithReleaseVersionTag ); - if (_viaIR) - { - BOOST_CHECK(parsedCBORMetadata.count("experimental") == 1); - BOOST_CHECK(parsedCBORMetadata.at("experimental") == "true"); - } - else - BOOST_CHECK(parsedCBORMetadata.count("experimental") == 0); + BOOST_CHECK(parsedCBORMetadata.count("experimental") == 0); }; check(sourceCode, true); diff --git a/test/solc/CommandLineParser.cpp b/test/solc/CommandLineParser.cpp index c2eab2355..b4be5a83a 100644 --- a/test/solc/CommandLineParser.cpp +++ b/test/solc/CommandLineParser.cpp @@ -120,6 +120,7 @@ BOOST_AUTO_TEST_CASE(cli_mode_options) "--output-dir=/tmp/out", "--overwrite", "--evm-version=spuriousDragon", + "--via-ir", "--experimental-via-ir", "--revert-strings=strip", "--debug-info=location", @@ -175,7 +176,7 @@ BOOST_AUTO_TEST_CASE(cli_mode_options) expectedOptions.output.dir = "/tmp/out"; expectedOptions.output.overwriteFiles = true; expectedOptions.output.evmVersion = EVMVersion::spuriousDragon(); - expectedOptions.output.experimentalViaIR = true; + expectedOptions.output.viaIR = true; expectedOptions.output.revertStrings = RevertStrings::Strip; expectedOptions.output.debugInfoSelection = DebugInfoSelection::fromString("location"); expectedOptions.formatting.json = JsonFormat{JsonFormat::Pretty, 7}; @@ -223,6 +224,13 @@ BOOST_AUTO_TEST_CASE(cli_mode_options) } } +BOOST_AUTO_TEST_CASE(via_ir_options) +{ + BOOST_TEST(!parseCommandLine({"solc", "contract.sol"}).output.viaIR); + for (string viaIrOption: {"--via-ir", "--experimental-via-ir"}) + BOOST_TEST(parseCommandLine({"solc", viaIrOption, "contract.sol"}).output.viaIR); +} + BOOST_AUTO_TEST_CASE(assembly_mode_options) { static vector, AssemblyStack::Machine, AssemblyStack::Language>> const allowedCombinations = { @@ -415,7 +423,8 @@ BOOST_AUTO_TEST_CASE(invalid_options_input_modes_combinations) map> invalidOptionInputModeCombinations = { // TODO: This should eventually contain all options. {"--error-recovery", {"--assemble", "--yul", "--strict-assembly", "--standard-json", "--link"}}, - {"--experimental-via-ir", {"--assemble", "--yul", "--strict-assembly", "--standard-json", "--link"}} + {"--experimental-via-ir", {"--assemble", "--yul", "--strict-assembly", "--standard-json", "--link"}}, + {"--via-ir", {"--assemble", "--yul", "--strict-assembly", "--standard-json", "--link"}} }; for (auto const& [optionName, inputModes]: invalidOptionInputModeCombinations)