提交 78ccb6f9 authored 作者: Olivier Breuleux's avatar Olivier Breuleux

x.indestructible -> x.tag.indestructible

上级 5f13b082
...@@ -26,7 +26,7 @@ default_optimizer = _DefaultOptimizer() ...@@ -26,7 +26,7 @@ default_optimizer = _DefaultOptimizer()
def _mark_indestructible(results): def _mark_indestructible(results):
for r in results: for r in results:
r.indestructible = True r.tag.indestructible = True
def linker_cls_python_and_c(env, **kwargs): def linker_cls_python_and_c(env, **kwargs):
"""Use this as the linker_cls argument to Function.__init__ to compare """Use this as the linker_cls argument to Function.__init__ to compare
...@@ -78,7 +78,7 @@ def std_env(inputs, outputs, disown_inputs = False): ...@@ -78,7 +78,7 @@ def std_env(inputs, outputs, disown_inputs = False):
input.destroyed_by_user = len(env.destroyers(input)) != 0 input.destroyed_by_user = len(env.destroyers(input)) != 0
if not input.destroyed_by_user and not disown_inputs: if not input.destroyed_by_user and not disown_inputs:
# prevent optimizations from destroying the inputs # prevent optimizations from destroying the inputs
input.indestructible = True input.tag.indestructible = True
return env return env
def std_opt(env): def std_opt(env):
......
...@@ -205,9 +205,9 @@ class _test_all(unittest.TestCase): ...@@ -205,9 +205,9 @@ class _test_all(unittest.TestCase):
def test_indestructible(self): def test_indestructible(self):
x, y, z = inputs() x, y, z = inputs()
x.indestructible = True x.tag.indestructible = True
x = copy(x) x = copy(x)
assert x.indestructible # checking if indestructible survives the copy! assert x.tag.indestructible # checking if indestructible survives the copy!
e = add_in_place(x, y) e = add_in_place(x, y)
g = Env([x,y,z], [e], False) g = Env([x,y,z], [e], False)
assert not g.consistent() assert not g.consistent()
...@@ -216,7 +216,7 @@ class _test_all(unittest.TestCase): ...@@ -216,7 +216,7 @@ class _test_all(unittest.TestCase):
def test_indestructible_through_views(self): def test_indestructible_through_views(self):
x, y, z = inputs() x, y, z = inputs()
x.indestructible = True x.tag.indestructible = True
tv = transpose_view(x) tv = transpose_view(x)
e = add_in_place(tv, y) e = add_in_place(tv, y)
g = Env([x,y,z], [e], False) g = Env([x,y,z], [e], False)
......
...@@ -374,7 +374,7 @@ class DestroyHandlerHelper(toolbox.Bookkeeper): ...@@ -374,7 +374,7 @@ class DestroyHandlerHelper(toolbox.Bookkeeper):
self.dups.add(foundation) self.dups.add(foundation)
# results marked 'indestructible' must not be destroyed. # results marked 'indestructible' must not be destroyed.
if getattr(foundation, 'indestructible', False) or isinstance(foundation, graph.Constant): if getattr(foundation.tag, 'indestructible', False) or isinstance(foundation, graph.Constant):
self.illegal.add(foundation) self.illegal.add(foundation)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论