@@ -606,7 +606,15 @@ def translate_isinstance(builder: IRBuilder, expr: CallExpr, callee: RefExpr) ->
606606 obj = builder .accept (obj_expr , can_borrow = can_borrow )
607607 return builder .builder .isinstance_helper (obj , irs , expr .line )
608608
609- if isinstance (type_expr , TupleExpr ):
609+ if isinstance (type_expr , RefExpr ):
610+ node = type_expr .node
611+ if node :
612+ desc = isinstance_primitives .get (node .fullname )
613+ if desc :
614+ obj = builder .accept (obj_expr )
615+ return builder .primitive_op (desc , [obj ], expr .line )
616+
617+ elif isinstance (type_expr , TupleExpr ):
610618 node_names : list [str ] = []
611619 for item in type_expr .items :
612620 if not isinstance (item , RefExpr ):
@@ -652,14 +660,6 @@ def translate_isinstance(builder: IRBuilder, expr: CallExpr, callee: RefExpr) ->
652660 builder .activate_block (exit_block )
653661 return retval
654662
655- if isinstance (type_expr , RefExpr ):
656- node = type_expr .node
657- if node :
658- desc = isinstance_primitives .get (node .fullname )
659- if desc :
660- obj = builder .accept (obj_expr )
661- return builder .primitive_op (desc , [obj ], expr .line )
662-
663663 return None
664664
665665
0 commit comments