[clang] 7e3080f - [clang] Mark `OverloadCandidateSet::OperatorRewriteInfo` methods as const (#162271)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Oct 7 07:32:36 PDT 2025
Author: Boaz Brickner
Date: 2025-10-07T16:32:32+02:00
New Revision: 7e3080f0c197316ff06725c446bc59e67f80f069
URL: https://github.com/llvm/llvm-project/commit/7e3080f0c197316ff06725c446bc59e67f80f069
DIFF: https://github.com/llvm/llvm-project/commit/7e3080f0c197316ff06725c446bc59e67f80f069.diff
LOG: [clang] Mark `OverloadCandidateSet::OperatorRewriteInfo` methods as const (#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.
Added:
Modified:
clang/include/clang/Sema/Overload.h
clang/lib/Sema/SemaOverload.cpp
Removed:
################################################################################
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
diff erent
/// 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