[code-reflection] RFR: Adding String Concatenation to Code Model
    Paul Sandoz 
    psandoz at openjdk.org
       
    Mon Apr  8 21:13:21 UTC 2024
    
    
  
On Mon, 8 Apr 2024 20:46:33 GMT, Ian Graves <igraves at openjdk.org> wrote:
> Adding String concatenation to the code model and interpreter.
I think `Triple` can be named to something more specific with associated helper methods (as described in the comment), otherwise all other comments are just cosmetic.
src/java.base/share/classes/java/lang/reflect/code/op/CoreOps.java line 2371:
> 2369:         public ConcatOp(OpDefinition def) {
> 2370:             super(def);
> 2371:             if(def.operands().size() != 2) {
Suggestion:
            if (def.operands().size() != 2) {
test/jdk/java/lang/reflect/code/TestConcat.java line 160:
> 158: 
> 159: 
> 160:     record Triple(Class<?> first, Class<?> second, String third) {
Rename to `TestMethodData`?, where the third argument can be moved to the first and renamed to `methodName`? Then you can add functionality on this record to obtain the method from its components and to create the args array.
test/jdk/java/lang/reflect/code/TestConcat.java line 191:
> 189:                 double.class, char.class, boolean.class, Object.class);
> 190: 
> 191: 
Suggestion:
test/jdk/java/lang/reflect/code/TestConcat.java line 194:
> 192: 
> 193:         //Types from types concatenated to strings left-to-right and right-to-left
> 194:         Stream<Triple> s1 = types.stream().map(t -> new Triple(t,String.class, testName(t, 1)));
Suggestion:
        Stream<Triple> s1 = types.stream().map(t -> new Triple(t, String.class, testName(t, 1)));
test/jdk/java/lang/reflect/code/TestConcat.java line 211:
> 209: 
> 210:         return args;
> 211: 
Suggestion:
test/jdk/java/lang/reflect/code/TestConcat.java line 217:
> 215:     public static void testRun(Triple t) {
> 216:         try {
> 217: 
Suggestion:
test/jdk/java/lang/reflect/code/TestConcat.java line 226:
> 224: 
> 225:             Assert.assertEquals(res1, res2);
> 226: 
Suggestion:
-------------
PR Review: https://git.openjdk.org/babylon/pull/47#pullrequestreview-1987392601
PR Review Comment: https://git.openjdk.org/babylon/pull/47#discussion_r1556424343
PR Review Comment: https://git.openjdk.org/babylon/pull/47#discussion_r1556432410
PR Review Comment: https://git.openjdk.org/babylon/pull/47#discussion_r1556427468
PR Review Comment: https://git.openjdk.org/babylon/pull/47#discussion_r1556427177
PR Review Comment: https://git.openjdk.org/babylon/pull/47#discussion_r1556428272
PR Review Comment: https://git.openjdk.org/babylon/pull/47#discussion_r1556426001
PR Review Comment: https://git.openjdk.org/babylon/pull/47#discussion_r1556426354
    
    
More information about the babylon-dev
mailing list