@@ -455,6 +455,13 @@ void CommandLineParser::parseOutputSelection()
455
455
CompilerOutputs::componentName (&CompilerOutputs::ewasm),
456
456
CompilerOutputs::componentName (&CompilerOutputs::ewasmIR),
457
457
};
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
+ };
458
465
459
466
switch (_mode)
460
467
{
@@ -465,8 +472,9 @@ void CommandLineParser::parseOutputSelection()
465
472
solAssert (false );
466
473
case InputMode::Compiler:
467
474
case InputMode::CompilerWithASTImport:
468
- case InputMode::CompilerWithEvmAssemblyJsonImport:
469
475
return contains (compilerModeOutputs, _outputName);
476
+ case InputMode::CompilerWithEvmAssemblyJsonImport:
477
+ return contains (evmAssemblyJsonImportModeOutputs, _outputName);
470
478
case InputMode::Assembler:
471
479
return contains (assemblerModeOutputs, _outputName);
472
480
case InputMode::StandardJson:
@@ -936,7 +944,6 @@ void CommandLineParser::processArgs()
936
944
return ;
937
945
938
946
checkMutuallyExclusive ({g_strColor, g_strNoColor});
939
-
940
947
array<string, 9 > const conflictingWithStopAfter{
941
948
CompilerOutputs::componentName (&CompilerOutputs::binary),
942
949
CompilerOutputs::componentName (&CompilerOutputs::ir),
@@ -952,9 +959,27 @@ void CommandLineParser::processArgs()
952
959
for (auto & option: conflictingWithStopAfter)
953
960
checkMutuallyExclusive ({g_strStopAfter, option});
954
961
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
+
955
979
if (
956
980
m_options.input .mode != InputMode::Compiler &&
957
981
m_options.input .mode != InputMode::CompilerWithASTImport &&
982
+ m_options.input .mode != InputMode::CompilerWithEvmAssemblyJsonImport &&
958
983
m_options.input .mode != InputMode::Assembler
959
984
)
960
985
{
0 commit comments