diff --git a/common/src/main/java/com/google/auto/common/Overrides.java b/common/src/main/java/com/google/auto/common/Overrides.java index 6f4c34fc4d..6abf6c358f 100644 --- a/common/src/main/java/com/google/auto/common/Overrides.java +++ b/common/src/main/java/com/google/auto/common/Overrides.java @@ -15,6 +15,7 @@ */ package com.google.auto.common; +import static java.util.Objects.requireNonNull; import static java.util.stream.Collectors.toList; import com.google.common.base.Preconditions; @@ -432,7 +433,8 @@ ExecutableElement methodFromSuperinterfaces(TypeElement in, ExecutableElement me private @Nullable TypeElement superclass(TypeElement type) { TypeMirror sup = type.getSuperclass(); if (sup.getKind() == TypeKind.DECLARED) { - return MoreElements.asType(typeUtils.asElement(sup)); + // asElement returns non-null for DECLARED types. + return MoreElements.asType(requireNonNull(typeUtils.asElement(sup))); } else { return null; } @@ -441,7 +443,11 @@ ExecutableElement methodFromSuperinterfaces(TypeElement in, ExecutableElement me private ImmutableList superinterfaces(TypeElement type) { ImmutableList.Builder types = ImmutableList.builder(); for (TypeMirror sup : type.getInterfaces()) { - types.add(MoreElements.asType(typeUtils.asElement(sup))); + /* + * All interfaces implemented/extended are DECLARED types, for which asElement returns + * non-null. + */ + types.add(MoreElements.asType(requireNonNull(typeUtils.asElement(sup)))); } return types.build(); }