From e07baa804502b5dbe99c75c6148410bf2122221b Mon Sep 17 00:00:00 2001 From: lin-hitonami <linjiang@taichi.graphics> Date: Mon, 31 Oct 2022 11:47:18 +0800 Subject: [PATCH] [Error] Return TaichiTypeError in ASTTransformer when a binary op is not supported --- python/taichi/lang/ast/ast_transformer.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/python/taichi/lang/ast/ast_transformer.py b/python/taichi/lang/ast/ast_transformer.py index d53ad8b0929ea..681f28225c4d5 100644 --- a/python/taichi/lang/ast/ast_transformer.py +++ b/python/taichi/lang/ast/ast_transformer.py @@ -13,7 +13,7 @@ from taichi.lang.ast.ast_transformer_utils import (Builder, LoopStatus, ReturnStatus) from taichi.lang.ast.symbol_resolver import ASTResolver -from taichi.lang.exception import TaichiSyntaxError +from taichi.lang.exception import TaichiSyntaxError, TaichiTypeError from taichi.lang.expr import Expr from taichi.lang.field import Field from taichi.lang.impl import current_cfg @@ -803,7 +803,10 @@ def build_BinOp(ctx, node): ast.BitAnd: lambda l, r: l & r, ast.MatMult: lambda l, r: l @ r, }.get(type(node.op)) - node.ptr = op(node.left.ptr, node.right.ptr) + try: + node.ptr = op(node.left.ptr, node.right.ptr) + except TypeError as e: + raise TaichiTypeError(str(e)) return node.ptr @staticmethod