diff --git a/slither/solc_parsing/slither_compilation_unit_solc.py b/slither/solc_parsing/slither_compilation_unit_solc.py index 78944449c..fada372fa 100644 --- a/slither/solc_parsing/slither_compilation_unit_solc.py +++ b/slither/solc_parsing/slither_compilation_unit_solc.py @@ -56,25 +56,25 @@ def _handle_import_aliases( to_import = [] for symbol_alias in symbol_aliases: if "foreign" in symbol_alias: - original_name = symbol_alias["foreign"]["name"] - to_import.append(original_name) - if "local" in symbol_alias: - if isinstance(symbol_alias["foreign"], dict) and "name" in symbol_alias["foreign"]: + if isinstance(symbol_alias["foreign"], dict) and "name" in symbol_alias["foreign"]: + original_name = symbol_alias["foreign"]["name"] + to_import.append(original_name) + if "local" in symbol_alias: local_name = symbol_alias["local"] import_directive.renaming[local_name] = original_name # Assuming that two imports cannot collide in renaming scope.renaming[local_name] = original_name - - # This path should only be hit for the malformed AST of solc 0.5.12 where - # the foreign identifier cannot be found but is required to resolve the alias. - # see https://github.com/crytic/slither/issues/1319 - elif symbol_alias["local"]: - raise SlitherException( - "Cannot resolve local alias for import directive due to malformed AST. Please upgrade to solc 0.6.0 or higher." - ) + # This path should only be hit for the malformed AST of solc 0.5.12 where + # the foreign identifier cannot be found but is required to resolve the alias. + # see https://github.com/crytic/slither/issues/1319 + elif symbol_alias["local"]: + raise SlitherException( + "Cannot resolve local alias for import directive due to malformed AST. Please upgrade to solc 0.6.0 or higher." + ) return to_import + class SlitherCompilationUnitSolc(CallerContextExpression): # pylint: disable=no-self-use,too-many-instance-attributes def __init__(self, compilation_unit: SlitherCompilationUnit) -> None: