aboutsummaryrefslogtreecommitdiff
path: root/java/dagger/internal/codegen/langmodel/DaggerElements.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/dagger/internal/codegen/langmodel/DaggerElements.java')
-rw-r--r--java/dagger/internal/codegen/langmodel/DaggerElements.java22
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();
- }
}