@NotNull
    private Type getListSubscript(@NotNull Type vt, @Nullable Type st, State s) {
        if (vt instanceof ListType) {
            if (st != null && st instanceof ListType) {
                return vt;
            } else if (st == null || st.isNumType()) {
                return ((ListType) vt).eltType;
            } else {
                addError("The type can't be subscripted: " + vt);
                return Type.UNKNOWN;
            }
        } else {
            return Type.UNKNOWN;
        }
    }