fix #21153 - [REG 2.111.0] Infinite loop in isAliasThisTuple

Partially reverts the regressing change in 08901365d4. The "fixed"
refactoring should be applied to master/development branch.
This commit is contained in:
Iain Buclaw 2025-04-05 18:42:56 +02:00
parent ce16000c48
commit 51816cd01d

View file

@ -641,12 +641,10 @@ TupleDeclaration isAliasThisTuple(Expression e)
Type t = e.type.toBasetype();
while (true)
{
Dsymbol s = t.toDsymbol(null);
if (!s)
return null;
auto ad = s.isAggregateDeclaration();
if (!ad)
return null;
if (Dsymbol s = t.toDsymbol(null))
{
if (auto ad = s.isAggregateDeclaration())
{
s = ad.aliasthis ? ad.aliasthis.sym : null;
if (s && s.isVarDeclaration())
{
@ -659,6 +657,8 @@ TupleDeclaration isAliasThisTuple(Expression e)
t = att;
continue;
}
}
}
return null;
}
}