8268124: Update java.lang to use switch expressions

Reviewed-by: naoto, darcy, mchung, iris, lancea, dfuchs
This commit is contained in:
Patrick Concannon 2021-06-10 11:12:37 +00:00
parent a187fcc3ec
commit d43c8a74b3
22 changed files with 421 additions and 551 deletions

View file

@ -5175,13 +5175,13 @@ assert((int)twice.invokeExact(21) == 42);
Wrapper w = Wrapper.forPrimitiveType(ptype);
// perform unboxing and/or primitive conversion
value = w.convert(value, ptype);
switch (w) {
case INT: return result.bindArgumentI(pos, (int)value);
case LONG: return result.bindArgumentJ(pos, (long)value);
case FLOAT: return result.bindArgumentF(pos, (float)value);
case DOUBLE: return result.bindArgumentD(pos, (double)value);
default: return result.bindArgumentI(pos, ValueConversions.widenSubword(value));
}
return switch (w) {
case INT -> result.bindArgumentI(pos, (int) value);
case LONG -> result.bindArgumentJ(pos, (long) value);
case FLOAT -> result.bindArgumentF(pos, (float) value);
case DOUBLE -> result.bindArgumentD(pos, (double) value);
default -> result.bindArgumentI(pos, ValueConversions.widenSubword(value));
};
}
private static Class<?>[] insertArgumentsChecks(MethodHandle target, int insCount, int pos) throws RuntimeException {