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

Reply via email to