code: public ReloadableType getSuperRtype() {
  		if (superRtype != null) {
  			return superRtype;
  		}
  		if (superclazz == null) {
  			// Not filled in yet? Why is this code different to the interface case?
  			String name = this.getSlashedSupertypeName();
  			if (name == null) {
  				return null;
  			}
  			else {
  				ReloadableType rtype = typeRegistry.getReloadableSuperType(name);
  				superRtype = rtype;
  				return superRtype;
  			}
  		}
  		else {
  			ClassLoader superClassLoader = superclazz.getClassLoader();
  			TypeRegistry superTypeRegistry = TypeRegistry.getTypeRegistryFor(superClassLoader);
  			superRtype = superTypeRegistry.getReloadableType(superclazz);
  			return superRtype;
  		}
  	}
docs: Return the ReloadableType representing the superclass of this type. If the supertype is not reloadable, this
  method will return null. The ReloadableType that is returned may not be within the same type registry, if the
  supertype was loaded by a different classloader.
  
  @return the ReloadableType for the supertype or null if it is not reloadable