int toAddSelf = (!constr.isTrivial) && (l == level) ? 1 : 0;
int toAddSelf = (l == level) && (!constr.isTrivial) ? 1 : 0;
    private void computeAncestors() {        final int level = constr.level;        final int ancestorDepth = constr.ancestorCacheDepth;        final int[] ancestorCode = constr.ancestorCode;        ScalaClassType[] parents = getParents();        ancestors = new ScalaClassType[ancestorDepth][];        ScalaClassType[][] initialAncestors = parents.length > 0            ? parents[0].getAncestors()            : EMPTY_ANCESTORS;        for (int l = 0, dci = 0; l < ancestorDepth; ++l) {            int toAddParents = 0;            if (dci < ancestorCode.length && ancestorCode[dci] == l) {                dci++;                toAddParents = ancestorCode[dci++];            }            int toAddSelf = (!constr.isTrivial) && (l == level) ? 1 : 0;            int toAdd = toAddParents + toAddSelf;            ScalaClassType[] initialRow;            if (l < initialAncestors.length)                initialRow = initialAncestors[l];            else                initialRow = ScalaClassType.EMPTY_ARRAY;            if (toAdd == 0) {                ancestors[l] = initialRow;            } else {                int initialLen = initialRow.length;                ScalaClassType[] newRow =                    new ScalaClassType[initialLen + toAdd];                if (toAddSelf == 1)                    newRow[0] = this;                System.arraycopy(initialRow, 0, newRow, toAddSelf, initialLen);                for (int i = 0; i < toAddParents; ++i) {                    int p = ancestorCode[dci++];                    int o = ancestorCode[dci++];                    newRow[toAddSelf + initialLen + i] =                        parents[p].getAncestors()[l][o];                }                ancestors[l] = newRow;            }        }    }