public static void helpAllSubtypes(Description renamed_Super, Stella_Object self, List types) {
    { LogicObject c = null;
      Iterator iter000 = LogicObject.allDirectSubcollections(renamed_Super, true);

      while (iter000.nextP()) {
        c = ((LogicObject)(iter000.value));
        if (Stella_Object.isaP(c, Logic.SGT_LOGIC_NAMED_DESCRIPTION)) {
          if ((!types.memberP(c)) &&
              Logic.testTypeOnInstanceP(self, ((NamedDescription)(c)).surrogateValueInverse)) {
            types.insertNew(c);
            Description.helpAllSubtypes(((Description)(c)), self, types);
          }
        }
        else {
          Description.helpAllSubtypes(((Description)(c)), self, types);
        }
      }
    }
  }