docs: private void fillMethodIndex() {
          mainClassMethodHeader = metaMethodIndex.getHeader(theClass);
          LinkedList<CachedClass> superClasses = getSuperClasses();
          CachedClass firstGroovySuper = calcFirstGroovySuperClass(superClasses);
  
          Set<CachedClass> interfaces = theCachedClass.getInterfaces();
          addInterfaceMethods(interfaces);
  
          populateMethods(superClasses, firstGroovySuper);
  
          inheritInterfaceNewMetaMethods(interfaces);
          if (isGroovyObject) {
            metaMethodIndex.copyMethodsToSuper();
  
            connectMultimethods(superClasses, firstGroovySuper);
            removeMultimethodsOverloadedWithPrivateMethods();
  
            replaceWithMOPCalls(theCachedClass.mopMethods);
          }
      }