address issue #2127 and allow function parameter name to be empty when casting to string

pull/2158/head
Judy Wu 1 year ago
parent 1eaec647e5
commit 1cdb2022cb
  1. 1
      slither/core/variables/variable.py
  2. 5
      tests/e2e/compilation/test_data/test_contract_data/test_contract_data.sol
  3. 15
      tests/e2e/compilation/test_resolution.py

@ -179,5 +179,4 @@ class Variable(SourceMapping):
return f'{name}({",".join(parameters)})'
def __str__(self) -> str:
assert self._name
return self._name

@ -0,0 +1,5 @@
contract TestSlither {
function testFunction(uint256 param1, uint256, address param3) public {
}
}

@ -43,3 +43,18 @@ def test_cycle(solc_binary_path) -> None:
solc_path = solc_binary_path("0.8.0")
slither = Slither(Path(TEST_DATA_DIR, "test_cyclic_import", "a.sol").as_posix(), solc=solc_path)
_run_all_detectors(slither)
def test_contract_function_parameter(solc_binary_path) -> None:
solc_path = solc_binary_path("0.8.0")
standard_json = SolcStandardJson()
standard_json.add_source_file(
Path(TEST_DATA_DIR, "test_contract_data", "test_contract_data.sol").as_posix()
)
compilation = CryticCompile(standard_json, solc=solc_path)
slither = Slither(compilation)
contract = slither.contracts[0]
for function in contract.functions:
for parameter in function.parameters:
str(parameter)

Loading…
Cancel
Save