forked from M-Labs/artiq
1
0
Fork 0

transforms.inferencer: do not unnecessarily mutate typedtree.

This caused the hash to change after every iteration of inference,
if the result of any coercion was an integer of indefinite width.
This commit is contained in:
whitequark 2017-03-02 16:15:37 +00:00
parent 8c9f157563
commit 7e886ddc89
1 changed files with 2 additions and 1 deletions

View File

@ -293,7 +293,8 @@ class Inferencer(algorithm.Visitor):
return coerced_node return coerced_node
elif isinstance(coerced_node, asttyped.CoerceT): elif isinstance(coerced_node, asttyped.CoerceT):
node = coerced_node node = coerced_node
node.type, node.other_value = typ, other_node node.type.unify(typ)
node.other_value = other_node
else: else:
node = asttyped.CoerceT(type=typ, value=coerced_node, other_value=other_node, node = asttyped.CoerceT(type=typ, value=coerced_node, other_value=other_node,
loc=coerced_node.loc) loc=coerced_node.loc)