class WildcardTypeInformation<S> extends TypeDiscoverer<S> {

    private final WildcardType type;

    /**
     * Creates a new {@link WildcardTypeInformation} for the given type, type variable map.
     *
     * @param type must not be {@code null}.
     * @param typeVariableMap must not be {@code null}.
     */
    protected WildcardTypeInformation(WildcardType type, Map<TypeVariable<?>, Type> typeVariableMap) {

        super(type, typeVariableMap);
        this.type = type;
    }

    @Override
    public boolean isAssignableFrom(TypeInformation<?> target) {<FILL_FUNCTION_BODY>}

    public List<TypeInformation<?>> getUpperBounds() {
        return getBounds(type.getUpperBounds());
    }

    public List<TypeInformation<?>> getLowerBounds() {
        return getBounds(type.getLowerBounds());
    }

    private List<TypeInformation<?>> getBounds(Type[] bounds) {

        List<TypeInformation<?>> typeInformations = new ArrayList<>(bounds.length);

        Arrays.stream(bounds).map(this::createInfo).forEach(typeInformations::add);

        return typeInformations;
    }

}


        for (TypeInformation<?> lowerBound : getLowerBounds()) {
            if (!target.isAssignableFrom(lowerBound)) {
                return false;
            }
        }

        for (TypeInformation<?> upperBound : getUpperBounds()) {
            if (!upperBound.isAssignableFrom(target)) {
                return false;
            }
        }

        return true;
    
<methods>public boolean equals(java.lang.Object) ,public TypeInformation<?> getActualType() ,public final TypeInformation<?> getComponentType() ,public java.lang.reflect.Type getGenericType() ,public TypeInformation<?> getMapValueType() ,public List<TypeInformation<?>> getParameterTypes(Constructor<?>) ,public List<TypeInformation<?>> getParameterTypes(java.lang.reflect.Method) ,public ClassTypeInformation<?> getRawTypeInformation() ,public TypeInformation<?> getReturnType(java.lang.reflect.Method) ,public TypeInformation<?> getSuperTypeInformation(Class<?>) ,public Class<S> getType() ,public TypeInformation<?> getTypeArgument(Class<?>, int) ,public List<TypeInformation<?>> getTypeArguments() ,public Map<TypeVariable<?>,java.lang.reflect.Type> getTypeVariableMap() ,public int hashCode() ,public boolean isAssignableFrom(TypeInformation<?>) ,public boolean isCollectionLike() ,public boolean isMap() <variables>private TypeInformation<?> componentType,private boolean componentTypeResolved,private final non-sealed int hashCode,private Class<S> resolvedType,private final non-sealed java.lang.reflect.Type type,private final non-sealed Map<TypeVariable<?>,java.lang.reflect.Type> typeVariableMap,private TypeInformation<?> valueType,private boolean valueTypeResolved