From 5e81719cea5507d28fa4f42f731ea909d11581e1 Mon Sep 17 00:00:00 2001 From: Phil Werli Date: Fri, 10 Jan 2025 15:06:24 +0100 Subject: [PATCH] Disallow static imports for `InstantSource` class and `EPOCH` constants (#1503) --- .../picnic/errorprone/bugpatterns/NonStaticImport.java | 3 +++ .../picnic/errorprone/bugpatterns/NonStaticImportTest.java | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/error-prone-contrib/src/main/java/tech/picnic/errorprone/bugpatterns/NonStaticImport.java b/error-prone-contrib/src/main/java/tech/picnic/errorprone/bugpatterns/NonStaticImport.java index aca3b6af..d5f4f124 100644 --- a/error-prone-contrib/src/main/java/tech/picnic/errorprone/bugpatterns/NonStaticImport.java +++ b/error-prone-contrib/src/main/java/tech/picnic/errorprone/bugpatterns/NonStaticImport.java @@ -30,6 +30,7 @@ import com.sun.source.tree.Tree; import com.sun.source.util.TreeScanner; import com.sun.tools.javac.code.Symbol; import java.time.Clock; +import java.time.InstantSource; import java.time.ZoneOffset; import java.util.Collections; import java.util.Locale; @@ -69,6 +70,7 @@ public final class NonStaticImport extends BugChecker implements CompilationUnit ImmutableSet.of( ASTHelpers.class.getCanonicalName(), Clock.class.getCanonicalName(), + InstantSource.class.getCanonicalName(), Strings.class.getCanonicalName(), VisitorState.class.getCanonicalName(), ZoneOffset.class.getCanonicalName(), @@ -129,6 +131,7 @@ public final class NonStaticImport extends BugChecker implements CompilationUnit "builder", "copyOf", "create", + "EPOCH", "from", "getDefaultInstance", "INSTANCE", diff --git a/error-prone-contrib/src/test/java/tech/picnic/errorprone/bugpatterns/NonStaticImportTest.java b/error-prone-contrib/src/test/java/tech/picnic/errorprone/bugpatterns/NonStaticImportTest.java index bfa02b58..5d879b15 100644 --- a/error-prone-contrib/src/test/java/tech/picnic/errorprone/bugpatterns/NonStaticImportTest.java +++ b/error-prone-contrib/src/test/java/tech/picnic/errorprone/bugpatterns/NonStaticImportTest.java @@ -55,6 +55,10 @@ final class NonStaticImportTest { "// BUG: Diagnostic contains:", "import static java.time.Instant.MIN;", "// BUG: Diagnostic contains:", + "import static java.time.InstantSource.system;", + "// BUG: Diagnostic contains:", + "import static java.time.LocalDate.EPOCH;", + "// BUG: Diagnostic contains:", "import static java.time.ZoneOffset.SHORT_IDS;", "import static java.time.ZoneOffset.UTC;", "// BUG: Diagnostic contains:", @@ -71,6 +75,7 @@ final class NonStaticImportTest { "import com.google.common.collect.ImmutableList;", "import com.google.common.collect.ImmutableSet;", "import java.time.Instant;", + "import java.time.LocalDate;", "import java.time.ZoneOffset;", "import java.util.Locale;", "import java.util.Map;", @@ -82,8 +87,10 @@ final class NonStaticImportTest { " void m() {", " nullToEmpty(null);", " copyOf(ImmutableList.of());", + " LocalDate epoch = EPOCH;", " int max = MAX_VALUE;", " int min = MIN_VALUE;", + " system();", " systemUTC();", " Instant minInstant = MIN;", " Map shortIds = SHORT_IDS;",