aboutsummaryrefslogtreecommitdiff
path: root/boot/result.cc
diff options
context:
space:
mode:
Diffstat (limited to 'boot/result.cc')
-rw-r--r--boot/result.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/boot/result.cc b/boot/result.cc
index 15fe8b4..a5f0803 100644
--- a/boot/result.cc
+++ b/boot/result.cc
@@ -129,6 +129,28 @@ namespace elna::boot
return this->m_exported;
}
+ std::optional<std::pair<std::string, source_position>> previous_declaration_note(
+ const std::optional<source_position>& original, std::string_view label)
+ {
+ if (original.has_value() && original.value().start().available())
+ {
+ return std::make_pair(std::string(label), original.value());
+ }
+ else
+ {
+ return std::nullopt;
+ }
+ }
+
+ std::optional<std::pair<std::string, source_position>> identifier_list_note(
+ const std::vector<identifier>& identifiers)
+ {
+ auto position_span = source_position(identifiers.front().position().start(),
+ identifiers.back().position().end());
+
+ return std::make_optional(std::make_pair(join(identifiers), position_span));
+ }
+
std::vector<identifier> extract_identifiers(const std::vector<identifier_definition>& identifiers)
{
std::vector<identifier> result;