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