Skip to content

Commit

Permalink
fix implicit vec2/vec3/vec4 implicit cast for +=> -=>
Browse files Browse the repository at this point in the history
  • Loading branch information
gewang committed Nov 13, 2024
1 parent 5af226c commit 9808053
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/core/chuck_type.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2005,6 +2005,7 @@ t_CKTYPE type_engine_check_op( Chuck_Env * env, ae_Operator op, a_Exp lhs, a_Exp
left = lhs->cast_to = env->ckt_string;
}
case ae_op_minus:
// vectors implicit conversions
CK_LR( te_vec3, te_vec4 ) left = lhs->cast_to = env->ckt_vec4;
else CK_LR( te_vec4, te_vec3 ) right = rhs->cast_to = env->ckt_vec4;
else CK_LR( te_vec2, te_vec4 ) left = lhs->cast_to = env->ckt_vec4;
Expand Down Expand Up @@ -2047,6 +2048,13 @@ t_CKTYPE type_engine_check_op( Chuck_Env * env, ae_Operator op, a_Exp lhs, a_Exp
if( isa( left, env->ckt_object ) && isa( right, env->ckt_string ) && !isa( left, env->ckt_string ) )
left = lhs->cast_to = env->ckt_string;
case ae_op_minus_chuck:
// vec implicit conversions | 1.5.4.2 (ge) added
CK_LR( te_vec3, te_vec4 ) left = lhs->cast_to = env->ckt_vec4;
else CK_LR( te_vec4, te_vec3 ) right = rhs->cast_to = env->ckt_vec4;
else CK_LR( te_vec2, te_vec4 ) left = lhs->cast_to = env->ckt_vec4;
else CK_LR( te_vec4, te_vec2 ) right = rhs->cast_to = env->ckt_vec4;
else CK_LR( te_vec2, te_vec3 ) left = lhs->cast_to = env->ckt_vec3;
else CK_LR( te_vec3, te_vec2 ) right = rhs->cast_to = env->ckt_vec3;
case ae_op_times_chuck:
case ae_op_divide_chuck:
case ae_op_percent_chuck:
Expand Down

0 comments on commit 9808053

Please sign in to comment.