private boolean overloaded(MethodSymbol m,TypeSymbol c,Types types){
  for (com.redhat.ceylon.langtools.tools.javac.util.List<Type> is=types.interfaces(c.type); is.nonEmpty(); is=is.tail) {
    TypeSymbol i=is.head.tsym;
    if (overloadedIn(m,i,types))     return true;
    if (overloaded(m,i,types))     return true;
  }
  return false;
}

private boolean overloaded ( MethodSymbol m , TypeSymbol c , Types types ) { for ( com . redhat . ceylon . langtools . tools . javac . util . List < Type > is = types . interfaces ( c . type ) ; is . nonEmpty ( ) ; is = is . tail ) { TypeSymbol i = is . head . tsym ; if ( overloadedIn ( m , i , types ) ) return true ; if ( overloaded ( m , i , types ) ) return true ; } return false ; }
copied from methodsymbol . implemented and adapted for overloading
