rewrite
rewrite copied to clipboard
Matching Varargs from Refaster recipe
When the recipe below is ran against the test case the generated JavaTemplate.Matcher doesn't find a match.
I've also tried boolean[] items but it made no difference
Recipe
@RecipeDescriptor(
name = "`Booleans.asList` to `Arrays.asList`",
description = "Migrate from Guava `Booleans.asList` to `Arrays.asList`."
)
public static class BooleanAsList {
@BeforeTemplate
List<Boolean> before(boolean... items) {
return Booleans.asList(items);
}
@AfterTemplate
List<Boolean> after(Boolean... items) {
return Arrays.asList(items);
}
}
Test case
@Test
void replaceBoolean() {
//language=java
rewriteRun(
java(
"""
import com.google.common.primitives.Booleans;
class Test {
List<Boolean> bools = Booleans.asList(true, false);
}
""",
"""
class Test {
List<Boolean> bools = Arrays.asList(true, false);
}
"""
)
);
}
Java template code String
"com.google.common.primitives.Booleans.asList(#{items:anyArray(boolean)})"
@knutwannheden Tim asked me to inform you of this issue
Refaster has a Annotation '@Repeated' for that. -> https://github.com/google/error-prone/issues/568 but it doesn't work yet