Commit ee8b2fa4 authored by aniket-engg's avatar aniket-engg Committed by Aniket

error and warnings handled for compiler equal and greater than 0.8.0

parent a0d7766c
...@@ -154,7 +154,7 @@ class CompileTab extends ViewPlugin { ...@@ -154,7 +154,7 @@ class CompileTab extends ViewPlugin {
this.renderer.error( this.renderer.error(
data.error.formattedMessage || data.error, data.error.formattedMessage || data.error,
this._view.errorContainer, this._view.errorContainer,
{ type: data.error.severity || 'error' } { type: data.error.severity || 'error', errorType: data.error.type }
) )
if (data.error.mode === 'panic') { if (data.error.mode === 'panic') {
return modalDialogCustom.alert(yo` return modalDialogCustom.alert(yo`
...@@ -169,10 +169,10 @@ class CompileTab extends ViewPlugin { ...@@ -169,10 +169,10 @@ class CompileTab extends ViewPlugin {
data.errors.forEach((err) => { data.errors.forEach((err) => {
if (this.config.get('hideWarnings')) { if (this.config.get('hideWarnings')) {
if (err.severity !== 'warning') { if (err.severity !== 'warning') {
this.renderer.error(err.formattedMessage, this._view.errorContainer, { type: err.severity }) this.renderer.error(err.formattedMessage, this._view.errorContainer, { type: err.severity, errorType: err.type })
} }
} else { } else {
this.renderer.error(err.formattedMessage, this._view.errorContainer, { type: err.severity }) this.renderer.error(err.formattedMessage, this._view.errorContainer, { type: err.severity, errorType: err.type })
} }
}) })
} }
......
...@@ -68,6 +68,23 @@ Renderer.prototype._errorClick = function (errFile, errLine, errCol) { ...@@ -68,6 +68,23 @@ Renderer.prototype._errorClick = function (errFile, errLine, errCol) {
* errCol * errCol
* } * }
*/ */
function getPositionDetails(msg) {
let result = {};
if(!msg.includes(':')) return {errLine: -1, errCol: -1, errFile: msg}
// extract line / column
let position = msg.match(/^(.*?):([0-9]*?):([0-9]*?)?/)
result.errLine = position ? parseInt(position[2]) - 1 : -1
result.errCol = position ? parseInt(position[3]) : -1
// extract file
position = msg.match(/^(https:.*?|http:.*?|.*?):/)
result.errFile = position ? position[1] : ''
return result
}
Renderer.prototype.error = function (message, container, opt) { Renderer.prototype.error = function (message, container, opt) {
if (!message) return if (!message) return
if (container === undefined) return if (container === undefined) return
...@@ -85,14 +102,15 @@ Renderer.prototype.error = function (message, container, opt) { ...@@ -85,14 +102,15 @@ Renderer.prototype.error = function (message, container, opt) {
// browser/gm.sol: Warning: Source file does not specify required compiler version! Consider adding "pragma solidity ^0.6.12 // browser/gm.sol: Warning: Source file does not specify required compiler version! Consider adding "pragma solidity ^0.6.12
// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v3.2.0/contracts/introspection/IERC1820Registry.sol:3:1: ParserError: Source file requires different compiler version (current compiler is 0.7.4+commit.3f05b770.Emscripten.clang) - note that nightly builds are considered to be strictly less than the released version // https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v3.2.0/contracts/introspection/IERC1820Registry.sol:3:1: ParserError: Source file requires different compiler version (current compiler is 0.7.4+commit.3f05b770.Emscripten.clang) - note that nightly builds are considered to be strictly less than the released version
// extract line / column let position = getPositionDetails(text)
let position = text.match(/^(.*?):([0-9]*?):([0-9]*?)?/) if(!position.errFile || (opt.errorType && opt.errorType === position.errFile)) {
opt.errLine = position ? parseInt(position[2]) - 1 : -1 const errorDetails = text.split('-->')
opt.errCol = position ? parseInt(position[3]) : -1 position = getPositionDetails(errorDetails[1])
}
// extract file opt.errLine = position.errLine
position = text.match(/^(https:.*?|http:.*?|.*?):/) opt.errCol = position.errCol
opt.errFile = position ? position[1] : '' opt.errFile = position.errFile.trim()
if (!opt.noAnnotations && opt.errFile) { if (!opt.noAnnotations && opt.errFile) {
this._error(opt.errFile, { this._error(opt.errFile, {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment