Skip to content

Slots inappropriately created for type variable use within type parameter declaration #347

@d367wang

Description

@d367wang

For the following test case,

import java.util.Iterator;

abstract class SuperIterator<E, T extends Iterable<E>> {}

the VarAnnos are created as

import checkers.inference.qual.VarAnnot;
import java.util.Iterator;
import java.util.List;

@VarAnnot(11)
abstract class SuperIterator<@VarAnnot(5) E extends @VarAnnot(6) Object, 
                             @VarAnnot(7) T extends @VarAnnot(8) Iterable<@VarAnnot(9) E>> 
{}

Additional existential variable slots for the type variable upper/lower bound in Iterator<E> are created as follows
10: ( 9 | 9 )
12: ( 10 | 9 )

which are supposed to be like
10: ( 9 | 5 )
12: ( 9 | 6 )

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions