diff --git a/Userland/Libraries/LibCpp/Parser.cpp b/Userland/Libraries/LibCpp/Parser.cpp index 12224b6e5d..9619abab04 100644 --- a/Userland/Libraries/LibCpp/Parser.cpp +++ b/Userland/Libraries/LibCpp/Parser.cpp @@ -899,7 +899,7 @@ Optional Parser::index_of_node_at(Position pos) const if (node.start() > pos || node.end() < pos) continue; - if (!match_node_index.has_value() || (node_span(node) < node_span(m_state.nodes[match_node_index.value()]))) + if (!match_node_index.has_value() || (node_span(node) <= node_span(m_state.nodes[match_node_index.value()]))) match_node_index = node_index; } return match_node_index; diff --git a/Userland/Libraries/LibCpp/Token.cpp b/Userland/Libraries/LibCpp/Token.cpp index f069bf454a..06c21fcffe 100644 --- a/Userland/Libraries/LibCpp/Token.cpp +++ b/Userland/Libraries/LibCpp/Token.cpp @@ -20,5 +20,8 @@ bool Position::operator==(const Position& other) const { return line == other.line && column == other.column; } - +bool Position::operator<=(const Position& other) const +{ + return !(*this > other); +} } diff --git a/Userland/Libraries/LibCpp/Token.h b/Userland/Libraries/LibCpp/Token.h index 9ead283011..3f9253b06a 100644 --- a/Userland/Libraries/LibCpp/Token.h +++ b/Userland/Libraries/LibCpp/Token.h @@ -84,6 +84,7 @@ struct Position { size_t column { 0 }; bool operator<(const Position&) const; + bool operator<=(const Position&) const; bool operator>(const Position&) const; bool operator==(const Position&) const; };