forked from M-Labs/artiq
compiler: rein in overzealous cast monomorphization.
This caused failures on e.g. "int32(var64a >> var64b)", where the type of the argument is already fully known, but was unified with the result of the cast anyway.
This commit is contained in:
parent
4c94873560
commit
4305903dde
|
@ -13,9 +13,10 @@ class CastMonomorphizer(algorithm.Visitor):
|
||||||
def visit_CallT(self, node):
|
def visit_CallT(self, node):
|
||||||
self.generic_visit(node)
|
self.generic_visit(node)
|
||||||
|
|
||||||
if (types.is_builtin(node.func.type, "int") or
|
if ((types.is_builtin(node.func.type, "int") or
|
||||||
types.is_builtin(node.func.type, "int32") or
|
types.is_builtin(node.func.type, "int32") or
|
||||||
types.is_builtin(node.func.type, "int64")):
|
types.is_builtin(node.func.type, "int64")) and
|
||||||
|
types.is_var(node.type)):
|
||||||
typ = node.type.find()
|
typ = node.type.find()
|
||||||
if (not types.is_var(typ["width"]) and
|
if (not types.is_var(typ["width"]) and
|
||||||
builtins.is_int(node.args[0].type) and
|
builtins.is_int(node.args[0].type) and
|
||||||
|
|
Loading…
Reference in New Issue