ethereum / solidity

Solidity, the Smart Contract Programming Language
https://soliditylang.org
GNU General Public License v3.0
23.18k stars 5.75k forks source link

The first 256 errors should be shown when aborting with "too many errors". #8102

Closed ekpyron closed 4 years ago

ekpyron commented 4 years ago

Reported by @MicahZoltu. In case there are more than 256 errors, we abort with an exception - but we should at least show the first 256 errors in the exception message.

Reported for 0.5.15. I haven't confirmed it myself yet.

EDIT: reported for solc-js using standard-json, but I haven't been able to reproduce with our test file, so waiting for more input.

ekpyron commented 4 years ago

Confirmed. It's triggered by this standard-json input: https://gist.github.com/MicahZoltu/ad87ccf635900d7cde808ed783191627

ekpyron commented 4 years ago

It's also triggered for the command line interface. I have only verified for 0.5.15 so far, though, and the pragmas in the input need to be adjusted for 0.6 (maybe among other stuff).

ekpyron commented 4 years ago

When replacing the pragmas with sed -i -e `s/solidity 0.5.15/solidity >0.0.0/g' in the input file, command line solc 0.6.2 seems to hang...

ekpyron commented 4 years ago

My guess is that this is related to having more than 256 errors in multiple input files in contrast to our test which only uses a single input file.

ekpyron commented 4 years ago

Stopping my investigation for now, so feel free to take this up. I'm staging it for 0.6.2.

chriseth commented 4 years ago

Asked @aarlt to look into this.