mirror of
https://github.com/m-labs/artiq.git
synced 2024-12-25 03:08:27 +08:00
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):
|
||||
self.generic_visit(node)
|
||||
|
||||
if (types.is_builtin(node.func.type, "int") or
|
||||
types.is_builtin(node.func.type, "int32") or
|
||||
types.is_builtin(node.func.type, "int64")):
|
||||
if ((types.is_builtin(node.func.type, "int") or
|
||||
types.is_builtin(node.func.type, "int32") or
|
||||
types.is_builtin(node.func.type, "int64")) and
|
||||
types.is_var(node.type)):
|
||||
typ = node.type.find()
|
||||
if (not types.is_var(typ["width"]) and
|
||||
builtins.is_int(node.args[0].type) and
|
||||
|
Loading…
Reference in New Issue
Block a user