     if visibilityMatch = new RegExp(VisibilityRegex).exec(rawSummary)
       visibility = visibilityMatch[1]
       rawVisibility = visibilityMatch[0]
-      rawSummary = rawSummary.replace(rawVisibility, '')
+      rawSummary = rawSummary.replace(rawVisibility, '') if rawVisibility?
 
   if isReturnValue(rawSummary)
     returnValues = parseReturnValues(tokens, false)


  returnsMatches = new RegExp(ReturnsRegex).exec(firstToken.text) # there might be a `Public: ` in front of the return.
  if consumeTokensAfterReturn
    normalizedString = generateDescription(tokens, -> true).replace(returnsMatches[1], '')
  else
    token = tokens.shift()
    normalizedString = token.text.replace(returnsMatches[1], '').replace(/\s{2,}/g, ' ')


  returnValues = null


  if nameMatches = new RegExp(ArgumentListItemRegex).exec(argumentString)
    name = nameMatches[1]
    description = description.replace(nameMatches[0], '') if nameMatches[0]?
    type = getLinkMatch(description)
    isOptional = !!nameMatches[3]

