From 16cd361dd67471bcc355d1b3b72b0b022518088f Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 1 Jun 2023 13:53:31 -0700 Subject: Be lenient on same-size unsigend->signed conversion. (#2913) * Be lenient on same-size unsigend->signed conversion. * Fix tests. * Use 250. * wip * Fix. * Fix tests. * Fix. --------- Co-authored-by: Yong He --- source/slang/slang-stdlib.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'source/slang/slang-stdlib.cpp') diff --git a/source/slang/slang-stdlib.cpp b/source/slang/slang-stdlib.cpp index 1f8d0a97a..a31c77985 100644 --- a/source/slang/slang-stdlib.cpp +++ b/source/slang/slang-stdlib.cpp @@ -156,6 +156,15 @@ namespace Slang { return kConversionCost_UnsignedToSignedPromotion; } + // Same-size unsigned to signed integer conversion. + else if (toInfo.conversionKind == kBaseTypeConversionKind_Signed + && fromInfo.conversionKind == kBaseTypeConversionKind_Unsigned + && toInfo.conversionRank == fromInfo.conversionRank + && toInfo.conversionRank != kBaseTypeConversionRank_IntPtr + && fromInfo.conversionRank != kBaseTypeConversionRank_IntPtr) + { + return kConversionCost_SameSizeUnsignedToSignedConversion; + } // Conversion from signed to unsigned is always lossy, // but it is preferred over conversions from unsigned -- cgit v1.2.3