Skip to content

Commit 869616c

Browse files
Update constant_fold.py
1 parent 692844c commit 869616c

File tree

1 file changed

+27
-27
lines changed

1 file changed

+27
-27
lines changed

mypy/constant_fold.py

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -78,36 +78,36 @@ def constant_fold_expr(expr: Expression, cur_mod_id: str) -> ConstantValue | Non
7878
base = constant_fold_expr(expr.base, cur_mod_id)
7979
if base is not None:
8080
index_expr = expr.index
81-
if not isinstance(index_expr, SliceExpr):
82-
index = constant_fold_expr(index_expr, cur_mod_id)
83-
if index is not None:
84-
try:
85-
return base[index] # type: ignore [index]
86-
except Exception:
81+
if isinstance(index_expr, SliceExpr):
82+
if index_expr.begin_index is None:
83+
begin_index = None
84+
else:
85+
begin_index = constant_fold_expr(index_expr.begin_index, cur_mod_id)
86+
if begin_index is None:
8787
return None
88-
89-
if index_expr.begin_index is None:
90-
begin_index = None
91-
else:
92-
begin_index = constant_fold_expr(index_expr.begin_index, cur_mod_id)
93-
if begin_index is None:
94-
return None
95-
if index_expr.end_index is None:
96-
end_index = None
97-
else:
98-
end_index = constant_fold_expr(index_expr.end_index, cur_mod_id)
99-
if end_index is None:
88+
if index_expr.end_index is None:
89+
end_index = None
90+
else:
91+
end_index = constant_fold_expr(index_expr.end_index, cur_mod_id)
92+
if end_index is None:
93+
return None
94+
if index_expr.stride is None:
95+
stride = None
96+
else:
97+
stride = constant_fold_expr(index_expr.stride, cur_mod_id)
98+
if stride is None:
99+
return None
100+
try:
101+
return base[begin_index:end_index:stride]
102+
except Exception:
100103
return None
101-
if index_expr.stride is None:
102-
stride = None
103-
else:
104-
stride = constant_fold_expr(index_expr.stride, cur_mod_id)
105-
if stride is None:
104+
105+
index = constant_fold_expr(index_expr, cur_mod_id)
106+
if index is not None:
107+
try:
108+
return base[index] # type: ignore [index]
109+
except Exception:
106110
return None
107-
try:
108-
return base[begin_index:end_index:stride]
109-
except Exception:
110-
return None
111111
return None
112112

113113

0 commit comments

Comments
 (0)