summaryrefslogtreecommitdiff
path: root/source/slang/slang-ast-support-types.h
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-06-01 13:53:31 -0700
committerGitHub <noreply@github.com>2023-06-01 13:53:31 -0700
commit16cd361dd67471bcc355d1b3b72b0b022518088f (patch)
treefa3a7d5b77ccf09f9340b78e66610ba8b751c855 /source/slang/slang-ast-support-types.h
parenta7ed48b2e6da9bf952aa11ec0d57acf9688bbb0e (diff)
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 <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-ast-support-types.h')
-rw-r--r--source/slang/slang-ast-support-types.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/source/slang/slang-ast-support-types.h b/source/slang/slang-ast-support-types.h
index 3ab9d1a01..7e65dd02e 100644
--- a/source/slang/slang-ast-support-types.h
+++ b/source/slang/slang-ast-support-types.h
@@ -80,6 +80,10 @@ namespace Slang
// from one on `Foo`
kConversionCost_GetRef = 5,
kConversionCost_ImplicitDereference = 10,
+ kConversionCost_InRangeIntLitConversion = 23,
+ kConversionCost_InRangeIntLitSignedToUnsignedConversion = 32,
+ kConversionCost_InRangeIntLitUnsignedToSignedConversion = 81,
+
// Conversions based on explicit sub-typing relationships are the cheapest
//
@@ -97,6 +101,9 @@ namespace Slang
// Conversions that are lossless, but change "kind"
kConversionCost_UnsignedToSignedPromotion = 200,
+ // Same-size size unsigned->signed conversions are potentially lossy, but they are commonly allowed silently.
+ kConversionCost_SameSizeUnsignedToSignedConversion = 250,
+
// Conversion from signed->unsigned integer of same or greater size
kConversionCost_SignedToUnsignedConversion = 300,