code: private void registerListType(PContainer containerType) {
          PDescriptor itemType = containerType.itemDescriptor();
          if (itemType.getType() == PType.MAP ||
              itemType.getType() == PType.LIST ||
              itemType.getType() == PType.SET) {
              registerListType((PContainer) itemType);
          } else if (itemType.getType() == PType.ENUM ||
                     itemType.getType() == PType.MESSAGE){
              registerRecursively((PDeclaredDescriptor<?>) itemType);
          }
          if (containerType instanceof PMap) {
              PDescriptor keyType = ((PMap) containerType).keyDescriptor();
              if (keyType.getType() == PType.ENUM ||
                  keyType.getType() == PType.MESSAGE){
                  registerRecursively((PDeclaredDescriptor<?>) keyType);
              }
          }
          // Else ignore.
      }
docs: Register a list type part of recursive registering.
  
  @param containerType The container to register containing types of.