@@ -44,7 +44,7 @@ public class MoreElements implements Elements {
4444
4545 private final Elements elementUtils ;
4646
47- private final Map <Class <?> , TypeElement > typeElementCache = new HashMap <>(64 );
47+ private final Map <String , TypeElement > typeElementCache = new HashMap <>(64 );
4848
4949 public MoreElements (Context ctx , ProcessingEnvironment env ) {
5050 assertNotNull (ctx , env );
@@ -61,7 +61,17 @@ public PackageElement getPackageElement(CharSequence name) {
6161 // delegate to elementUtils
6262 @ Override
6363 public TypeElement getTypeElement (CharSequence canonicalName ) {
64- return elementUtils .getTypeElement (canonicalName );
64+ assertNotNull (canonicalName );
65+ return getTypeElementInternal (canonicalName .toString ());
66+ }
67+
68+ public TypeElement getTypeElement (Class <?> clazz ) {
69+ assertNotNull (clazz );
70+ return getTypeElementInternal (clazz .getCanonicalName ());
71+ }
72+
73+ private TypeElement getTypeElementInternal (String canonicalName ) {
74+ return typeElementCache .computeIfAbsent (canonicalName , elementUtils ::getTypeElement );
6575 }
6676
6777 // delegate to elementUtils
@@ -208,12 +218,6 @@ public TypeElement getTypeElementFromBinaryName(String binaryName) {
208218 }
209219 }
210220
211- public TypeElement getTypeElement (Class <?> clazz ) {
212- assertNotNull (clazz );
213- return typeElementCache .computeIfAbsent (
214- clazz , k -> elementUtils .getTypeElement (k .getCanonicalName ()));
215- }
216-
217221 private TypeElement getEnclosedTypeElement (TypeElement typeElement , List <String > enclosedNames ) {
218222 TypeElement enclosing = typeElement ;
219223 for (String enclosedName : enclosedNames ) {
0 commit comments