diff options
Diffstat (limited to 'java/dagger/internal/codegen/langmodel/DaggerElements.java')
-rw-r--r-- | java/dagger/internal/codegen/langmodel/DaggerElements.java | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/java/dagger/internal/codegen/langmodel/DaggerElements.java b/java/dagger/internal/codegen/langmodel/DaggerElements.java index 51c2a605a..12cec31d5 100644 --- a/java/dagger/internal/codegen/langmodel/DaggerElements.java +++ b/java/dagger/internal/codegen/langmodel/DaggerElements.java @@ -17,6 +17,7 @@ package dagger.internal.codegen.langmodel; import static com.google.auto.common.MoreElements.asExecutable; +import static com.google.auto.common.MoreElements.getLocalAndInheritedMethods; import static com.google.auto.common.MoreElements.hasModifiers; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.collect.Lists.asList; @@ -33,12 +34,10 @@ import com.google.common.collect.Iterables; import com.google.common.graph.Traverser; import com.squareup.javapoet.ClassName; import dagger.Reusable; -import dagger.internal.codegen.base.ClearableCache; import java.io.Writer; import java.lang.annotation.Annotation; import java.util.Collection; import java.util.Comparator; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; @@ -76,9 +75,8 @@ import javax.lang.model.util.Types; /** Extension of {@link Elements} that adds Dagger-specific methods. */ @Reusable -public final class DaggerElements implements Elements, ClearableCache { - private final Map<TypeElement, ImmutableSet<ExecutableElement>> getLocalAndInheritedMethodsCache = - new HashMap<>(); +public final class DaggerElements implements Elements { + private final Elements elements; private final Types types; @@ -102,13 +100,8 @@ public final class DaggerElements implements Elements, ClearableCache { private static final Traverser<Element> GET_ENCLOSED_ELEMENTS = Traverser.forTree(Element::getEnclosedElements); - public ImmutableSet<ExecutableElement> getLocalAndInheritedMethods(TypeElement type) { - return getLocalAndInheritedMethodsCache.computeIfAbsent( - type, k -> MoreElements.getLocalAndInheritedMethods(type, types, elements)); - } - public ImmutableSet<ExecutableElement> getUnimplementedMethods(TypeElement type) { - return FluentIterable.from(getLocalAndInheritedMethods(type)) + return FluentIterable.from(getLocalAndInheritedMethods(type, types, elements)) .filter(hasModifiers(ABSTRACT)) .toSet(); } @@ -125,7 +118,7 @@ public final class DaggerElements implements Elements, ClearableCache { /** Returns the type element for a class name. */ public TypeElement getTypeElement(ClassName className) { - return getTypeElement(className.canonicalName()); + return getTypeElement(className.withoutAnnotations().toString()); } /** Returns the argument or the closest enclosing element that is a {@link TypeElement}. */ @@ -499,9 +492,4 @@ public final class DaggerElements implements Elements, ClearableCache { public boolean isFunctionalInterface(TypeElement type) { return elements.isFunctionalInterface(type); } - - @Override - public void clearCache() { - getLocalAndInheritedMethodsCache.clear(); - } } |