refactors PerformCppOverloadResolution to take CppOverloadSet (#6829)

`PerformCppOverloadResolution` computes an overload set from a
`CppOverloadSetId`, but the compiler sometimes needs to synthesise a
local overload set for witnesses. `PerformCppOverloadResolution` now
requires callers to produce the `CppOverloadSet` to address this
problem.
This commit is contained in:
Christopher Di Bella
2026-03-04 19:02:33 +00:00
committed by GitHub
parent 1c7a4030ab
commit b28e899a8c
3 changed files with 5 additions and 8 deletions
+1 -4
View File
@@ -132,7 +132,7 @@ auto CheckCppOverloadAccess(
auto PerformCppOverloadResolution(
Context& context, SemIR::LocId loc_id,
SemIR::CppOverloadSetId overload_set_id,
const SemIR::CppOverloadSet& overload_set,
llvm::ArrayRef<SemIR::InstId> template_arg_ids, SemIR::InstId self_id,
llvm::ArrayRef<SemIR::InstId> arg_ids) -> SemIR::InstId {
// Register an annotation scope to flush any Clang diagnostics when we return.
@@ -155,9 +155,6 @@ auto PerformCppOverloadResolution(
}
auto& arg_exprs = *maybe_arg_exprs;
const SemIR::CppOverloadSet& overload_set =
context.cpp_overload_sets().Get(overload_set_id);
clang::SourceLocation loc = GetCppLocation(context, loc_id);
// Add candidate functions from the name lookup.