non-empty-list is now displayed as non-empty-array<int<0, max>, T> after upgrade from 2.1.29 to 2.1.32

Bug report

Hi,

after upgrading PHPStan from 2.1.29 to 2.1.32, I noticed a change in how list types are displayed.

<?php declare(strict_types = 1);

use function PHPStan\dumpType;
use function PHPStan\Testing\assertType;

class Transaction {
	public function __construct(public int $value) {}

	public function withValue(int $value): self { return new self($value); }
}

/**
 * @return array<string, non-empty-list<Transaction>>
 */
function getPositions(): array
{
	return ['AAPL' => [new Transaction(50)], 'TSLA' => [new Transaction(50), new Transaction(100)]];
}

$positions = getPositions();

foreach ($positions as $symbol => &$transactions) {
	foreach ($transactions as &$transaction) {
		$transaction = $transaction->withValue(60);
	}
}

dumpType($positions);

Behavior in 2.1.29

The type was displayed as:

array<string, non-empty-list<Transaction>>

Behavior in 2.1.32

After upgrading to 2.1.32, it is displayed as:

array<string, non-empty-array<int<0, max>, Transaction>>

Code snippet that reproduces the problem

https://phpstan.org/r/4b38f403-d1d2-446a-b920-ddb0e45a096f

Expected output

array<string, non-empty-list>

Did PHPStan help you today? Did it make you happy in any way?

No response