From ba75ca6efe89b64259c48d7f994d740507e80679 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Capucho?= Date: Tue, 6 Jul 2021 17:19:58 +0100 Subject: [PATCH] [glsl-in] Don't implicitly cast shifts --- src/front/glsl/ast.rs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/front/glsl/ast.rs b/src/front/glsl/ast.rs index 306bf17958..8ee5e004b4 100644 --- a/src/front/glsl/ast.rs +++ b/src/front/glsl/ast.rs @@ -511,9 +511,19 @@ impl<'function> Context<'function> { let (mut left, left_meta) = self.lower_expect(program, left, false, body)?; let (mut right, right_meta) = self.lower_expect(program, right, false, body)?; - self.binary_implicit_conversion( - program, &mut left, left_meta, &mut right, right_meta, - )?; + match op { + BinaryOperator::ShiftLeft | BinaryOperator::ShiftRight => self + .implicit_conversion( + program, + &mut right, + right_meta, + ScalarKind::Uint, + 4, + )?, + _ => self.binary_implicit_conversion( + program, &mut left, left_meta, &mut right, right_meta, + )?, + } program.typifier_grow(self, left, left_meta)?; program.typifier_grow(self, right, right_meta)?;