1 import jdk.incubator.code.CodeReflection; 2 3 /* 4 * @test 5 * @modules jdk.incubator.code 6 * @build StringConcatTest 7 * @build CodeReflectionTester 8 * @run main CodeReflectionTester StringConcatTest 9 */ 10 public class StringConcatTest { 11 12 @IR(""" 13 func @"test1" (%0 : java.lang.String, %1 : int)java.lang.String -> { 14 %2 : Var<java.lang.String> = var %0 @"a"; 15 %3 : Var<int> = var %1 @"b"; 16 %4 : java.lang.String = var.load %2; 17 %5 : int = var.load %3; 18 %6 : java.lang.String = concat %4 %5; 19 return %6; 20 }; 21 """) 22 @CodeReflection 23 static String test1(String a, int b) { 24 return a + b; 25 } 26 27 @IR(""" 28 func @"test2" (%0 : java.lang.String, %1 : char)java.lang.String -> { 29 %2 : Var<java.lang.String> = var %0 @"a"; 30 %3 : Var<char> = var %1 @"b"; 31 %4 : java.lang.String = var.load %2; 32 %5 : char = var.load %3; 33 %6 : java.lang.String = concat %4 %5; 34 var.store %2 %6; 35 %7 : java.lang.String = var.load %2; 36 return %7; 37 }; 38 """) 39 @CodeReflection 40 static String test2(String a, char b) { 41 a += b; 42 return a; 43 } 44 45 @IR(""" 46 func @"test3" (%0 : java.lang.String, %1 : float)java.lang.String -> { 47 %2 : Var<java.lang.String> = var %0 @"a"; 48 %3 : Var<float> = var %1 @"b"; 49 %4 : java.lang.String = var.load %2; 50 %5 : float = var.load %3; 51 %6 : java.lang.String = concat %4 %5; 52 var.store %2 %6; 53 %7 : java.lang.String = var.load %2; 54 return %7; 55 }; 56 """) 57 @CodeReflection 58 static String test3(String a, float b) { 59 a = a + b; 60 return a; 61 } 62 }