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