aboutsummaryrefslogtreecommitdiff
path: root/src/parser_pos.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-06-03 11:35:27 +0100
committergingerBill <bill@gingerbill.org>2021-06-03 11:35:27 +0100
commit47f9e8f85060b7707be0f42c464e284cfc585273 (patch)
treeae73912de20bf1af36d5e1176a74b99658935081 /src/parser_pos.cpp
parentba3f2a6a0cdea0aad2668823235ead4e193d91f6 (diff)
Fix `ast_end_token` for `[?]T` types
Diffstat (limited to 'src/parser_pos.cpp')
-rw-r--r--src/parser_pos.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/parser_pos.cpp b/src/parser_pos.cpp
index 895818873..921836afe 100644
--- a/src/parser_pos.cpp
+++ b/src/parser_pos.cpp
@@ -147,7 +147,11 @@ Token ast_end_token(Ast *node) {
return ast_end_token(node->TagExpr.expr);
}
return node->TagExpr.name;
- case Ast_UnaryExpr: return ast_end_token(node->UnaryExpr.expr);
+ case Ast_UnaryExpr:
+ if (node->UnaryExpr.expr) {
+ return ast_end_token(node->UnaryExpr.expr);
+ }
+ return node->UnaryExpr.op;
case Ast_BinaryExpr: return ast_end_token(node->BinaryExpr.right);
case Ast_ParenExpr: return node->ParenExpr.close;
case Ast_CallExpr: return node->CallExpr.close;