SNode supertypeRepresentator = getRepresentator(supertype);
if (subtypeRepresentator == supertypeRepresentator) return;
RuntimeTypeVariable varSubtype = TypeVariablesManager.getTypeVar(subtypeRepresentator);
RuntimeTypeVariable varSupertype = TypeVariablesManager.getTypeVar(supertypeRepresentator);
if (varSubtype != null || varSupertype != null) {
<BUG>addSubtyping(subtypeRepresentator, supertypeRepresentator);
</BUG>
return;
}
if (SubtypingManager.getInstance().isSubtype(subtypeRepresentator, supertypeRepresentator)) {

SNode supertypeRepresentator = getRepresentator(supertype);
if (subtypeRepresentator == supertypeRepresentator) return;
RuntimeTypeVariable varSubtype = TypeVariablesManager.getTypeVar(subtypeRepresentator);
RuntimeTypeVariable varSupertype = TypeVariablesManager.getTypeVar(supertypeRepresentator);
if (varSubtype != null || varSupertype != null) {
addSubtyping(subtypeRepresentator, supertypeRepresentator, nodeToCheck);
return;
}
if (SubtypingManager.getInstance().isSubtype(subtypeRepresentator, supertypeRepresentator)) {
