### Question:
MoreTypes implements Types { public boolean isAssignableWithErasure(TypeMirror lhs, Class<?> rhs) { assertNotNull(lhs, rhs); TypeElement typeElement = ctx.getMoreElements().getTypeElement(rhs); if (typeElement == null) { return false; } return isAssignableWithErasure(lhs, typeElement.asType()); } MoreTypes(Context ctx, ProcessingEnvironment env); @Override Element asElement(TypeMirror t); @Override boolean isSubtype(TypeMirror t1, TypeMirror t2); @Override boolean contains(TypeMirror t1, TypeMirror t2); @Override boolean isSubsignature(ExecutableType m1, ExecutableType m2); @Override List<? extends TypeMirror> directSupertypes(TypeMirror t); @Override TypeMirror erasure(TypeMirror t); @Override TypeElement boxedClass(PrimitiveType p); @Override PrimitiveType unboxedType(TypeMirror t); @Override TypeMirror capture(TypeMirror t); @Override PrimitiveType getPrimitiveType(TypeKind kind); @Override NullType getNullType(); @Override NoType getNoType(TypeKind kind); @Override ArrayType getArrayType(TypeMirror componentType); @Override WildcardType getWildcardType(TypeMirror extendsBound, TypeMirror superBound); @Override DeclaredType getDeclaredType(TypeElement typeElem, TypeMirror... typeArgs); @Override DeclaredType getDeclaredType(
      DeclaredType containing, TypeElement typeElem, TypeMirror... typeArgs); @Override TypeMirror asMemberOf(DeclaredType containing, Element element); @Override boolean isAssignable(TypeMirror t1, TypeMirror t2); @Override boolean isSameType(TypeMirror t1, TypeMirror t2); TypeElement toTypeElement(TypeMirror typeMirror); DeclaredType toDeclaredType(TypeMirror typeMirror); TypeVariable toTypeVariable(TypeMirror typeMirror); ArrayType toArrayType(TypeMirror typeMirror); boolean isAssignableWithErasure(TypeMirror lhs, Class<?> rhs); boolean isAssignableWithErasure(TypeMirror lhs, TypeMirror rhs); boolean isSameTypeWithErasure(TypeMirror typeMirror, Class<?> clazz); boolean isSameTypeWithErasure(TypeMirror t1, TypeMirror t2); boolean isArray(TypeMirror typeMirror); String getTypeName(TypeMirror typeMirror); TypeMirror boxIfPrimitive(TypeMirror typeMirror); TypeMirror getTypeMirror(Class<?> clazz);  }### Answer:
@Test void isAssignableWithErasure() { addProcessor( new TestProcessor() { @Override protected void run() { TypeElement listTypeElement = ctx.getMoreElements().getTypeElement(List.class); TypeMirror stringType = ctx.getMoreTypes().getTypeMirror(String.class); TypeMirror t1 = ctx.getMoreTypes().getDeclaredType(listTypeElement, stringType); TypeElement collectionTypeElement = ctx.getMoreElements().getTypeElement(Collection.class); TypeMirror integerType = ctx.getMoreTypes().getTypeMirror(Integer.class); TypeMirror t2 = ctx.getMoreTypes().getDeclaredType(collectionTypeElement, integerType); assertFalse(ctx.getMoreTypes().isAssignable(t1, t2)); assertTrue(ctx.getMoreTypes().isAssignableWithErasure(t1, t2)); } }); }