From 2f713b3a3444f57c3379579899cdbe8c7c56b9e4 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Fri, 28 Nov 2014 13:36:46 -0600 Subject: [PATCH] Make evaluator compatible with re-evaluating symbolic expressions when subscript-by-getitem is disabled --- pymbolic/mapper/evaluator.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pymbolic/mapper/evaluator.py b/pymbolic/mapper/evaluator.py index 89270e0..aed8876 100644 --- a/pymbolic/mapper/evaluator.py +++ b/pymbolic/mapper/evaluator.py @@ -76,7 +76,13 @@ class EvaluationMapper(RecursiveMapper, CSECachingMapperMixin): return self.rec(expr.function)(*args, **kwargs) def map_subscript(self, expr): - return self.rec(expr.aggregate)[self.rec(expr.index)] + rec_result = self.rec(expr.aggregate) + + from pymbolic.primitives import Expression + if isinstance(rec_result, Expression): + return rec_result.index(self.rec(expr.index)) + else: + return rec_result[self.rec(expr.index)] def map_lookup(self, expr): return getattr(self.rec(expr.aggregate), expr.name) -- GitLab