From 7911c9437333692db275d2dff41264f4c8023be8 Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 5 Feb 2025 12:32:56 -0800 Subject: Use two-stage parsing to disambiguate generic app and comparison. (#6281) * Use two-stage parsing to disambiguate generic app and comparison. * Typo fix. * Update doc. --- source/slang/slang-check-expr.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'source/slang/slang-check-expr.cpp') diff --git a/source/slang/slang-check-expr.cpp b/source/slang/slang-check-expr.cpp index 7726fd6c8..7d4fbdf4c 100644 --- a/source/slang/slang-check-expr.cpp +++ b/source/slang/slang-check-expr.cpp @@ -167,7 +167,7 @@ Expr* SemanticsVisitor::openExistential(Expr* expr, DeclRef inter openedValue->declRef = varDeclRef; openedValue->type = QualType(openedType); openedValue->originalExpr = expr; - + openedValue->checked = true; // The result of opening an existential is an l-value // if the original existential is an l-value. // @@ -226,6 +226,7 @@ Expr* SemanticsVisitor::maybeOpenRef(Expr* expr) openRef->innerExpr = expr; openRef->type.isLeftValue = (as(exprType) != nullptr); openRef->type.type = refType->getValueType(); + openRef->checked = true; return openRef; } return expr; @@ -522,6 +523,7 @@ Expr* SemanticsVisitor::constructDerefExpr(Expr* base, QualType elementType, Sou derefExpr->loc = loc; derefExpr->base = base; derefExpr->type = QualType(elementType); + derefExpr->checked = true; if (as(base->type) || as(base->type)) { @@ -3918,6 +3920,7 @@ Expr* SemanticsExprVisitor::visitAsTypeExpr(AsTypeExpr* expr) makeOptional->type = optType; makeOptional->value = castToSuperType; makeOptional->typeExpr = typeExpr.exp; + makeOptional->checked = true; return makeOptional; } @@ -4125,6 +4128,7 @@ Expr* SemanticsVisitor::CheckMatrixSwizzleExpr( swizExpr->loc = memberRefExpr->loc; swizExpr->base = memberRefExpr->baseExpression; swizExpr->memberOpLoc = memberRefExpr->memberOperatorLoc; + swizExpr->checked = true; // We can have up to 4 swizzles of two elements each MatrixCoord elementCoords[4]; -- cgit v1.2.3