Skip to content

use StringConcatFactory by default #24781

@xuwei-k

Description

@xuwei-k

Compiler version

3.8.0-RC3

Minimized code

//> using scala 3.8.0-RC3

class A {
  def f(a: String): String = s"$a b"
}

javap result

  public java.lang.String f(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
         0: new           #16                 // class java/lang/StringBuilder
         3: dup
         4: ldc           #17                 // int 2
         6: invokespecial #20                 // Method java/lang/StringBuilder."<init>":(I)V
         9: aload_1
        10: invokevirtual #24                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: ldc           #26                 // String  b
        15: invokevirtual #24                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        18: invokevirtual #30                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
        21: areturn

Expectation

  public java.lang.String f(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
         0: aload_1
         1: invokedynamic #30,  0             // InvokeDynamic #0:makeConcatWithConstants:(Ljava/lang/String;)Ljava/lang/String;
         6: areturn

Note

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions