Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
baas-ide
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
guxukai
baas-ide
Commits
a6a173d3
Commit
a6a173d3
authored
Jan 28, 2021
by
aniket-engg
Committed by
Aniket
Feb 02, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
handle similar names location
parent
c0e9da3b
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
9 additions
and
1 deletion
+9
-1
similarVariableNames.ts
...zer/src/solidity-analyzer/modules/similarVariableNames.ts
+9
-1
No files found.
libs/remix-analyzer/src/solidity-analyzer/modules/similarVariableNames.ts
View file @
a6a173d3
...
...
@@ -4,6 +4,7 @@ import { default as algorithm } from './algorithmCategories'
import
AbstractAst
from
'./abstractAstView'
import
{
get
}
from
'fast-levenshtein'
import
{
util
}
from
'@remix-project/remix-lib'
import
{
AstWalker
}
from
'@remix-project/remix-astwalker'
import
{
AnalyzerModule
,
ModuleAlgorithm
,
ModuleCategory
,
ReportObj
,
ContractHLAst
,
FunctionHLAst
,
VariableDeclarationAstNode
,
VisitFunction
,
ReportFunction
,
SupportedVersion
}
from
'./../../types'
interface
SimilarRecord
{
...
...
@@ -43,13 +44,20 @@ export default class similarVariableNames implements AnalyzerModule {
if
(
multipleContractsWithSameName
)
{
multipleContractsWithSameNameComments
=
'Note: Import aliases are currently not supported by this static analysis.'
}
const
vars
:
string
[]
=
this
.
getFunctionVariables
(
contract
,
func
).
map
(
getDeclaredVariableName
)
this
.
findSimilarVarNames
(
vars
).
map
((
sim
)
=>
{
if
(
func
.
node
.
implemented
)
{
const
astWalker
=
new
AstWalker
()
const
functionBody
:
any
=
func
.
node
.
body
astWalker
.
walk
(
functionBody
,
(
node
)
=>
{
if
(
node
.
nodeType
===
"Identifier"
&&
(
node
.
name
===
sim
.
var1
||
node
.
name
===
sim
.
var2
))
{
warnings
.
push
({
warning
:
`
${
funcName
}
: Variables have very similar names "
${
sim
.
var1
}
" and "
${
sim
.
var2
}
".
${
hasModifiersComments
}
${
multipleContractsWithSameNameComments
}
`
,
location
:
func
.
node
[
'src'
]
})
}
})
}
})
})
})
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment