summaryrefslogtreecommitdiff
path: root/source/slang/slang-check-overload.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2025-07-28 23:54:02 -0700
committerGitHub <noreply@github.com>2025-07-29 06:54:02 +0000
commit1da9019e9d3150502264365668156edf64ddfab1 (patch)
tree2ea8c6c7cdc0bb85ecd687d37a0587d8ecd9c483 /source/slang/slang-check-overload.cpp
parente8797496bf7caeb08b5334d13d0d5aa039106210 (diff)
Improve diagnostics over ambiguous references. (#7930)
* Improve diagnostics over ambiguous references. * Fix. * Remove files. * Fix some optix hitobject intrinsics. * Fix some hitobject intrinsics for optix. * Fix. * update rhi * revert slang-rhi * Update slang-rhi
Diffstat (limited to 'source/slang/slang-check-overload.cpp')
-rw-r--r--source/slang/slang-check-overload.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/slang/slang-check-overload.cpp b/source/slang/slang-check-overload.cpp
index 8a8da3eb2..5a2b0872f 100644
--- a/source/slang/slang-check-overload.cpp
+++ b/source/slang/slang-check-overload.cpp
@@ -2975,6 +2975,14 @@ Expr* SemanticsVisitor::ResolveInvoke(InvokeExpr* expr)
// Nothing at all was found that we could even consider invoking.
// In all other cases, this is an error.
+ if (auto overloadExpr = as<OverloadedExpr>(funcExpr))
+ {
+ if (overloadExpr->lookupResult2.isValid())
+ {
+ diagnoseAmbiguousReference(funcExpr);
+ return CreateErrorExpr(expr);
+ }
+ }
getSink()->diagnose(expr->functionExpr, Diagnostics::expectedFunction, funcExpr->type);
expr->type = QualType(m_astBuilder->getErrorType());
return expr;