Commits
Jordan Rose committed c712c51d4ac
Dependencies: start tracking whether a lookup is private to a file or not. This is sort of two commits squashed into one: first, update ReferencedNameTracker to record whether a name or type is non-private, along with changing all clients to assume non-private; and second, actually try to (conservatively) decide if a particular unqualified lookup can be considered private. What does "private" mean? That means that a dependency does not affect "downstream" files. For example, if file A depends on B, and B depends on C, then a change in C normally means A will get rebuilt. But if B's dependencies on C are all private dependencies (e.g. lookups from within function bodies), then A does not need to be rebuilt. In practice there are several rules about when we can make this assumption, and a few places where our current DeclContext model is not good enough to distinguish private uses from non-private uses. In these cases we have to be conservative and assume that the use is non-private (and thus that downstream files will need to be rebuilt). Part of rdar://problem/15353101 Swift SVN r23447