Guys, why do we need ``isTupleOrFunctionLiteral`` in the first place? I really can't see any reason.
 Basically, why should we treat Tuple/Function in ``AppliedTypeTree`` nodes any different that any other type application? Furthermore, if you look at the two ``case AppliedTypeTree``, it looks like we don't really need the information. All we need is **not traversing** the ``Select`` of the ``AppliedTypeTree`` if it doesn't appear in the source code (i.e., it doesn't have a range position).

My current proposal is to get rid of the ``isTupleOrFunctionLiteral`` method, and merge the two ``case AppliedTypeTree`` into the following

```scala
case AppliedTypeTree(tpe, args) =>
  if(!hasSourceCodeRepresentation(t)) args.flatMap(safeSymbol)
  else (tpe :: args).flatMap(safeSymbol)
```

With the above changes, all tests still pass. If none disagrees, that's what I'm going to push.