From 902d272debd63963469b381f0461a92b16da911d Mon Sep 17 00:00:00 2001 From: lisyarus Date: Fri, 13 Mar 2026 13:39:01 +0300 Subject: [PATCH] Fix empty location in if chains --- libs/parser/source/finilize.cpp | 1 + plans.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/libs/parser/source/finilize.cpp b/libs/parser/source/finilize.cpp index cd68e89..4d61a72 100644 --- a/libs/parser/source/finilize.cpp +++ b/libs/parser/source/finilize.cpp @@ -63,6 +63,7 @@ namespace pslang::parser if (auto if_block = std::get_if(statement.statement.get())) { ast::if_chain chain; + chain.location = if_block->location; chain.blocks.push_back({.condition = std::move(if_block->condition), .statements = std::make_unique()}); list = chain.blocks.back().statements.get(); current_statement_list(location)->statements.push_back(std::make_unique(std::move(chain))); diff --git a/plans.txt b/plans.txt index 01902a5..18d9bd1 100644 --- a/plans.txt +++ b/plans.txt @@ -18,6 +18,7 @@ Aarch64 compiler backlog: * Struct values General backlog: +* Separate single-line location & full statement list location for function definitions, if chains, while blocks, structs, etc * Mutually recursive structs (relevant only with pointers) * Empty array expression * Calling functions as methods