diff --git a/vlib/v/gen/c/assign.v b/vlib/v/gen/c/assign.v index 609dadb5e71e49..88fc9abb91a144 100644 --- a/vlib/v/gen/c/assign.v +++ b/vlib/v/gen/c/assign.v @@ -372,7 +372,7 @@ fn (mut g Gen) assign_stmt(node_ ast.AssignStmt) { g.assign_ct_type = var_type } } else if val is ast.InfixExpr && val.op in [.plus, .minus, .mul, .div, .mod] - && g.comptime.is_comptime(val.left) { + && val.left_ct_expr { ctyp := g.unwrap_generic(g.type_resolver.get_type(val.left)) if ctyp != ast.void_type { ct_type_var := g.comptime.get_ct_type_var(val.left) diff --git a/vlib/v/type_resolver/type_resolver.v b/vlib/v/type_resolver/type_resolver.v index 484d28583c808b..ff07afc874a341 100644 --- a/vlib/v/type_resolver/type_resolver.v +++ b/vlib/v/type_resolver/type_resolver.v @@ -207,9 +207,9 @@ pub fn (mut t TypeResolver) get_type(node ast.Expr) ast.Type { } else if node is ast.ParExpr && t.info.is_comptime(node.expr) { return t.get_type(node.expr) } else if node is ast.InfixExpr { - if !node.left.is_literal() && t.info.is_comptime(node.left) { + if node.left_ct_expr { return t.get_type(node.left) - } else if !node.right.is_literal() && t.info.is_comptime(node.right) { + } else if node.right_ct_expr { return t.get_type(node.right) } } else if node is ast.CastExpr && node.typ.has_flag(.generic) {