code: private void mapExecutable(ExecutableMemberDoc em) {
          boolean isConstructor = em.isConstructor();
          Set<Type> classArgs = new TreeSet<>(utils.makeTypeComparator());
          for (Parameter param : em.parameters()) {
              Type pcd = param.type();
              // ignore primitives and typevars, typevars are handled elsewhere
              if ((!param.type().isPrimitive()) && !(pcd instanceof TypeVariable)) {
                   // avoid dups
                  if (classArgs.add(pcd)) {
                      add(isConstructor ? classToConstructorArgs : classToMethodArgs,
                              pcd.asClassDoc(), em);
                      mapTypeParameters(isConstructor
                                  ? classToConstructorDocArgTypeParam
                                  : classToExecMemberDocArgTypeParam,
                              pcd, em);
                  }
              }
              mapAnnotations(isConstructor
                          ? classToConstructorParamAnnotation
                          : classToExecMemberDocParamAnnotation,
                      param, em);
  
          }
          for (ClassDoc anException : em.thrownExceptions()) {
              add(isConstructor ? classToConstructorThrows : classToMethodThrows,
                  anException, em);
          }
      }
docs: Determine classes used by a method or constructor, so they can be
  inverse mapped.