[clang] [clang] Mark `OverloadCandidateSet::OperatorRewriteInfo` methods as const (PR #162271)
Boaz Brickner via cfe-commits
cfe-commits at lists.llvm.org
Tue Oct 7 05:21:21 PDT 2025
https://github.com/bricknerb created https://github.com/llvm/llvm-project/pull/162271
They don't mutate the object and this makes them easier to use and allows better const correctness when using Clang as a library.
>From 533e2f3a168a4ef34912f16783f76df0844448c6 Mon Sep 17 00:00:00 2001
From: Boaz Brickner <brickner at google.com>
Date: Tue, 7 Oct 2025 14:20:44 +0200
Subject: [PATCH] [clang] Mark `OverloadCandidateSet::OperatorRewriteInfo`
methods as const They don't mutate the object and this makes them easier to
use and allows better const correctness when using Clang as a library.
---
clang/include/clang/Sema/Overload.h | 10 +++++-----
clang/lib/Sema/SemaOverload.cpp | 4 ++--
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/clang/include/clang/Sema/Overload.h b/clang/include/clang/Sema/Overload.h
index d34a4146ddbd6..59bbd0fbd9e95 100644
--- a/clang/include/clang/Sema/Overload.h
+++ b/clang/include/clang/Sema/Overload.h
@@ -1202,12 +1202,12 @@ class Sema;
/// Would use of this function result in a rewrite using a different
/// operator?
- bool isRewrittenOperator(const FunctionDecl *FD) {
+ bool isRewrittenOperator(const FunctionDecl *FD) const {
return OriginalOperator &&
FD->getDeclName().getCXXOverloadedOperator() != OriginalOperator;
}
- bool isAcceptableCandidate(const FunctionDecl *FD) {
+ bool isAcceptableCandidate(const FunctionDecl *FD) const {
if (!OriginalOperator)
return true;
@@ -1234,7 +1234,7 @@ class Sema;
}
/// Determines whether this operator could be implemented by a function
/// with reversed parameter order.
- bool isReversible() {
+ bool isReversible() const {
return AllowRewrittenCandidates && OriginalOperator &&
(getRewrittenOverloadedOperator(OriginalOperator) != OO_None ||
allowsReversed(OriginalOperator));
@@ -1242,13 +1242,13 @@ class Sema;
/// Determine whether reversing parameter order is allowed for operator
/// Op.
- bool allowsReversed(OverloadedOperatorKind Op);
+ bool allowsReversed(OverloadedOperatorKind Op) const;
/// Determine whether we should add a rewritten candidate for \p FD with
/// reversed parameter order.
/// \param OriginalArgs are the original non reversed arguments.
bool shouldAddReversed(Sema &S, ArrayRef<Expr *> OriginalArgs,
- FunctionDecl *FD);
+ FunctionDecl *FD) const;
};
private:
diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp
index 5657dfe0b9553..8d32ef6707381 100644
--- a/clang/lib/Sema/SemaOverload.cpp
+++ b/clang/lib/Sema/SemaOverload.cpp
@@ -1087,14 +1087,14 @@ static bool shouldAddReversedEqEq(Sema &S, SourceLocation OpLoc,
}
bool OverloadCandidateSet::OperatorRewriteInfo::allowsReversed(
- OverloadedOperatorKind Op) {
+ OverloadedOperatorKind Op) const {
if (!AllowRewrittenCandidates)
return false;
return Op == OO_EqualEqual || Op == OO_Spaceship;
}
bool OverloadCandidateSet::OperatorRewriteInfo::shouldAddReversed(
- Sema &S, ArrayRef<Expr *> OriginalArgs, FunctionDecl *FD) {
+ Sema &S, ArrayRef<Expr *> OriginalArgs, FunctionDecl *FD) const {
auto Op = FD->getOverloadedOperator();
if (!allowsReversed(Op))
return false;
More information about the cfe-commits
mailing list