You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As it assumes a Name AST node must be a local variable but could also be an immutable or a constant.
Code example to reproduce the issue:
a:immutable(uint256[3])
@externaldef __init__():
a = [1,2,3]
@externaldef foo():
for i in a:
pass
Version:
0.10.0
Relevant log output:
Traceback (most recent call last):
File "/home/csdocker/.local/bin/slither", line 8, in<module>sys.exit(main())
File "/home/csdocker/.local/pipx/venvs/slither-analyzer/lib/python3.10/site-packages/slither/__main__.py", line 727, in main
main_impl(all_detector_classes=detectors, all_printer_classes=printers)
File "/home/csdocker/.local/pipx/venvs/slither-analyzer/lib/python3.10/site-packages/slither/__main__.py", line 833, in main_impl
) = process_all(filename, args, detector_classes, printer_classes)
File "/home/csdocker/.local/pipx/venvs/slither-analyzer/lib/python3.10/site-packages/slither/__main__.py", line 107, in process_all
) = process_single(compilation, args, detector_classes, printer_classes)
File "/home/csdocker/.local/pipx/venvs/slither-analyzer/lib/python3.10/site-packages/slither/__main__.py", line 80, in process_single
slither = Slither(target, ast_format=ast, **vars(args))
File "/home/csdocker/.local/pipx/venvs/slither-analyzer/lib/python3.10/site-packages/slither/slither.py", line 144, in __init__
self._init_parsing_and_analyses(kwargs.get("skip_analyze", False))
File "/home/csdocker/.local/pipx/venvs/slither-analyzer/lib/python3.10/site-packages/slither/slither.py", line 164, in _init_parsing_and_analyses
raise e
File "/home/csdocker/.local/pipx/venvs/slither-analyzer/lib/python3.10/site-packages/slither/slither.py", line 160, in _init_parsing_and_analyses
parser.analyze_contracts()
File "/home/csdocker/.local/pipx/venvs/slither-analyzer/lib/python3.10/site-packages/slither/vyper_parsing/vyper_compilation_unit.py", line 61, in analyze_contracts
contract_parser.analyze()
File "/home/csdocker/.local/pipx/venvs/slither-analyzer/lib/python3.10/site-packages/slither/vyper_parsing/declarations/contract.py", line 521, in analyze
function.analyze_content()
File "/home/csdocker/.local/pipx/venvs/slither-analyzer/lib/python3.10/site-packages/slither/vyper_parsing/declarations/function.py", line 186, in analyze_content
self._parse_cfg(body)
File "/home/csdocker/.local/pipx/venvs/slither-analyzer/lib/python3.10/site-packages/slither/vyper_parsing/declarations/function.py", line 523, in _parse_cfg
curr_node = parse_statement(curr_node, expr)
File "/home/csdocker/.local/pipx/venvs/slither-analyzer/lib/python3.10/site-packages/slither/vyper_parsing/declarations/function.py", line 342, in parse_statement
loop_iterator = list(
IndexError: list index out of range
The text was updated successfully, but these errors were encountered:
0xalpharush
changed the title
[Bug-Candidate]: Vyper for loop over a constant or immutable iterable fails
[Bug]: Vyper for loop over a constant or immutable iterable fails
Oct 19, 2023
Describe the issue:
Similar to #2194, looping over a
constant
orimmutable
iterable makes Slither fail.Likely due to:
slither/slither/vyper_parsing/declarations/function.py
Line 340 in e3dcf1e
As it assumes a
Name
AST node must be a local variable but could also be an immutable or a constant.Code example to reproduce the issue:
Version:
0.10.0
Relevant log output:
The text was updated successfully, but these errors were encountered: