summaryrefslogtreecommitdiff
path: root/source/slang/slang-check-type.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2022-08-04 14:05:02 -0700
committerGitHub <noreply@github.com>2022-08-04 14:05:02 -0700
commit11b29eff99910d55a54658b8a1d053cc4ec076fc (patch)
treeac82bef698df94f74a788cdc160dfd30472fb601 /source/slang/slang-check-type.cpp
parente43ef82e288afe486f45ef2736d378e88f40cc90 (diff)
Implicit pointer dereference when using member operator. (#2348)
* Implicit pointer dereference when using member operator. * Add expected test result * Fix lookup. Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-check-type.cpp')
-rw-r--r--source/slang/slang-check-type.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/source/slang/slang-check-type.cpp b/source/slang/slang-check-type.cpp
index dc0d69f04..50bc55641 100644
--- a/source/slang/slang-check-type.cpp
+++ b/source/slang/slang-check-type.cpp
@@ -22,6 +22,19 @@ namespace Slang
return typeOut.type;
}
+ Type* getPointedToTypeIfCanImplicitDeref(Type* type)
+ {
+ if (auto ptrLike = as<PointerLikeType>(type))
+ {
+ return ptrLike->getElementType();
+ }
+ else if (auto ptrType = as<PtrType>(type))
+ {
+ return ptrType->getValueType();
+ }
+ return nullptr;
+ }
+
Expr* SemanticsVisitor::TranslateTypeNodeImpl(Expr* node)
{
if (!node) return nullptr;