Fix 'potentially should be const' for constructors in static analysis

pull/7/head
Leonardo Alt 7 years ago
parent fa411bb463
commit d54c39607e
  1. 2
      remix-solidity/src/analysis/modules/constantFunctions.js
  2. 12
      remix-solidity/src/analysis/modules/staticAnalysisCommon.js

@ -34,7 +34,7 @@ function report (contracts, multipleContractsWithSameName) {
contracts.forEach((contract) => {
contract.functions.forEach((func) => {
if (common.isPayableFunction(func.node)) {
if (common.isPayableFunction(func.node) || common.isConstructor(func.node)) {
func.potentiallyshouldBeConst = false
} else {
func.potentiallyshouldBeConst = checkIfShouldBeConstant(common.getFullQuallyfiedFuncDefinitionIdent(contract.node, func.node, func.parameters),

@ -520,6 +520,17 @@ function isPayableFunction (node) {
)
}
/**
* True if is constructor
* @node {ASTNode} some AstNode
* @return {bool}
*/
function isConstructor (node) {
return isFunctionDefinition(node) && (
node.attributes.isConstructor === true
)
}
/**
* True if unary increment operation
* @node {ASTNode} some AstNode
@ -857,6 +868,7 @@ module.exports = {
isContractDefinition: isContractDefinition,
isConstantFunction: isConstantFunction,
isPayableFunction: isPayableFunction,
isConstructor: isConstructor,
isInlineAssembly: isInlineAssembly,
isNewExpression: isNewExpression,
isReturn: isReturn,

Loading…
Cancel
Save