From 8c6a876e9ff39789cbd2fc8b73abd3549928ba89 Mon Sep 17 00:00:00 2001 From: lemon Date: Sun, 7 Aug 2022 20:49:10 +0200 Subject: infer in assignment exprs --- bootstrap/parse.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'bootstrap') diff --git a/bootstrap/parse.c b/bootstrap/parse.c index 5019c50..2b44ca8 100644 --- a/bootstrap/parse.c +++ b/bootstrap/parse.c @@ -1658,7 +1658,10 @@ pexassign(struct parser *P) { ex = pexcond(P); if (P->used_targty) return ex; if ((oret = matchassignop(P, &tok))) { - struct expr rhs = pexcond(P); + struct expr rhs; + if (oret == 1) + P->targty = ex.ty; + rhs = pexcond(P); if (!islvalue(&ex)) fatal(P, ex.span, "left operand to assignment operator %T is not an lvalue", -- cgit v1.2.3