diff --git a/src/front/glsl/parser/functions.rs b/src/front/glsl/parser/functions.rs index af1568fcd4..c91e6aeb22 100644 --- a/src/front/glsl/parser/functions.rs +++ b/src/front/glsl/parser/functions.rs @@ -495,6 +495,8 @@ impl<'source> ParsingContext<'source> { | TokenValue::Bang | TokenValue::Tilde | TokenValue::LeftParen + | TokenValue::Increment + | TokenValue::Decrement | TokenValue::Identifier(_) | TokenValue::TypeName(_) | TokenValue::IntConstant(_) diff --git a/src/front/glsl/parser_tests.rs b/src/front/glsl/parser_tests.rs index 10c4b92c20..717737bc59 100644 --- a/src/front/glsl/parser_tests.rs +++ b/src/front/glsl/parser_tests.rs @@ -778,9 +778,10 @@ fn swizzles() { } #[test] -fn vector_indexing() { +fn expressions() { let mut parser = Parser::default(); + // Vector indexing parser .parse( &Options::from(ShaderStage::Vertex), @@ -795,4 +796,20 @@ fn vector_indexing() { "#, ) .unwrap(); + + // Prefix increment/decrement + parser + .parse( + &Options::from(ShaderStage::Vertex), + r#" + # version 450 + void main() { + uint index = 0; + + --index; + ++index; + } + "#, + ) + .unwrap(); }