public List < Type > getBounds ( TypeVar t ) { if ( t . bound . hasTag ( NONE ) ) return List . nil ( ) ; else if ( t . bound . isErroneous ( ) || ! t . bound . isCompound ( ) ) return List . of ( t . bound ) ; else if ( ( erasure ( t ) . tsym . flags ( ) & INTERFACE ) == 0 ) return interfaces ( t ) . prepend ( supertype ( t ) ) ; else // No superclass was given in bounds. // In this case, supertype is Object, erasure is first interface. return interfaces ( t ) ; }
Return list of bounds of the given type variable .