From bce87d128b12261a37b048c5445d6962d852d7a1 Mon Sep 17 00:00:00 2001 From: tserg <8017125+tserg@users.noreply.github.com> Date: Tue, 26 Dec 2023 17:15:08 +0800 Subject: [PATCH] use throwing in prefold --- vyper/semantics/analysis/pre_typecheck.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/vyper/semantics/analysis/pre_typecheck.py b/vyper/semantics/analysis/pre_typecheck.py index aa71113e7d..223407d839 100644 --- a/vyper/semantics/analysis/pre_typecheck.py +++ b/vyper/semantics/analysis/pre_typecheck.py @@ -21,14 +21,16 @@ def get_constants(node: vy_ast.Module) -> dict: for n in c.value.get_descendants(include_self=True, reverse=True): prefold(n, constants) - val = c.value.get_folded_value_maybe() + try: + val = c.value.get_folded_value_throwing() - # note that if a constant is redefined, its value will be overwritten, - # but it is okay because the syntax error is handled downstream - if val is not None: + # note that if a constant is redefined, its value will be overwritten, + # but it is okay because the syntax error is handled downstream constants[name] = val derived_nodes += 1 const_var_decls.remove(c) + except UnfoldableNode: + pass if not derived_nodes: break