code: private Node parseTopLevelTypeExpression(JsDocToken token) {
      Node typeExpr = parseTypeExpression(token);
      if (typeExpr != null) {
        // top-level unions are allowed
        if (match(JsDocToken.PIPE)) {
          next();
          skipEOLs();
          token = next();
          return parseUnionTypeWithAlternate(token, typeExpr);
        }
      }
      return typeExpr;
    }
docs: TopLevelTypeExpression := TypeExpression
  | TypeUnionList
  
  We made this rule up, for the sake of backwards compatibility.