RFR: 8186500: StringConcatFactory.makeConcatWithConstants throws AssertionError when recipe contains non-String constants

Aleksey Shipilev shade at redhat.com
Tue Aug 22 16:34:14 UTC 2017


On 08/22/2017 04:53 PM, Claes Redestad wrote:
> Extending the existing StringConcatFactoryInvariants test we can easily get most basic
> combinations covered, along with some basic verification.
> 
> This uncovered what appears to be a similar issue in the BC_SB SCF strategy, which can be
> dealt with by coercing the possibly non-String constant to String at generation time:

(Sigh) The trouble is LDC, right?

 986                             Object cnst = el.getValue();
 987                             mv.visitLdcInsn(cnst);
 988                             desc = getSBAppendDesc(cnst.getClass());

Coercing to String is fine here.

> http://cr.openjdk.java.net/~redestad/8186500/jdk.01/

Still think testing for {null, Class, MethodHandle, MethodType} would cover more interesting corner
cases.

Thanks,
-Aleksey



More information about the core-libs-dev mailing list