From 050eb5afa88c75a053b78b484b761344fc91ecff Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 19 Dec 2020 18:13:36 +0100 Subject: [PATCH] AK: Mark some Span functions with [[nodiscard]] I was confused by the trim() API, thinking it would mutate the span it was called on. Mark all const functions that return a new span with [[nodiscard]] so we can catch such mistakes. --- AK/Span.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/AK/Span.h b/AK/Span.h index e3c9a3eefe9..7bfae70adf7 100644 --- a/AK/Span.h +++ b/AK/Span.h @@ -134,18 +134,18 @@ public: ALWAYS_INLINE constexpr bool is_null() const { return this->m_values == nullptr; } ALWAYS_INLINE constexpr bool is_empty() const { return this->m_size == 0; } - ALWAYS_INLINE constexpr Span slice(size_t start, size_t length) const + [[nodiscard]] ALWAYS_INLINE constexpr Span slice(size_t start, size_t length) const { ASSERT(start + length <= size()); return { this->m_values + start, length }; } - ALWAYS_INLINE constexpr Span slice(size_t start) const + [[nodiscard]] ALWAYS_INLINE constexpr Span slice(size_t start) const { ASSERT(start <= size()); return { this->m_values + start, size() - start }; } - ALWAYS_INLINE constexpr Span trim(size_t length) const + [[nodiscard]] ALWAYS_INLINE constexpr Span trim(size_t length) const { return { this->m_values, min(size(), length) }; }