On Tue, 27 Oct 2020 12:43:47 GMT, Jorn Vernee <jver...@openjdk.org> wrote:

> Hi,
> 
> Currently, if MethodHandles::permuteArguments is used with a reorder array 
> that is the wrong size, or one of the indexes in it is out of bounds of the 
> new type, we simply get the exception message:
> 
>     bad reorder array [...]
> 
> I think we can improve the exception message by splitting these two error 
> cases, and saying in the message exactly what went wrong.
> 
> permuteArguments is a tricky API, so improving the error message here should 
> help to improve developer productivity.
> 
> This PR proposes splits the error message into e.g.:
> 
>     old type parameter count and reorder array length do not match: 
> (int,int,String)int, [0, 0]
> 
> For an incorrect reorder array length, and:
> 
>     index is out of bounds for new type: 2, (int,String)int
> 
> For an out of bounds index.
> 
> Thanks,
> Jorn

This looks okay to me. Someone from core-libs should take a look as well.

As the follow-up, maybe reconcile that method returns normally only with 
`true`, and throws exceptions otherwise. There are some uses like 
`assert(permuteArgumentChecks(...))` that apparently depend on this, how 
necessary are those?

-------------

PR: https://git.openjdk.java.net/jdk/pull/878

Reply via email to