summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-check-expr.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-03-29 18:00:34 -0700
committerGitHub <noreply@github.com>2023-03-29 18:00:34 -0700
commitaf062bff8f670de6a0c4fe7be797487ba124d811 (patch)
tree492f8ef0ed80842489d901de4f85573d712f6948 /source/slang/slang-check-expr.cpp
parent082c48d96c5f8f6b4f560d705fe731da14409cb4 (diff)
Fix IRArrayType emit logic. (#2754)
* Fix IRArrayType emit logic. * Fix test. * Fix ast constant folding. --------- Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-check-expr.cpp')
-rw-r--r--source/slang/slang-check-expr.cpp12
1 files changed, 3 insertions, 9 deletions
diff --git a/source/slang/slang-check-expr.cpp b/source/slang/slang-check-expr.cpp
index a14ed38d8..0f744997d 100644
--- a/source/slang/slang-check-expr.cpp
+++ b/source/slang/slang-check-expr.cpp
@@ -1496,13 +1496,12 @@ namespace Slang
}
}
- auto initExpr = getInitExpr(m_astBuilder, declRef);
- if(!initExpr)
+ if (!getInitExpr(m_astBuilder, declRef))
return nullptr;
ensureDecl(declRef.decl, DeclCheckState::Checked);
ConstantFoldingCircularityInfo newCircularityInfo(decl, circularityInfo);
- return tryConstantFoldExpr(initExpr, &newCircularityInfo);
+ return tryConstantFoldExpr(getInitExpr(m_astBuilder, declRef), &newCircularityInfo);
}
IntVal* SemanticsVisitor::tryConstantFoldExpr(
@@ -1546,12 +1545,7 @@ namespace Slang
// it is possible that we are referring to a generic value param
if (auto declRefExpr = expr.as<DeclRefExpr>())
{
- auto checkedExpr = as<DeclRefExpr>(CheckTerm(expr.getExpr()));
- if (!checkedExpr)
- return nullptr;
-
- SubstExpr<DeclRefExpr> substExpr(checkedExpr, expr.getSubsts());
- auto declRef = getDeclRef(m_astBuilder, substExpr);
+ auto declRef = getDeclRef(m_astBuilder, declRefExpr);
if (auto genericValParamRef = declRef.as<GenericValueParamDecl>())
{