Suppose we are writing a processor that prints the return types of a
givenFunction
. This (file that contains the given) function is the root of the navigation and we associate it with the
output
. When this processor resolves references of the return type, e.g.,
givenFunction.returnType?.resolve()
, KSP associates the class definitions of the resolved type with the
output
as well.
Processors' outputs depend on their inputs. In the above example, when the class definition of the
returnType
changes, the processor may observe the change and potentially produce something differently. Therefore a change in
returnType
needs to trigger re-processing of all files / elements required for
output
in the incremental build.