public static boolean virtual_isDescendant_checkLoops_7165541881557222950(
     SNode thisNode, SNode nodeToCompare, Set<SNode> visited) {
   if (Classifier_Behavior.call_isSame_4855996797771684010(
       nodeToCompare,
       SNodeOperations.getNode(
           "f:java_stub#6354ebe7-c22a-4a0f-ac54-50b52ab9b065#java.lang(JDK/java.lang@java_stub)",
           "~Object"))) {
     return true;
   }
   if (SetSequence.fromSet(visited).contains(thisNode)) {
     if (LOG.isEnabledFor(Priority.ERROR)) {
       LOG.error(
           "circular hierarchy in class "
               + INamedConcept_Behavior.call_getFqName_1213877404258(thisNode));
     }
     return false;
   }
   if (Classifier_Behavior.call_isSame_4855996797771684010(thisNode, nodeToCompare)) {
     return true;
   }
   if (SLinkOperations.getTarget(thisNode, "superclass", true) == null) {
     return false;
   }
   SetSequence.fromSet(visited).addElement(thisNode);
   return BehaviorReflection.invokeVirtual(
       Boolean.TYPE,
       SLinkOperations.getTarget(
           SLinkOperations.getTarget(thisNode, "superclass", true), "classifier", false),
       "virtual_isDescendant_checkLoops_7165541881557222950",
       new Object[] {nodeToCompare, visited});
 }
 public static String virtual_getUnitName_5067982036267369911(SNode thisNode) {
   String fqName = INamedConcept_Behavior.call_getFqName_1213877404258(thisNode);
   if (SNodeOperations.getAncestor(
           thisNode, "jetbrains.mps.baseLanguage.structure.Classifier", false, false)
       == null) {
     return fqName;
   }
   int index = fqName.lastIndexOf(".");
   if (index <= 0) {
     return fqName;
   }
   int length =
       jetbrains.mps.util.SNodeOperations.getModelLongName(SNodeOperations.getModel(thisNode))
           .length();
   return fqName.substring(0, length) + "." + fqName.substring(length + 1).replace(".", "$");
 }
 public static boolean virtual_checkLoops_3980490811621705349(SNode thisNode, Set<SNode> visited) {
   if (SetSequence.fromSet(visited).contains(thisNode)) {
     if (LOG.isEnabledFor(Priority.ERROR)) {
       LOG.error(
           "circular hierarchy in class "
               + INamedConcept_Behavior.call_getFqName_1213877404258(thisNode));
     }
     return false;
   }
   if (SLinkOperations.getTarget(thisNode, "superclass", true) == null) {
     return true;
   }
   SetSequence.fromSet(visited).addElement(thisNode);
   // todo: not only superclass
   return BehaviorReflection.invokeVirtual(
       Boolean.TYPE,
       SLinkOperations.getTarget(
           SLinkOperations.getTarget(thisNode, "superclass", true), "classifier", false),
       "virtual_checkLoops_3980490811621705349",
       new Object[] {visited});
 }
 public String virtual_getFqName_1213877404258(SNode thisNode) {
   return INamedConcept_Behavior.virtual_getFqName_1213877404258(thisNode);
 }