aboutsummaryrefslogtreecommitdiff
path: root/src/check_expr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/check_expr.cpp')
-rw-r--r--src/check_expr.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/check_expr.cpp b/src/check_expr.cpp
index a915aa92f..9818b5015 100644
--- a/src/check_expr.cpp
+++ b/src/check_expr.cpp
@@ -10075,7 +10075,16 @@ ExprKind check_expr_base_internal(CheckerContext *c, Operand *o, Ast *node, Type
return kind;
}
if (type_hint) {
+ Type *type = type_of_expr(ac->expr);
check_cast(c, o, type_hint);
+ if (is_type_typed(type) && are_types_identical(type, type_hint)) {
+ if (build_context.vet) {
+ error(node, "Redundant 'auto_cast' applied to expression");
+ } else {
+ warning(node, "Redundant 'auto_cast' applied to expression");
+ }
+ }
+
}
o->expr = node;
return Expr_Expr;