Hi, The issue is that we blindly assume that the vararg argument is a not flat and not null-free array. This misses 2 factors:
- With the introduction of nullable flat layouts, it is possible to flatten a default array allocation (e.g. `new Integer[4]`) - The node may have its own speculative type already, we need to make sure our optimistic guess does not contradict the existing speculation. As a result, I changed the implementation to assume that the exact type is the default refined type of the declared parameter type. Testing: - [ ] tier1-4,valhalla-comp-stress, Linux-x64 Please kindly review, thanks a lot. ------------- Commit messages: - conflicting types when speculate on vararg arguments Changes: https://git.openjdk.org/valhalla/pull/2030/files Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=2030&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8376791 Stats: 37 lines in 2 files changed: 26 ins; 0 del; 11 mod Patch: https://git.openjdk.org/valhalla/pull/2030.diff Fetch: git fetch https://git.openjdk.org/valhalla.git pull/2030/head:pull/2030 PR: https://git.openjdk.org/valhalla/pull/2030
