From ad571841d3cb94c36e04fafce09af286dd1469e4 Mon Sep 17 00:00:00 2001 From: Lazaro Clapp Date: Fri, 13 May 2022 19:19:27 -0400 Subject: [PATCH] Make AbstractConfig collection fields explicity Immutable --- .../com/uber/nullaway/AbstractConfig.java | 28 ++++++++----------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/nullaway/src/main/java/com/uber/nullaway/AbstractConfig.java b/nullaway/src/main/java/com/uber/nullaway/AbstractConfig.java index 57af691f26..ee5c0ca233 100644 --- a/nullaway/src/main/java/com/uber/nullaway/AbstractConfig.java +++ b/nullaway/src/main/java/com/uber/nullaway/AbstractConfig.java @@ -77,29 +77,25 @@ public abstract class AbstractConfig implements Config { protected boolean handleTestAssertionLibraries; - protected Set optionalClassPaths; + protected ImmutableSet optionalClassPaths; protected boolean assertsEnabled; - /** - * if true, {@link #fromAnnotatedPackage(Symbol.ClassSymbol)} will return false for any class - * annotated with {@link javax.annotation.Generated} - */ protected boolean treatGeneratedAsUnannotated; protected boolean acknowledgeAndroidRecent; - protected Set knownInitializers; + protected ImmutableSet knownInitializers; - protected Set excludedClassAnnotations; + protected ImmutableSet excludedClassAnnotations; - protected Set generatedCodeAnnotations; + protected ImmutableSet generatedCodeAnnotations; - protected Set initializerAnnotations; + protected ImmutableSet initializerAnnotations; - protected Set externalInitAnnotations; + protected ImmutableSet externalInitAnnotations; - protected Set contractAnnotations; + protected ImmutableSet contractAnnotations; @Nullable protected String castToNonNullMethod; @@ -193,12 +189,12 @@ public boolean isUnannotatedClass(Symbol.ClassSymbol symbol) { @Override public ImmutableSet getExcludedClassAnnotations() { - return ImmutableSet.copyOf(excludedClassAnnotations); + return excludedClassAnnotations; } @Override public ImmutableSet getGeneratedCodeAnnotations() { - return ImmutableSet.copyOf(generatedCodeAnnotations); + return generatedCodeAnnotations; } @Override @@ -262,7 +258,7 @@ public boolean handleTestAssertionLibraries() { } @Override - public Set getOptionalClassPaths() { + public ImmutableSet getOptionalClassPaths() { return optionalClassPaths; } @@ -296,7 +292,7 @@ public boolean isContractAnnotation(String annotationName) { return contractAnnotations.contains(annotationName); } - protected Set getKnownInitializers(Set qualifiedNames) { + protected ImmutableSet getKnownInitializers(Set qualifiedNames) { Set result = new LinkedHashSet<>(); for (String name : qualifiedNames) { int lastDot = name.lastIndexOf('.'); @@ -304,7 +300,7 @@ protected Set getKnownInitializers(Set qualifiedName String className = name.substring(0, lastDot); result.add(MethodClassAndName.create(className, methodName)); } - return result; + return ImmutableSet.copyOf(result); } @AutoValue