diff options
| author | Yong He <yonghe@outlook.com> | 2023-03-29 18:00:34 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-29 18:00:34 -0700 |
| commit | af062bff8f670de6a0c4fe7be797487ba124d811 (patch) | |
| tree | 492f8ef0ed80842489d901de4f85573d712f6948 /source/slang/slang-check-expr.cpp | |
| parent | 082c48d96c5f8f6b4f560d705fe731da14409cb4 (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.cpp | 12 |
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>()) { |
