code: Type sigToTypeParam() {
          int start = sigp;
          while (signature[sigp] != ':') sigp++;
          Name name = names.fromUtf(signature, start, sigp - start);
          TypeVar tvar;
          if (sigEnterPhase) {
              tvar = new TypeVar(name, currentOwner, syms.botType);
              typevars.enter(tvar.tsym);
          } else {
              tvar = (TypeVar)findTypeVar(name);
          }
          List<Type> bounds = List.nil();
          boolean allInterfaces = false;
          if (signature[sigp] == ':' && signature[sigp+1] == ':') {
              sigp++;
              allInterfaces = true;
          }
          while (signature[sigp] == ':') {
              sigp++;
              bounds = bounds.prepend(sigToType());
          }
          if (!sigEnterPhase) {
              types.setBounds(tvar, bounds.reverse(), allInterfaces);
          }
          return tvar;
      }
docs: Convert (implicit) signature to type parameter.