nodeparser: Move an error check
authorBenjamin Otte <otte@redhat.com>
Sun, 14 May 2023 21:12:23 +0000 (23:12 +0200)
committerBenjamin Otte <otte@redhat.com>
Tue, 16 May 2023 16:53:53 +0000 (18:53 +0200)
By putting the check earlier, it will be emitted for the right token.

gsk/gskrendernodeparser.c
testsuite/gsk/nodeparser/debug-fail.errors
testsuite/gsk/nodeparser/gradient-fail.errors
testsuite/gsk/nodeparser/shadow-fail.errors
testsuite/gsk/nodeparser/text-fail.errors

index 5c29ce0918e0a5ad5b1cd7c27cfe37ba91dfc24a..c8ffad4bd10b780de83cba0cb0f01ba4356758c0 100644 (file)
@@ -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 */
index e8b664c7d9eb8aa4957c47a0d7fe136fb8c76428..0b8b382c70983a20baa848a24f628c4c57afbb53 100644 (file)
@@ -1,2 +1,2 @@
-<data>:5:10-11: error: GTK_CSS_PARSER_WARNING_SYNTAX
-<data>:6:8-9: error: GTK_CSS_PARSER_WARNING_SYNTAX
+<data>:5:3-10: error: GTK_CSS_PARSER_WARNING_SYNTAX
+<data>:6:3-8: error: GTK_CSS_PARSER_WARNING_SYNTAX
index 052224ba76be0ca7fcdaf93f6c7e58846556994d..259b20a3d5718c8983c82889675bff4fb1599a4f 100644 (file)
@@ -1 +1 @@
-<data>:3:8-9: error: GTK_CSS_PARSER_WARNING_SYNTAX
+<data>:3:3-8: error: GTK_CSS_PARSER_WARNING_SYNTAX
index bb77a372fc6f2178f8f2dbce713eb53a037bb1c7..d6984612c17138a859cd23356cebb1678d303c97 100644 (file)
@@ -2,7 +2,7 @@
 <data>:2:11-13: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
 <data>:2:13-14: error: GTK_CSS_PARSER_ERROR_SYNTAX
 <data>:2:13-14: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
-<data>:3:9-10: error: GTK_CSS_PARSER_WARNING_SYNTAX
+<data>:3:2-9: error: GTK_CSS_PARSER_WARNING_SYNTAX
 <data>:3:11-13: error: GTK_CSS_PARSER_ERROR_SYNTAX
 <data>:3:11-13: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
 <data>:3:13-14: error: GTK_CSS_PARSER_ERROR_SYNTAX
index 1df16b5cffee63e8a362d2f5e0d33559e7be23fd..612c1ad4b5d2bb4e9dbbdf3c1523eba0afb147e0 100644 (file)
@@ -1,3 +1,3 @@
-<data>:4:7-8: error: GTK_CSS_PARSER_WARNING_SYNTAX
-<data>:6:9-10: error: GTK_CSS_PARSER_WARNING_SYNTAX
+<data>:4:3-7: error: GTK_CSS_PARSER_WARNING_SYNTAX
+<data>:6:3-9: error: GTK_CSS_PARSER_WARNING_SYNTAX
 <data>:8:1-2: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE