pull/7/head
aniket-engg 5 years ago
parent 2a2cc93f3b
commit ebae2a19a8
  1. 6
      remix-analyzer/src/solidity-analyzer/modules/forLoopIteratesOverDynamicArray.js
  2. 5
      remix-analyzer/src/solidity-analyzer/modules/staticAnalysisCommon.js

@ -8,8 +8,10 @@ function forLoopIteratesOverDynamicArray () {
}
forLoopIteratesOverDynamicArray.prototype.visit = function (node) {
if (common.isForLoop(node) && (common.isDynamicArrayLengthAccess(node.children[1].children[1]) ||
(node.children[1].children[1].children && common.isDynamicArrayLengthAccess(node.children[1].children[1].children[0])))) {
if (common.isForLoop(node) &&
(common.isDynamicArrayLengthAccess(node.children[1].children[1]) || // condition uses dynamic array length like `i < array.length`
(node.children[1].children[1].children && common.isDynamicArrayLengthAccess(node.children[1].children[1].children[0]))) // or like `i < array.length (operator like -,+,*,/) number` e.g; i < array.length -1
) {
this.relevantNodes.push(node)
}
}

@ -523,7 +523,10 @@ function isDynamicArrayAccess (node) {
* @return {bool}
*/
function isDynamicArrayLengthAccess (node) {
return node && nodeType(node, exactMatch(nodeTypes.MEMBERACCESS)) && (node.attributes.member_name === 'length') && node.children[0].attributes.type.indexOf('[]') !== -1
return node && // if node exists
nodeType(node, exactMatch(nodeTypes.MEMBERACCESS)) && // is memberAccess Node
(node.attributes.member_name === 'length') && // accessing 'length' member
node.children[0].attributes.type.indexOf('[]') !== -1 // member is accessed from array
}
/**

Loading…
Cancel
Save