From 767d47a842700653b8deffe82ccb3c85ad582c13 Mon Sep 17 00:00:00 2001 From: Tim Foley Date: Sat, 8 Jul 2017 18:13:53 -0700 Subject: Fix constant folding for `ParenExpr` Adding an explicit AST node for `(expr)` was a good change, but it broke constant folding because I forgot to handle it. --- source/slang/check.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source') diff --git a/source/slang/check.cpp b/source/slang/check.cpp index 2b9abef90..b87f7c6bc 100644 --- a/source/slang/check.cpp +++ b/source/slang/check.cpp @@ -2128,6 +2128,12 @@ namespace Slang RefPtr TryConstantFoldExpr( ExpressionSyntaxNode* expr) { + // Unwrap any "identity" expressions + while (auto parenExpr = dynamic_cast(expr)) + { + expr = parenExpr->base; + } + // TODO(tfoley): more serious constant folding here if (auto constExp = dynamic_cast(expr)) { -- cgit v1.2.3