Is your feature request related to a problem? Please describe.
String templates currently will decompile into the string concats they're desugared into.
Describe the solution you'd like
If the class file supports string templates (currently Java 21+ preview class files), these string concats could be sugared into string templates. It's not guaranteed they were originally string templates, but it's impossible to tell if they were (the desugaring happens on the AST, so javac literally compiles them as if they were standard string concats).
Additional context
Original source
```java
public class Bar {
void foo(int x) {
System.out.println(STR."foo: \{x}");
}
void bar(int x) {
System.out.println(STR."bar: \{x}");
}
}
```
Decompiled source (Vineflower 1.10.1)
```java
public class Bar {
void foo(int x) {
System.out.println("foo: " + x);
}
void bar(int x) {
System.out.println("bar: " + x);
}
}
```
Is your feature request related to a problem? Please describe.
String templates currently will decompile into the string concats they're desugared into.
Describe the solution you'd like
If the class file supports string templates (currently Java 21+ preview class files), these string concats could be sugared into string templates. It's not guaranteed they were originally string templates, but it's impossible to tell if they were (the desugaring happens on the AST, so javac literally compiles them as if they were standard string concats).
Additional context
Original source
```java public class Bar { void foo(int x) { System.out.println(STR."foo: \{x}"); } void bar(int x) { System.out.println(STR."bar: \{x}"); } } ```Decompiled source (Vineflower 1.10.1)
```java public class Bar { void foo(int x) { System.out.println("foo: " + x); } void bar(int x) { System.out.println("bar: " + x); } } ```