summaryrefslogtreecommitdiff
path: root/source/slang/slang-check-conversion.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-03-28 16:57:53 -0700
committerGitHub <noreply@github.com>2024-03-28 16:57:53 -0700
commit75afa659e9a16589638083a1fcf9e879225619cd (patch)
tree1462b68a47f2f1b4856e298185ad24145a4acc83 /source/slang/slang-check-conversion.cpp
parent56928794d0800824dc91e150cb345b5fec24d930 (diff)
Fix type union logic in generic type inference. (#3852)
Diffstat (limited to 'source/slang/slang-check-conversion.cpp')
-rw-r--r--source/slang/slang-check-conversion.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/source/slang/slang-check-conversion.cpp b/source/slang/slang-check-conversion.cpp
index aeb964cc9..e55a88077 100644
--- a/source/slang/slang-check-conversion.cpp
+++ b/source/slang/slang-check-conversion.cpp
@@ -1389,13 +1389,22 @@ namespace Slang
}
bool SemanticsVisitor::canConvertImplicitly(
+ ConversionCost conversionCost)
+ {
+ // Is the conversion cheap enough to be done implicitly?
+ if (conversionCost >= kConversionCost_GeneralConversion)
+ return false;
+ return true;
+ }
+
+ bool SemanticsVisitor::canConvertImplicitly(
Type* toType,
QualType fromType)
{
auto conversionCost = getConversionCost(toType, fromType);
// Is the conversion cheap enough to be done implicitly?
- if (conversionCost >= kConversionCost_GeneralConversion)
+ if (canConvertImplicitly(conversionCost))
return false;
return true;