bug fixes

This commit is contained in:
ProgramSnail 2023-07-06 16:15:15 +03:00
parent 777fd830b0
commit bb8b32a7c8
5 changed files with 136 additions and 109 deletions

View file

@ -1009,7 +1009,8 @@ void BuildVisitor::Visit(FunctionCallExpression* node) {
Visit(node->parameters.back().get());
} else {
if (!current_node_.PreviousSibling().IsNull() && current_node_.PreviousSibling().GetValue() == "::") { // annotation
node->arguments.push_back({current_node_.GetValue(), SubExpression()});
node->arguments.emplace_back();
node->arguments.back().first = current_node_.GetValue();
last_child_is_annotation = true;
} else if (last_child_is_annotation) { // argument after annotation
node->arguments.back().second = std::make_unique<SubExpressionToken>();
@ -1018,7 +1019,6 @@ void BuildVisitor::Visit(FunctionCallExpression* node) {
} else { // argument without annotation
node->arguments.push_back({std::nullopt, std::make_unique<SubExpressionToken>()});
Visit(*std::get<std::unique_ptr<SubExpressionToken>>(node->arguments.back().second));
last_child_is_annotation = false;
}
}
}