diff --git a/vyper/semantics/analysis/pre_typecheck.py b/vyper/semantics/analysis/pre_typecheck.py index 98cfad06fb..2d8699753c 100644 --- a/vyper/semantics/analysis/pre_typecheck.py +++ b/vyper/semantics/analysis/pre_typecheck.py @@ -249,9 +249,6 @@ def visit_Dict(self, node): def visit_Index(self, node): self.visit(node.value) - index = get_folded_value(node.value) - if isinstance(index, vy_ast.Constant): - node._metadata["folded_value"] = index # repeated code for List and Tuple def _subscriptable_helper(self, node): diff --git a/vyper/semantics/utils.py b/vyper/semantics/utils.py index 0ffec4bd10..4f289ce98b 100644 --- a/vyper/semantics/utils.py +++ b/vyper/semantics/utils.py @@ -6,5 +6,8 @@ def get_folded_value(node: vy_ast.VyperNode) -> Optional[vy_ast.VyperNode]: if isinstance(node, vy_ast.Constant): return node + elif isinstance(node, vy_ast.Index): + if isinstance(node.value, vy_ast.Constant): + return node.value return node._metadata.get("folded_value")