Parcourir la source

Fixed issue 144 (unit test added).

Marco Bambini il y a 8 ans
Parent
commit
5b73d291c6
2 fichiers modifiés avec 6 ajouts et 4 suppressions
  1. 6 4
      src/compiler/gravity_parser.c
  2. BIN
      test/fuzzy/issue144.gravity

+ 6 - 4
src/compiler/gravity_parser.c

@@ -765,16 +765,18 @@ static gnode_t *parse_analyze_literal_string (gravity_parser_t *parser, gtoken_s
 					
 					// parse interpolated expression
 					gnode_t *subnode = parse_expression(parser);
-					if (!subnode) goto return_string;
 					
 					// add expression to r
-					if (!r) r = gnode_array_create();
-					if (length) gnode_array_push(r, gnode_literal_string_expr_create(token, buffer, length, true, LAST_DECLARATION()));
-					gnode_array_push(r, subnode);
+                    if (subnode) {
+						if (!r) r = gnode_array_create();
+						if (length) gnode_array_push(r, gnode_literal_string_expr_create(token, buffer, length, true, LAST_DECLARATION()));
+						gnode_array_push(r, subnode);
+                    }
 					
 					// free temp lexer
 					marray_pop(*parser->lexer);
 					gravity_lexer_free(sublexer);
+                    if (!subnode) goto return_string;
 					
 					buffer = mem_alloc(len+1);
 					length = 0;

BIN
test/fuzzy/issue144.gravity