Skip to content

Commit 3de40c0

Browse files
committed
undoing the disaster
1 parent c7da800 commit 3de40c0

File tree

2 files changed

+693
-455
lines changed

2 files changed

+693
-455
lines changed

mathics/builtin/patterns.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,10 +1005,10 @@ def __repr__(self):
10051005
def get_match_count(self, vars={}):
10061006
return self.pattern.get_match_count(vars)
10071007

1008-
def match(self, yield_func, expression, vars, evaluation, **kwargs):
1009-
existing = vars.get(self.varname, None)
1008+
def match(self, yield_func, expression, vars_dict, evaluation, **kwargs):
1009+
existing = vars_dict.get(self.varname, None)
10101010
if existing is None:
1011-
new_vars = vars.copy()
1011+
new_vars = vars_dict.copy()
10121012
new_vars[self.varname] = expression
10131013
# for vars_2, rest in self.pattern.match(
10141014
# expression, new_vars, evaluation):
@@ -1021,22 +1021,24 @@ def match(self, yield_func, expression, vars, evaluation, **kwargs):
10211021
self.pattern.match(yield_func, expression, new_vars, evaluation)
10221022
else:
10231023
if existing.sameQ(expression):
1024-
yield_func(vars, None)
1024+
yield_func(vars_dict, None)
10251025

10261026
def get_match_candidates(
1027-
self, elements: tuple, expression, attributes, evaluation, vars={}
1027+
self, elements: tuple, expression, attributes, evaluation, vars_dict=None
10281028
):
1029-
existing = vars.get(self.varname, None)
1029+
if vars_dict is None:
1030+
vars_dict = {}
1031+
existing = vars_dict.get(self.varname, None)
10301032
if existing is None:
10311033
return self.pattern.get_match_candidates(
1032-
elements, expression, attributes, evaluation, vars
1034+
elements, expression, attributes, evaluation, vars_dict
10331035
)
10341036
else:
10351037
# Treat existing variable as verbatim
10361038
verbatim_expr = Expression(SymbolVerbatim, existing)
10371039
verbatim = Verbatim(verbatim_expr)
10381040
return verbatim.get_match_candidates(
1039-
elements, expression, attributes, evaluation, vars
1041+
elements, expression, attributes, evaluation, vars_dict
10401042
)
10411043

10421044

0 commit comments

Comments
 (0)