|
24 | 24 | from mathics.core.convert.python import from_bool |
25 | 25 | from mathics.core.convert.sympy import from_sympy |
26 | 26 | from mathics.core.definitions import Definition |
| 27 | +from mathics.core.evaluation import Evaluation |
27 | 28 | from mathics.core.exceptions import MessageException |
28 | 29 | from mathics.core.expression import Expression, SymbolDefault |
29 | 30 | from mathics.core.interrupt import BreakInterrupt, ContinueInterrupt, ReturnInterrupt |
@@ -932,14 +933,16 @@ class PatternObject(BuiltinElement, Pattern): |
932 | 933 |
|
933 | 934 | arg_counts: List[int] = [] |
934 | 935 |
|
935 | | - def init(self, expr): |
936 | | - super().init(expr) |
| 936 | + def init(self, expr, evaluation: Optional[Evaluation] = None): |
| 937 | + super().init(expr, evaluation=evaluation) |
937 | 938 | if self.arg_counts is not None: |
938 | 939 | if len(expr.elements) not in self.arg_counts: |
939 | 940 | self.error_args(len(expr.elements), *self.arg_counts) |
940 | 941 | self.expr = expr |
941 | | - self.head = Pattern.create(expr.head) |
942 | | - self.elements = [Pattern.create(element) for element in expr.elements] |
| 942 | + self.head = Pattern.create(expr.head, evaluation=evaluation) |
| 943 | + self.elements = [ |
| 944 | + Pattern.create(element, evaluation=evaluation) for element in expr.elements |
| 945 | + ] |
943 | 946 |
|
944 | 947 | def error(self, tag, *args): |
945 | 948 | raise PatternError(self.get_name(), tag, *args) |
|
0 commit comments