Browse Source

Merge pull request #1166 from krux02/minor-fix-2

fix compiler crash in ast_end_token
gingerBill 4 years ago
parent
commit
daccfca11d
1 changed files with 7 additions and 2 deletions
  1. 7 2
      src/parser_pos.cpp

+ 7 - 2
src/parser_pos.cpp

@@ -271,8 +271,13 @@ Token ast_end_token(Ast *node) {
 		if (node->Attribute.close.kind != Token_Invalid) {
 			return node->Attribute.close;
 		}
-		return ast_end_token(node->Attribute.elems[node->Attribute.elems.count-1]);
-
+		if (node->Attribute.elems.count > 0) {
+			return ast_end_token(node->Attribute.elems[node->Attribute.elems.count-1]);
+		}
+		if (node->Attribute.open.kind != Token_Invalid) {
+			return node->Attribute.open;
+		}
+		return node->Attribute.token;
 	case Ast_Field:
 		if (node->Field.tag.kind != Token_Invalid) {
 			return node->Field.tag;