A few ground rules:
- Values in the
InternPoolare immutable. The meaning of a givenIndexnever changes. - The only kind of "exception" to this is that the namespace of types may change. The namespace index
is constant, but the contents of that namespace can change while the type lives at the same
Index. - Incremental compilation works at the level of single units of semantic analysis (
AnalUnit). During semantic analysis, everyAnalUnitregisters "dependencies" on various things ("dependees"). On each incremental update, these dependencies are used to figure out what to re-analyze. - An incremental update may analyze more
AnalUnits than are necessary, but it will never analyze the