code: Object readClassOrType(int i) {
          int index =  poolIdx[i];
          int len = getChar(index + 1);
          int start = index + 3;
          Assert.check(buf[start] == '[' || buf[start + len - 1] != ';');
          // by the above assertion, the following test can be
          // simplified to (buf[start] == '[')
          return (buf[start] == '[' || buf[start + len - 1] == ';')
              ? (Object)sigToType(buf, start, len)
              : (Object)enterClass(names.fromUtf(internalize(buf, start,
                                                             len)));
      }
docs: If name is an array type or class signature, return the
  corresponding type; otherwise return a ClassSymbol with given name.