diff --git a/src/front/glsl/parser.rs b/src/front/glsl/parser.rs index 471dd3dd1c..a17d241d9e 100644 --- a/src/front/glsl/parser.rs +++ b/src/front/glsl/parser.rs @@ -860,10 +860,6 @@ impl<'source, 'program, 'options> Parser<'source, 'program, 'options> { let mut span = 0; loop { - if let TokenValue::RightBrace = self.expect_peek()?.value { - break; - } - // TODO: type_qualifier let ty = self.parse_type_non_void()?.0; @@ -884,6 +880,10 @@ impl<'source, 'program, 'options> Parser<'source, 'program, 'options> { span += self.program.module.types[ty] .inner .span(&self.program.module.constants); + + if let TokenValue::RightBrace = self.expect_peek()?.value { + break; + } } Ok(span) diff --git a/src/front/glsl/parser_tests.rs b/src/front/glsl/parser_tests.rs index 947fba1c43..88f252761a 100644 --- a/src/front/glsl/parser_tests.rs +++ b/src/front/glsl/parser_tests.rs @@ -507,4 +507,13 @@ fn structs() { &entry_points, ) .unwrap(); + + parse_program( + r#" + # version 450 + struct Test {}; + "#, + &entry_points, + ) + .unwrap_err(); }