/guava/android/guava/src/com/google/common/reflect/TypeToken.java
aboveMe = Math.max( aboveMe, collectTypes( interfaceType) ) ;
aboveMe = Math.max ( aboveMe, collectTypes ( interfaceType, map ) ) ;
Integer existing = map.get(type); if (existing != null) { return existing; } int aboveMe = getRawType(type).isInterface() ? 1 : 0; for (K interfaceType : getInterfaces(type)) { <extra_id_0> } K superclass = getSuperclass(type); if (superclass != null) { aboveMe = Math.max(aboveMe, collectTypes(superclass, map)); } map.put(type, aboveMe + 1);