From 75afa659e9a16589638083a1fcf9e879225619cd Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 28 Mar 2024 16:57:53 -0700 Subject: Fix type union logic in generic type inference. (#3852) --- source/slang/slang-check-conversion.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'source/slang/slang-check-conversion.cpp') 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 @@ -1388,6 +1388,15 @@ namespace Slang return expr; } + 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) @@ -1395,7 +1404,7 @@ namespace Slang 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; -- cgit v1.2.3