Reports code which emulates .flatten on collections of collections.

Example:


  Seq(seq1, seq2).flatMap(identity)
  Seq(seq1, seq2).flatMap(x => identity(x))
  Seq(seq1, seq2).flatMap(x => x)

  val nestedOption = Option(Some(10))
  nestedOption.getOrElse(None)
  nestedOption.map(_.get)

After the quick-fix is applied:


  Seq(seq1, seq2).flatten
  Seq(seq1, seq2).flatten
  Seq(seq1, seq2).flatten

  val nestedOption = Option(Some(10))
  nestedOption.flatten
  nestedOption.flatten