public static Stella_Object clTranslateInlineCallTree(Cons tree) {
    { Cons calltree = ((Cons)(tree.rest.value));
      MethodSlot method = ((MethodSlot)(Cons.slotFromExpressionTree(calltree)));
      Cons args = ((calltree.value == Stella.SYM_STELLA_SYS_CALL_FUNCTION) ? calltree.nthRest(2) : calltree.nthRest(3));
      Cons translatedargs = Cons.clTranslateListOfTrees(args);
      Cons usedcomplexargs = Stella.NIL;
      Stella_Object argument = null;
      Stella_Object body = Cons.lookupVerbatimTree(((Cons)(Cons.walkVerbatimTree(((Cons)(MethodSlot.inlinableMethodBody(method))), new Object[1]))), null);
      List parameters = method.methodParameterNames();
      List parametertypes = method.methodParameterTypeSpecifiers();
      int parindex = 0;
      Cons otree = Stella.NIL;

      if (Stella_Object.safePrimaryType(body) == Stella.SGT_STELLA_CONS) {
        { Cons body000 = ((Cons)(body));

          { boolean alwaysP000 = true;

            { Stella_Object elt = null;
              Cons iter000 = body000;

              loop000 : for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
                elt = iter000.value;
                if (!(!Stella_Object.consP(elt))) {
                  alwaysP000 = false;
                  break loop000;
                }
              }
            }
            if (alwaysP000) {
              otree = Cons.cons(Stella_Object.clTranslateVerbatimBodySymbols(body000.value, Stella.NIL_LIST), Stella.NIL);
              { Stella_Object barg = null;
                Cons iter001 = body000.rest;

                loop001 : for (;!(iter001 == Stella.NIL); iter001 = iter001.rest) {
                  barg = iter001.value;
                  if (parameters.memberP(barg)) {
                    parindex = parameters.position(barg, 0);
                    argument = translatedargs.nth(parindex);
                    if (usedcomplexargs.memberP(argument)) {
                      otree = Stella.NIL;
                      break loop001;
                    }
                    if (Stella_Object.consP(argument)) {
                      usedcomplexargs = Cons.cons(argument, usedcomplexargs);
                      argument = Stella_Object.clYieldTypedExpressionTree(argument, ((StandardObject)(parametertypes.nth(parindex))));
                    }
                    otree = Cons.cons(argument, otree);
                  }
                  else {
                    otree = Cons.cons(Stella_Object.clTranslateVerbatimBodySymbols(barg, Stella.NIL_LIST), otree);
                  }
                }
              }
              if (!(otree == Stella.NIL)) {
                return (Stella_Object.clYieldTypedExpressionTree(otree.reverse(), method.type()));
              }
            }
          }
        }
      }
      else {
      }
      { Symbol par = null;
        Cons iter002 = parameters.theConsList;
        Stella_Object arg = null;
        Cons iter003 = translatedargs;
        Cons collect000 = null;

        for (;(!(iter002 == Stella.NIL)) &&
                  (!(iter003 == Stella.NIL)); iter002 = iter002.rest, iter003 = iter003.rest) {
          par = ((Symbol)(iter002.value));
          arg = iter003.value;
          if (collect000 == null) {
            {
              collect000 = Cons.cons(Cons.cons(Symbol.clTranslateLocalSymbol(par), Cons.cons(arg, Stella.NIL)), Stella.NIL);
              if (otree == Stella.NIL) {
                otree = collect000;
              }
              else {
                Cons.addConsToEndOfConsList(otree, collect000);
              }
            }
          }
          else {
            {
              collect000.rest = Cons.cons(Cons.cons(Symbol.clTranslateLocalSymbol(par), Cons.cons(arg, Stella.NIL)), Stella.NIL);
              collect000 = collect000.rest;
            }
          }
        }
      }
      return (Cons.list$(Cons.cons(Stella.internCommonLispSymbol("LET"), Cons.cons(otree, Cons.cons(Cons.clYieldDeclareTree(MethodSlot.clYieldMethodParameterTypeDeclarationTrees(method), false).concatenate(Cons.cons(Stella_Object.clYieldTypedExpressionTree(Stella_Object.clTranslateVerbatimBodySymbols(Stella_Object.copyConsTree(body), parameters), method.type()), Stella.NIL), Stella.NIL), Stella.NIL)))));
    }
  }