@@ -584,6 +584,7 @@ def _run_solcs_path(
584
584
targets_json = None
585
585
if isinstance (solcs_path , dict ):
586
586
guessed_solcs = _guess_solc (filename , working_dir )
587
+ compilation_errors = []
587
588
for guessed_solc in guessed_solcs :
588
589
if not guessed_solc in solcs_path :
589
590
continue
@@ -624,12 +625,14 @@ def _run_solcs_path(
624
625
working_dir = working_dir ,
625
626
force_legacy_json = force_legacy_json ,
626
627
)
627
- except InvalidCompilation :
628
- pass
628
+ break
629
+ except InvalidCompilation as ic :
630
+ compilation_errors .append (solc_bin + ": " + ic .args [0 ])
629
631
630
632
if not targets_json :
631
633
raise InvalidCompilation (
632
- "Invalid solc compilation, none of the solc versions provided worked"
634
+ "Invalid solc compilation, none of the solc versions provided worked:\n "
635
+ + "\n " .join (compilation_errors )
633
636
)
634
637
635
638
return targets_json
@@ -672,6 +675,7 @@ def _run_solcs_env(
672
675
env = dict (os .environ ) if env is None else env
673
676
targets_json = None
674
677
guessed_solcs = _guess_solc (filename , working_dir )
678
+ compilation_errors = []
675
679
for guessed_solc in guessed_solcs :
676
680
if solcs_env and not guessed_solc in solcs_env :
677
681
continue
@@ -688,6 +692,7 @@ def _run_solcs_env(
688
692
working_dir = working_dir ,
689
693
force_legacy_json = force_legacy_json ,
690
694
)
695
+ break
691
696
except InvalidCompilation :
692
697
pass
693
698
@@ -708,12 +713,14 @@ def _run_solcs_env(
708
713
working_dir = working_dir ,
709
714
force_legacy_json = force_legacy_json ,
710
715
)
711
- except InvalidCompilation :
712
- pass
716
+ break
717
+ except InvalidCompilation as ic :
718
+ compilation_errors .append (version_env + ": " + ic .args [0 ])
713
719
714
720
if not targets_json :
715
721
raise InvalidCompilation (
716
- "Invalid solc compilation, none of the solc versions provided worked"
722
+ "Invalid solc compilation, none of the solc versions provided worked:\n "
723
+ + "\n " .join (compilation_errors )
717
724
)
718
725
719
726
return targets_json
0 commit comments