aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/deployer/src/compiler.ts21
1 files changed, 12 insertions, 9 deletions
diff --git a/packages/deployer/src/compiler.ts b/packages/deployer/src/compiler.ts
index 4bd636c90..ba360cb57 100644
--- a/packages/deployer/src/compiler.ts
+++ b/packages/deployer/src/compiler.ts
@@ -45,7 +45,6 @@ export class Compiler {
private _artifactsDir: string;
// This get's set in the beggining of `compileAsync` function. It's not called from a constructor, but it's the only public method of that class and could as well be.
private _contractSources!: ContractSources;
- private _solcErrors: Set<string> = new Set();
private _specifiedContracts: Set<string> = new Set();
private _contractSourceData: ContractSourceData = {};
/**
@@ -114,9 +113,6 @@ export class Compiler {
for (const fileName of fileNames) {
await this._compileContractAsync(fileName);
}
- this._solcErrors.forEach(errMsg => {
- logUtils.log(errMsg);
- });
}
/**
* Compiles contract and saves artifact to artifactsDir.
@@ -181,13 +177,20 @@ export class Compiler {
if (!_.isUndefined(compiled.errors)) {
const SOLIDITY_WARNING_PREFIX = 'Warning';
const isError = (errorOrWarning: string) => !errorOrWarning.includes(SOLIDITY_WARNING_PREFIX);
+ const isWarning = (errorOrWarning: string) => errorOrWarning.includes(SOLIDITY_WARNING_PREFIX);
const errors = _.filter(compiled.errors, isError);
- _.forEach(compiled.errors, errMsg => {
- const normalizedErrMsg = getNormalizedErrMsg(errMsg);
- this._solcErrors.add(normalizedErrMsg);
- });
+ const warnings = _.filter(compiled.errors, isWarning);
if (!_.isEmpty(errors)) {
- return;
+ errors.forEach(errMsg => {
+ const normalizedErrMsg = getNormalizedErrMsg(errMsg);
+ logUtils.log(normalizedErrMsg);
+ });
+ process.exit(1);
+ } else {
+ warnings.forEach(errMsg => {
+ const normalizedErrMsg = getNormalizedErrMsg(errMsg);
+ logUtils.log(normalizedErrMsg);
+ });
}
}
const contractName = path.basename(fileName, constants.SOLIDITY_FILE_EXTENSION);