Merge pull request #232 from ethereum/fix-gather-imports

Fix gather imports
pull/1/head
Alex Beregszaszi 9 years ago committed by GitHub
commit 3e2076d084
  1. 21
      src/app/compiler.js

@ -30,7 +30,8 @@ function Compiler (editor, queryParams, handleGithubCall, updateFiles) {
files[utils.fileNameFromKey(editor.getCacheFile())] = input; files[utils.fileNameFromKey(editor.getCacheFile())] = input;
gatherImports(files, missingInputs, function (input, error) { gatherImports(files, missingInputs, function (input, error) {
if (input === null) { if (input === null) {
self.event.trigger('compilationFinished', [false, [error], files]); self.lastCompilationResult = null;
self.event.trigger('compilationFinished', [false, { 'error': error }, files]);
} else { } else {
var optimize = queryParams.get().optimize; var optimize = queryParams.get().optimize;
compileJSON(input, optimize ? 1 : 0); compileJSON(input, optimize ? 1 : 0);
@ -82,20 +83,34 @@ function Compiler (editor, queryParams, handleGithubCall, updateFiles) {
function compilationFinished (data, missingInputs, source) { function compilationFinished (data, missingInputs, source) {
var noFatalErrors = true; // ie warnings are ok var noFatalErrors = true; // ie warnings are ok
function isValidError (error) {
// The deferred import is not a real error
// FIXME: maybe have a better check?
if (/Deferred import/.exec(error)) {
return false;
}
return utils.errortype(error) !== 'warning';
}
if (data['error'] !== undefined) { if (data['error'] !== undefined) {
if (utils.errortype(data['error']) !== 'warning') { // Ignore warnings (and the 'Deferred import' error as those are generated by us as a workaround
if (isValidError(data['error'])) {
noFatalErrors = false; noFatalErrors = false;
} }
} }
if (data['errors'] !== undefined) { if (data['errors'] !== undefined) {
data['errors'].forEach(function (err) { data['errors'].forEach(function (err) {
if (utils.errortype(err) !== 'warning') { // Ignore warnings and the 'Deferred import' error as those are generated by us as a workaround
if (isValidError(err)) {
noFatalErrors = false; noFatalErrors = false;
} }
}); });
} }
if (!noFatalErrors) { if (!noFatalErrors) {
// There are fatal errors - abort here
self.lastCompilationResult = null;
self.event.trigger('compilationFinished', [false, data, source]); self.event.trigger('compilationFinished', [false, data, source]);
} else if (missingInputs !== undefined && missingInputs.length > 0) { } else if (missingInputs !== undefined && missingInputs.length > 0) {
compile(missingInputs); compile(missingInputs);

Loading…
Cancel
Save