All tests for the whole-program-inference feature must be added to the
"non-annotated" folder. These tests must have expected error comments
(// :: error...) in places where the type-checker issues an error.
These are locations that an annotation is needed for it to
type-check. Also, these tests must ONLY have expected error comments for those
cases -- no other expected errors comments should be added.

The task wholeProgramInferenceTests tests the whole-program inference
in three steps:
1. The WholeProgramInferenceTest Checker will type-check all files in the
"non-annotated" folder, writing the inferred types of some elements into
.jaif files. The inferred types are written into .jaif files, but are not
considered during this type-check -- for that reason the expected error comments
are necessary.

2. All tests in "non-annotated" are copied to a temporary directory, named
"annotated". All expected error comments are removed from the files in
"annotated", and the insert-annotations-to-source tool will insert the
annotations that were inferred in the previous step into the files of the
temporary directory.

3. The WholeProgramInferenceValidationTest Checker will type-check all files in
the temporary "annotated" folder. The expected error comments were removed,
but the inferred types that were inserted should remove their occurrence during
the type-checking.

In order to test that an error will persist even after the whole-program inference,
this expected error must be added to the "non-annotated/ExpectedErrors.java"
file. This is the only file where the expected error comments are not removed
when copied to "annotated/ExpectedErrors.java".
