From f85c896ddfd13694bc46af8da1bc04034af5c43e Mon Sep 17 00:00:00 2001 From: Frizi Date: Tue, 15 Jun 2021 18:03:32 +0200 Subject: [PATCH] [glsl-in] require at least one item inside struct_declaration_list --- src/front/glsl/parser.rs | 8 ++++---- src/front/glsl/parser_tests.rs | 9 +++++++++ 2 files changed, 13 insertions(+), 4 deletions(-) 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(); }