void addBridges(DiagnosticPosition pos, ClassSymbol origin, ListBuffer<JCTree> bridges) {
        Type st = types.supertype(origin.type);
        while (st.hasTag(CLASS)) {
//          if (isSpecialization(st))
            addBridges(pos, st.tsym, origin, bridges);
            st = types.supertype(st);
        }
        for (List<Type> l = types.interfaces(origin.type); l.nonEmpty(); l = l.tail)
//          if (isSpecialization(l.head))
            addBridges(pos, l.head.tsym, origin, bridges);
    }
void addBridges ( DiagnosticPosition pos , ClassSymbol origin , ListBuffer < JCTree > bridges ) { Type st = types . supertype ( origin . type ) ; while ( st . hasTag ( CLASS ) ) { addBridges ( pos , st . tsym , origin , bridges ) ; st = types . supertype ( st ) ; } for ( List < Type > l = types . interfaces ( origin . type ) ; l . nonEmpty ( ) ; l = l . tail ) addBridges ( pos , l . head . tsym , origin , bridges ) ; }
Add all necessary bridges to some class appending them to list buffer.
@param pos     The source code position to be used for the bridges.
@param origin  The class in which the bridges go.
@param bridges The list buffer to which the bridges are added.