@@ -455,6 +455,13 @@ void CommandLineParser::parseOutputSelection()
455455 CompilerOutputs::componentName (&CompilerOutputs::ewasm),
456456 CompilerOutputs::componentName (&CompilerOutputs::ewasmIR),
457457 };
458+ static set<string> const evmAssemblyJsonImportModeOutputs = {
459+ CompilerOutputs::componentName (&CompilerOutputs::asm_),
460+ CompilerOutputs::componentName (&CompilerOutputs::binary),
461+ CompilerOutputs::componentName (&CompilerOutputs::binaryRuntime),
462+ CompilerOutputs::componentName (&CompilerOutputs::opcodes),
463+ CompilerOutputs::componentName (&CompilerOutputs::asmJson),
464+ };
458465
459466 switch (_mode)
460467 {
@@ -465,8 +472,9 @@ void CommandLineParser::parseOutputSelection()
465472 solAssert (false );
466473 case InputMode::Compiler:
467474 case InputMode::CompilerWithASTImport:
468- case InputMode::CompilerWithEvmAssemblyJsonImport:
469475 return contains (compilerModeOutputs, _outputName);
476+ case InputMode::CompilerWithEvmAssemblyJsonImport:
477+ return contains (evmAssemblyJsonImportModeOutputs, _outputName);
470478 case InputMode::Assembler:
471479 return contains (assemblerModeOutputs, _outputName);
472480 case InputMode::StandardJson:
@@ -936,7 +944,6 @@ void CommandLineParser::processArgs()
936944 return ;
937945
938946 checkMutuallyExclusive ({g_strColor, g_strNoColor});
939-
940947 array<string, 9 > const conflictingWithStopAfter{
941948 CompilerOutputs::componentName (&CompilerOutputs::binary),
942949 CompilerOutputs::componentName (&CompilerOutputs::ir),
@@ -952,9 +959,27 @@ void CommandLineParser::processArgs()
952959 for (auto & option: conflictingWithStopAfter)
953960 checkMutuallyExclusive ({g_strStopAfter, option});
954961
962+ array<string, 11 > const conflictingWithAsmJsonImport{
963+ CompilerOutputs::componentName (&CompilerOutputs::ir),
964+ CompilerOutputs::componentName (&CompilerOutputs::irOptimized),
965+ CompilerOutputs::componentName (&CompilerOutputs::ewasm),
966+ CompilerOutputs::componentName (&CompilerOutputs::ewasmIR),
967+ g_strGas,
968+ CompilerOutputs::componentName (&CompilerOutputs::metadata),
969+ CompilerOutputs::componentName (&CompilerOutputs::natspecDev),
970+ CompilerOutputs::componentName (&CompilerOutputs::natspecUser),
971+ CompilerOutputs::componentName (&CompilerOutputs::signatureHashes),
972+ CompilerOutputs::componentName (&CompilerOutputs::storageLayout),
973+ CompilerOutputs::componentName (&CompilerOutputs::astCompactJson),
974+ };
975+
976+ for (auto & option: conflictingWithAsmJsonImport)
977+ checkMutuallyExclusive ({g_strImportEvmAssemblerJson, option});
978+
955979 if (
956980 m_options.input .mode != InputMode::Compiler &&
957981 m_options.input .mode != InputMode::CompilerWithASTImport &&
982+ m_options.input .mode != InputMode::CompilerWithEvmAssemblyJsonImport &&
958983 m_options.input .mode != InputMode::Assembler
959984 )
960985 {
0 commit comments