From 2b0e3a5b1a595c5c8463706452637c3ed716e0c8 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Sun, 14 May 2023 23:12:23 +0200 Subject: [PATCH] nodeparser: Move an error check By putting the check earlier, it will be emitted for the right token. --- gsk/gskrendernodeparser.c | 17 +++++++++-------- testsuite/gsk/nodeparser/debug-fail.errors | 4 ++-- testsuite/gsk/nodeparser/gradient-fail.errors | 2 +- testsuite/gsk/nodeparser/shadow-fail.errors | 2 +- testsuite/gsk/nodeparser/text-fail.errors | 4 ++-- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/gsk/gskrendernodeparser.c b/gsk/gskrendernodeparser.c index 5c29ce0918..c8ffad4bd1 100644 --- a/gsk/gskrendernodeparser.c +++ b/gsk/gskrendernodeparser.c @@ -1081,20 +1081,21 @@ parse_declarations (GtkCssParser *parser, { if (gtk_css_parser_try_ident (parser, declarations[i].name)) { + if (parsed & (1 << i)) + { + gtk_css_parser_warn_syntax (parser, "Variable \"%s\" defined multiple times", declarations[i].name); + /* Unset, just to be sure */ + parsed &= ~(1 << i); + if (declarations[i].clear_func) + declarations[i].clear_func (declarations[i].result); + } + if (!gtk_css_parser_try_token (parser, GTK_CSS_TOKEN_COLON)) { gtk_css_parser_error_syntax (parser, "Expected ':' after variable declaration"); } else { - if (parsed & (1 << i)) - { - gtk_css_parser_warn_syntax (parser, "Variable \"%s\" defined multiple times", declarations[i].name); - /* Unset, just to be sure */ - parsed &= ~(1 << i); - if (declarations[i].clear_func) - declarations[i].clear_func (declarations[i].result); - } if (!declarations[i].parse_func (parser, context, declarations[i].result)) { /* nothing to do */ diff --git a/testsuite/gsk/nodeparser/debug-fail.errors b/testsuite/gsk/nodeparser/debug-fail.errors index e8b664c7d9..0b8b382c70 100644 --- a/testsuite/gsk/nodeparser/debug-fail.errors +++ b/testsuite/gsk/nodeparser/debug-fail.errors @@ -1,2 +1,2 @@ -:5:10-11: error: GTK_CSS_PARSER_WARNING_SYNTAX -:6:8-9: error: GTK_CSS_PARSER_WARNING_SYNTAX +:5:3-10: error: GTK_CSS_PARSER_WARNING_SYNTAX +:6:3-8: error: GTK_CSS_PARSER_WARNING_SYNTAX diff --git a/testsuite/gsk/nodeparser/gradient-fail.errors b/testsuite/gsk/nodeparser/gradient-fail.errors index 052224ba76..259b20a3d5 100644 --- a/testsuite/gsk/nodeparser/gradient-fail.errors +++ b/testsuite/gsk/nodeparser/gradient-fail.errors @@ -1 +1 @@ -:3:8-9: error: GTK_CSS_PARSER_WARNING_SYNTAX +:3:3-8: error: GTK_CSS_PARSER_WARNING_SYNTAX diff --git a/testsuite/gsk/nodeparser/shadow-fail.errors b/testsuite/gsk/nodeparser/shadow-fail.errors index bb77a372fc..d6984612c1 100644 --- a/testsuite/gsk/nodeparser/shadow-fail.errors +++ b/testsuite/gsk/nodeparser/shadow-fail.errors @@ -2,7 +2,7 @@ :2:11-13: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE :2:13-14: error: GTK_CSS_PARSER_ERROR_SYNTAX :2:13-14: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE -:3:9-10: error: GTK_CSS_PARSER_WARNING_SYNTAX +:3:2-9: error: GTK_CSS_PARSER_WARNING_SYNTAX :3:11-13: error: GTK_CSS_PARSER_ERROR_SYNTAX :3:11-13: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE :3:13-14: error: GTK_CSS_PARSER_ERROR_SYNTAX diff --git a/testsuite/gsk/nodeparser/text-fail.errors b/testsuite/gsk/nodeparser/text-fail.errors index 1df16b5cff..612c1ad4b5 100644 --- a/testsuite/gsk/nodeparser/text-fail.errors +++ b/testsuite/gsk/nodeparser/text-fail.errors @@ -1,3 +1,3 @@ -:4:7-8: error: GTK_CSS_PARSER_WARNING_SYNTAX -:6:9-10: error: GTK_CSS_PARSER_WARNING_SYNTAX +:4:3-7: error: GTK_CSS_PARSER_WARNING_SYNTAX +:6:3-9: error: GTK_CSS_PARSER_WARNING_SYNTAX :8:1-2: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE -- 2.30.2