public static Cons idlYieldOperationSignatureTree(MethodSlot method) {
    { MethodSlot mostgeneralmethod = method;
      StandardObject returntype = null;

      Native.setSpecial(Stella.$METHODBEINGWALKED$, method);
      while ((mostgeneralmethod.slotDirectEquivalent != null) &&
          (Stella_Object.isaP(mostgeneralmethod.slotDirectEquivalent, Stella.SGT_STELLA_METHOD_SLOT) &&
           (!MethodSlot.methodContainsUnknownTypeP(((MethodSlot)(mostgeneralmethod.slotDirectEquivalent)))))) {
        mostgeneralmethod = ((MethodSlot)(mostgeneralmethod.slotDirectEquivalent));
      }
      returntype = mostgeneralmethod.slotBaseType;
      return (Cons.cons((method.methodFunctionP ? null : GeneralizedSymbol.idlTranslateClassName(Symbol.internSymbolInModule(method.slotOwner.symbolName, ((Module)(method.slotOwner.homeContext)), false))), Cons.list$(Cons.cons(Cons.cons(StandardObject.idlTranslateTypeSpec(returntype), Stella.NIL), Cons.cons(MethodSlot.idlTranslateFunctionName(method), Cons.cons(Cons.cons(MethodSlot.idlTranslateMethodParameters(method), Stella.NIL), Stella.NIL))))));
    }
  }