120120from mypyc .primitives .str_ops import str_slice_op
121121from mypyc .primitives .tuple_ops import list_tuple_op , tuple_slice_op
122122
123- ConstantValueTuple = Union [ConstantValue , tuple ["ConstantValueTuple" , ...]]
123+ ConstantValueOrTuple = Union [ConstantValue , "ConstantValueTuple" ]
124+ ConstantValueTuple = tuple [ConstantValueOrTuple , ...]
124125
125126# Name and attribute references
126127
@@ -1014,7 +1015,7 @@ def _visit_tuple_display(builder: IRBuilder, expr: TupleExpr) -> Value:
10141015
10151016def dict_literal_values (
10161017 builder : IRBuilder , items : Sequence [tuple [Expression | None , Expression ]], line : int
1017- ) -> dict [ConstantValueTuple , ConstantValueTuple ] | None :
1018+ ) -> dict [ConstantValueOrTuple , ConstantValueOrTuple ] | None :
10181019 """Try to extract a constant dict from a dict literal, recursively staticizing nested dicts.
10191020
10201021 If all keys and values are deeply immutable and constant (including nested dicts as values),
@@ -1023,15 +1024,13 @@ def dict_literal_values(
10231024
10241025 def constant_fold_expr_or_tuple (
10251026 builder : IRBuilder , expr : Expression
1026- ) -> ConstantValueTuple | None :
1027+ ) -> ConstantValueOrTuple | None :
10271028 value = constant_fold_expr (builder , expr )
10281029 if value is not None :
10291030 return value
10301031 if not isinstance (expr , TupleExpr ):
10311032 return None
1032- folded : ConstantValueTuple = tuple (
1033- map (partial (constant_fold_expr_or_tuple , builder ), expr .items )
1034- )
1033+ folded = tuple (map (partial (constant_fold_expr_or_tuple , builder ), expr .items ))
10351034 return folded if None not in folded else None
10361035
10371036 result = {}
0 commit comments