From fb71e49501c4321054d63dcc86c6451619f05ecd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Capucho?= Date: Sun, 6 Jun 2021 18:56:36 +0100 Subject: [PATCH] [glsl-in] Implicit cast mod function --- src/front/glsl/functions.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/front/glsl/functions.rs b/src/front/glsl/functions.rs index e683b952a7..9e7655e4bb 100644 --- a/src/front/glsl/functions.rs +++ b/src/front/glsl/functions.rs @@ -244,20 +244,27 @@ impl Program<'_> { return Err(ErrorKind::wrong_function_args(name, 2, args.len(), meta)); } + let (mut left, left_meta) = args[0]; + let (mut right, right_meta) = args[1]; + + ctx.binary_implicit_conversion( + self, &mut left, left_meta, &mut right, right_meta, + )?; + let expr = if let Some(ScalarKind::Float) = self.resolve_type(ctx, args[0].0, args[1].1)?.scalar_kind() { Expression::Math { fun: MathFunction::Modf, - arg: args[0].0, - arg1: Some(args[1].0), + arg: left, + arg1: Some(right), arg2: None, } } else { Expression::Binary { op: BinaryOperator::Modulo, - left: args[0].0, - right: args[1].0, + left, + right, } };