Skip to content

Commit 34dba05

Browse files
authored
Merge pull request #2544 from devitocodes/fix-application-call
compiler: fix application visitor for nest Call
2 parents 9a0b84b + c83cb10 commit 34dba05

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

devito/ir/iet/visitors.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1113,7 +1113,7 @@ def visit_Call(self, o, **kwargs):
11131113
try:
11141114
ret.update(i.find(self.match))
11151115
except (AttributeError, TypeError):
1116-
continue
1116+
ret.update(self._visit(i, ret=ret))
11171117
return ret
11181118

11191119

tests/test_visitors.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22
from sympy import Mod
33
import pytest
44

5-
from devito import Grid, Eq, Function, TimeFunction, Operator, sin
5+
from devito import Grid, Eq, Function, TimeFunction, Operator, Min, sin
66
from devito.ir.equations import DummyEq
77
from devito.ir.iet import (Block, Expression, Callable, FindNodes, FindSections,
88
FindSymbols, IsPerfectIteration, Transformer,
9-
Conditional, printAST, Iteration, MapNodes, Call)
10-
from devito.types import SpaceDimension, Array
9+
Conditional, printAST, Iteration, MapNodes, Call,
10+
FindApplications)
11+
from devito.types import SpaceDimension, Array, Symbol
1112

1213

1314
@pytest.fixture(scope="module")
@@ -395,3 +396,11 @@ def test_map_nodes(block1):
395396
processed = Transformer({iters[0]: Call(callback.name)}).visit(block1)
396397

397398
assert str(processed) == 'solver();'
399+
400+
401+
def test_find_apps_nested_calls(exprs, iters):
402+
s = Symbol(name='s')
403+
call = Call('foo', Call('bar', [Min(s, 1)]))
404+
block = iters[0](iters[1](exprs + [call]))
405+
406+
assert len(FindApplications().visit(block)) == 1

0 commit comments

Comments
 (0)