summaryrefslogtreecommitdiffstats
path: root/source/slang/lower.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/lower.cpp')
-rw-r--r--source/slang/lower.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/source/slang/lower.cpp b/source/slang/lower.cpp
index c154c96c8..8a4b7a4b1 100644
--- a/source/slang/lower.cpp
+++ b/source/slang/lower.cpp
@@ -723,10 +723,10 @@ struct LoweringVisitor
addStmt(loweredStmt);
}
-
- void visitForStatementSyntaxNode(ForStatementSyntaxNode* stmt)
+ void lowerForStmtCommon(
+ RefPtr<ForStatementSyntaxNode> loweredStmt,
+ ForStatementSyntaxNode* stmt)
{
- RefPtr<ForStatementSyntaxNode> loweredStmt = new ForStatementSyntaxNode();
lowerScopeStmtFields(loweredStmt, stmt);
LoweringVisitor subVisitor = pushScope(loweredStmt, stmt);
@@ -739,6 +739,16 @@ struct LoweringVisitor
addStmt(loweredStmt);
}
+ void visitForStatementSyntaxNode(ForStatementSyntaxNode* stmt)
+ {
+ lowerForStmtCommon(new ForStatementSyntaxNode(), stmt);
+ }
+
+ void visitUnscopedForStmt(UnscopedForStmt* stmt)
+ {
+ lowerForStmtCommon(new UnscopedForStmt(), stmt);
+ }
+
void visitWhileStatementSyntaxNode(WhileStatementSyntaxNode* stmt)
{
RefPtr<WhileStatementSyntaxNode> loweredStmt = new WhileStatementSyntaxNode();