diff options
| author | Yong He <yonghe@outlook.com> | 2023-08-09 20:11:09 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-08-09 20:11:09 -0700 |
| commit | f875d3f5ba9c1ddc6aa9a0960efd5ab27ae4e4c9 (patch) | |
| tree | 42dae9fd6c260dfdafe7ce4a1ffc392e799c855d /source/slang/slang-check-conversion.cpp | |
| parent | 03a5bb4bc0391e2de3c2dfb9ff3213bc0ccd9664 (diff) | |
Support implciit casted swizzled lvalue. (#3077)
* Support implciit casted swizzled lvalue.
* Fix warnings.
* Fix.
* fix comment.
* Prefer mangled linkage name for global params.
* Update tests.
---------
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-check-conversion.cpp')
| -rw-r--r-- | source/slang/slang-check-conversion.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/source/slang/slang-check-conversion.cpp b/source/slang/slang-check-conversion.cpp index d89808c3d..09a783fb4 100644 --- a/source/slang/slang-check-conversion.cpp +++ b/source/slang/slang-check-conversion.cpp @@ -1360,15 +1360,20 @@ namespace Slang Type* toType, Type* fromType) { - // Can we convert at all? - ConversionCost conversionCost; - if(!canCoerce(toType, fromType, nullptr, &conversionCost)) - return false; + auto conversionCost = getConversionCost(toType, fromType); // Is the conversion cheap enough to be done implicitly? - if(conversionCost >= kConversionCost_GeneralConversion) + if (conversionCost >= kConversionCost_GeneralConversion) return false; return true; } + + ConversionCost SemanticsVisitor::getConversionCost(Type* toType, Type* fromType) + { + ConversionCost conversionCost = kConversionCost_Impossible; + if (!canCoerce(toType, fromType, nullptr, &conversionCost)) + return kConversionCost_Impossible; + return conversionCost; + } } |
