summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-07-25 09:45:56 -0700
committerGitHub <noreply@github.com>2024-07-25 09:45:56 -0700
commita443350a6bb344ccda46c35ebad5a7cf1a7b262d (patch)
treea873d13d084e3054e52ca40b586def5f49a01ac3 /source
parent7ea47f9a7cb2a6dd8f9b1da909ed8a2e98216438 (diff)
Allow implicitly casting enum types to bool. (#4739)
* Allow implicitly casting enum types to bool. * Fix.
Diffstat (limited to 'source')
-rw-r--r--source/slang/core.meta.slang8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/slang/core.meta.slang b/source/slang/core.meta.slang
index 2da0fa523..45b3435eb 100644
--- a/source/slang/core.meta.slang
+++ b/source/slang/core.meta.slang
@@ -751,6 +751,14 @@ extension bool : IRangedValue
__intrinsic_op($(kIROp_CastPtrToBool))
__init(Ptr<T> ptr);
+ __generic<T : __EnumType>
+ __implicit_conversion($(kConversionCost_IntegerTruncate))
+ [__unsafeForceInlineEarly]
+ __init(T v)
+ {
+ return __slang_noop_cast<T.__Tag>(v) != __intCast<T.__Tag>(0);
+ }
+
static const bool maxValue = true;
static const bool minValue = false;
}