code: protected JvmTypeReference cloneWithTypeParametersAndProxies(JvmTypeReference type, JvmExecutable forExecutable) {
  		// Ensure that the executable is inside a container. Otherwise, the cloning function will fail.
  		assert forExecutable.getDeclaringType() != null;
  		// Get the type parameter mapping that is a consequence of the super type extension within the container.
  		final Map<String, JvmTypeReference> superTypeParameterMapping = new HashMap<>();
  		Utils.getSuperTypeParameterMap(forExecutable.getDeclaringType(), superTypeParameterMapping);
  		// Do the cloning
  		return Utils.cloneWithTypeParametersAndProxies(
  				type,
  				forExecutable.getTypeParameters(),
  				superTypeParameterMapping,
  				this._typeReferenceBuilder,
  				this.typeBuilder, this.typeReferences, this.typesFactory);
  	}
docs: Clone the given type reference that for being link to the given executable component.
  
  <p>The proxies are not resolved, and the type parameters are clone when they are
  related to the type parameter of the executable or the type container.
  
  @param type the source type.
  @param forExecutable the executable component that will contain the result type.
  @return the result type, i.e. a copy of the source type.