FCS is an incremental execution engine. The aim is to make it Roslyn-like. We're not quite there.
There are two dimensions of incrementality:
The logical results of all "Check" routines (
ParseAndCheckProject) depend on results reported by the file system,
IFileSystem implementation described in the tutorial on project wide analysis.
Logically speaking, these results would be different if file system changes occur. For example,
referenced DLLs may change on disk, or referenced files may change.
There is work-in-progress to make all parsing and checking deliver results based on immutable snapshots of inputs.