Reports type parameters that have the same names as the visible types in the current scope. Such parameter names may be confusing.

Example:


  abstract class MyList<T> extends AbstractList<T> {
    private List<T> elements;
    // type parameter 'T' hides type parameter 'T'
    public <T> T[] toArray(T[] array) {
        return elements.toArray(array);
    }
}