From ec93d86f7b54bb2858577a94051d1a702e212604 Mon Sep 17 00:00:00 2001 From: Stephan Schroevers Date: Sat, 1 Nov 2025 19:31:06 +0100 Subject: [PATCH] Introduce `BigDecimalTwo` Refaster rule --- .../errorprone/refasterrules/BigDecimalRules.java | 13 +++++++++++++ .../refasterrules/BigDecimalRulesTestInput.java | 4 ++++ .../refasterrules/BigDecimalRulesTestOutput.java | 4 ++++ 3 files changed, 21 insertions(+) diff --git a/error-prone-contrib/src/main/java/tech/picnic/errorprone/refasterrules/BigDecimalRules.java b/error-prone-contrib/src/main/java/tech/picnic/errorprone/refasterrules/BigDecimalRules.java index 3800828a80..1b1122ff4e 100644 --- a/error-prone-contrib/src/main/java/tech/picnic/errorprone/refasterrules/BigDecimalRules.java +++ b/error-prone-contrib/src/main/java/tech/picnic/errorprone/refasterrules/BigDecimalRules.java @@ -38,6 +38,19 @@ BigDecimal after() { } } + /** Prefer using the constant {@link BigDecimal#TWO} when possible. */ + static final class BigDecimalTwo { + @BeforeTemplate + BigDecimal before() { + return Refaster.anyOf(BigDecimal.valueOf(2), new BigDecimal("2")); + } + + @AfterTemplate + BigDecimal after() { + return BigDecimal.TWO; + } + } + /** Prefer using the constant {@link BigDecimal#TEN} when possible. */ static final class BigDecimalTen { @BeforeTemplate diff --git a/error-prone-contrib/src/test/resources/tech/picnic/errorprone/refasterrules/BigDecimalRulesTestInput.java b/error-prone-contrib/src/test/resources/tech/picnic/errorprone/refasterrules/BigDecimalRulesTestInput.java index 79dcc5ae54..954c62fa51 100644 --- a/error-prone-contrib/src/test/resources/tech/picnic/errorprone/refasterrules/BigDecimalRulesTestInput.java +++ b/error-prone-contrib/src/test/resources/tech/picnic/errorprone/refasterrules/BigDecimalRulesTestInput.java @@ -13,6 +13,10 @@ ImmutableSet testBigDecimalOne() { return ImmutableSet.of(BigDecimal.valueOf(1), BigDecimal.valueOf(1L), new BigDecimal("1")); } + ImmutableSet testBigDecimalTwo() { + return ImmutableSet.of(BigDecimal.valueOf(2), BigDecimal.valueOf(2L), new BigDecimal("2")); + } + ImmutableSet testBigDecimalTen() { return ImmutableSet.of(BigDecimal.valueOf(10), BigDecimal.valueOf(10L), new BigDecimal("10")); } diff --git a/error-prone-contrib/src/test/resources/tech/picnic/errorprone/refasterrules/BigDecimalRulesTestOutput.java b/error-prone-contrib/src/test/resources/tech/picnic/errorprone/refasterrules/BigDecimalRulesTestOutput.java index ea73698f76..6d57a28ede 100644 --- a/error-prone-contrib/src/test/resources/tech/picnic/errorprone/refasterrules/BigDecimalRulesTestOutput.java +++ b/error-prone-contrib/src/test/resources/tech/picnic/errorprone/refasterrules/BigDecimalRulesTestOutput.java @@ -13,6 +13,10 @@ ImmutableSet testBigDecimalOne() { return ImmutableSet.of(BigDecimal.ONE, BigDecimal.ONE, BigDecimal.ONE); } + ImmutableSet testBigDecimalTwo() { + return ImmutableSet.of(BigDecimal.TWO, BigDecimal.TWO, BigDecimal.TWO); + } + ImmutableSet testBigDecimalTen() { return ImmutableSet.of(BigDecimal.TEN, BigDecimal.TEN, BigDecimal.TEN); }