Merge pull request #1812 from crytic/remove-top-level

remove is_top_level dead code
pull/1842/head
alpharush 2 years ago committed by GitHub
commit a4e28e462a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      slither/core/compilation_unit.py
  2. 2
      slither/core/declarations/contract.py
  3. 2
      slither/printers/functions/authorization.py
  4. 2
      slither/printers/functions/cfg.py
  5. 4
      slither/printers/inheritance/inheritance.py
  6. 2
      slither/printers/inheritance/inheritance_graph.py
  7. 3
      slither/printers/summary/contract.py
  8. 2
      slither/printers/summary/data_depenency.py
  9. 2
      slither/printers/summary/function.py
  10. 2
      slither/printers/summary/human_summary.py
  11. 2
      slither/printers/summary/slithir.py
  12. 2
      slither/printers/summary/slithir_ssa.py
  13. 5
      slither/solc_parsing/slither_compilation_unit_solc.py

@ -128,7 +128,7 @@ class SlitherCompilationUnit(Context):
"""list(Contract): List of contracts that are derived and not inherited.""" """list(Contract): List of contracts that are derived and not inherited."""
inheritances = [x.inheritance for x in self.contracts] inheritances = [x.inheritance for x in self.contracts]
inheritance = [item for sublist in inheritances for item in sublist] inheritance = [item for sublist in inheritances for item in sublist]
return [c for c in self.contracts if c not in inheritance and not c.is_top_level] return [c for c in self.contracts if c not in inheritance]
def get_contract_from_name(self, contract_name: Union[str, Constant]) -> List[Contract]: def get_contract_from_name(self, contract_name: Union[str, Constant]) -> List[Contract]:
""" """

@ -100,8 +100,6 @@ class Contract(SourceMapping): # pylint: disable=too-many-public-methods
self._is_upgradeable_proxy: Optional[bool] = None self._is_upgradeable_proxy: Optional[bool] = None
self._upgradeable_version: Optional[str] = None self._upgradeable_version: Optional[str] = None
self.is_top_level = False # heavily used, so no @property
self._initial_state_variables: List["StateVariable"] = [] # ssa self._initial_state_variables: List["StateVariable"] = [] # ssa
self._is_incorrectly_parsed: bool = False self._is_incorrectly_parsed: bool = False

@ -47,8 +47,6 @@ class PrinterWrittenVariablesAndAuthorization(AbstractPrinter):
txt = "" txt = ""
all_tables = [] all_tables = []
for contract in self.contracts: # type: ignore for contract in self.contracts: # type: ignore
if contract.is_top_level:
continue
txt += f"\nContract {contract.name}\n" txt += f"\nContract {contract.name}\n"
table = MyPrettyTable( table = MyPrettyTable(
["Function", "State variables written", "Conditions on msg.sender"] ["Function", "State variables written", "Conditions on msg.sender"]

@ -19,8 +19,6 @@ class CFG(AbstractPrinter):
info = "" info = ""
all_files = [] all_files = []
for contract in self.contracts: # type: ignore for contract in self.contracts: # type: ignore
if contract.is_top_level:
continue
for function in contract.functions + list(contract.modifiers): for function in contract.functions + list(contract.modifiers):
if filename: if filename:
new_filename = f"{filename}-{contract.name}-{function.full_name}.dot" new_filename = f"{filename}-{contract.name}-{function.full_name}.dot"

@ -36,8 +36,6 @@ class PrinterInheritance(AbstractPrinter):
result = {"child_to_base": {}} result = {"child_to_base": {}}
for child in self.contracts: for child in self.contracts:
if child.is_top_level:
continue
info += blue(f"\n+ {child.name}\n") info += blue(f"\n+ {child.name}\n")
result["child_to_base"][child.name] = {"immediate": [], "not_immediate": []} result["child_to_base"][child.name] = {"immediate": [], "not_immediate": []}
if child.inheritance: if child.inheritance:
@ -58,8 +56,6 @@ class PrinterInheritance(AbstractPrinter):
result["base_to_child"] = {} result["base_to_child"] = {}
for base in self.contracts: for base in self.contracts:
if base.is_top_level:
continue
info += green(f"\n+ {base.name}") + "\n" info += green(f"\n+ {base.name}") + "\n"
children = list(self._get_child_contracts(base)) children = list(self._get_child_contracts(base))

@ -194,8 +194,6 @@ class PrinterInheritanceGraph(AbstractPrinter):
content = 'digraph "" {\n' content = 'digraph "" {\n'
for c in self.contracts: for c in self.contracts:
if c.is_top_level:
continue
content += self._summary(c) + "\n" content += self._summary(c) + "\n"
content += "}" content += "}"

@ -28,9 +28,6 @@ class ContractSummary(AbstractPrinter):
all_contracts = [] all_contracts = []
for c in self.contracts: for c in self.contracts:
if c.is_top_level:
continue
is_upgradeable_proxy = c.is_upgradeable_proxy is_upgradeable_proxy = c.is_upgradeable_proxy
is_upgradeable = c.is_upgradeable is_upgradeable = c.is_upgradeable

@ -40,8 +40,6 @@ class DataDependency(AbstractPrinter):
txt = "" txt = ""
for c in self.contracts: for c in self.contracts:
if c.is_top_level:
continue
txt += f"\nContract {c.name}\n" txt += f"\nContract {c.name}\n"
table = MyPrettyTable(["Variable", "Dependencies"]) table = MyPrettyTable(["Variable", "Dependencies"])
for v in c.state_variables: for v in c.state_variables:

@ -33,8 +33,6 @@ class FunctionSummary(AbstractPrinter):
all_txt = "" all_txt = ""
for c in self.contracts: for c in self.contracts:
if c.is_top_level:
continue
(name, inheritance, var, func_summaries, modif_summaries) = c.get_summary() (name, inheritance, var, func_summaries, modif_summaries) = c.get_summary()
txt = f"\nContract {name}" txt = f"\nContract {name}"
txt += "\nContract vars: " + str(var) txt += "\nContract vars: " + str(var)

@ -205,7 +205,7 @@ class PrinterHumanSummary(AbstractPrinter):
def _number_contracts(self): def _number_contracts(self):
if self.slither.crytic_compile is None: if self.slither.crytic_compile is None:
return len(self.slither.contracts), 0, 0 return len(self.slither.contracts), 0, 0
contracts = [c for c in self.slither.contracts if not c.is_top_level] contracts = self.slither.contracts
deps = [c for c in contracts if c.is_from_dependency()] deps = [c for c in contracts if c.is_from_dependency()]
tests = [c for c in contracts if c.is_test] tests = [c for c in contracts if c.is_test]
return len(contracts) - len(deps) - len(tests), len(deps), len(tests) return len(contracts) - len(deps) - len(tests), len(deps), len(tests)

@ -36,8 +36,6 @@ class PrinterSlithIR(AbstractPrinter):
txt = "" txt = ""
for compilation_unit in self.slither.compilation_units: for compilation_unit in self.slither.compilation_units:
for contract in compilation_unit.contracts: for contract in compilation_unit.contracts:
if contract.is_top_level:
continue
txt += f"Contract {contract.name}\n" txt += f"Contract {contract.name}\n"
for function in contract.functions: for function in contract.functions:
txt += f'\tFunction {function.canonical_name} {"" if function.is_shadowed else "(*)"}\n' txt += f'\tFunction {function.canonical_name} {"" if function.is_shadowed else "(*)"}\n'

@ -21,8 +21,6 @@ class PrinterSlithIRSSA(AbstractPrinter):
txt = "" txt = ""
for contract in self.contracts: for contract in self.contracts:
if contract.is_top_level:
continue
txt += f"Contract {contract.name}" + "\n" txt += f"Contract {contract.name}" + "\n"
for function in contract.functions: for function in contract.functions:
txt += f"\tFunction {function.canonical_name}" + "\n" txt += f"\tFunction {function.canonical_name}" + "\n"

@ -402,10 +402,7 @@ class SlitherCompilationUnitSolc(CallerContextExpression):
# First we save all the contracts in a dict # First we save all the contracts in a dict
# the key is the contractid # the key is the contractid
for contract in self._underlying_contract_to_parser: for contract in self._underlying_contract_to_parser:
if ( if contract.name.startswith("SlitherInternalTopLevelContract"):
contract.name.startswith("SlitherInternalTopLevelContract")
and not contract.is_top_level
):
raise SlitherException( raise SlitherException(
# region multi-line-string # region multi-line-string
"""Your codebase has a contract named 'SlitherInternalTopLevelContract'. """Your codebase has a contract named 'SlitherInternalTopLevelContract'.

Loading…
Cancel
Save