All tests for the -Ainfer command-line argument must be added to the
"non-annotated" folder. These tests have expected error comments
(// :: error...) in places where the type-checker issues an error before
inference but not after inference, and no other "// :: error".

The task ainferTest tests the -Ainfer command-line argument in three
steps:

1. The TestChecker will type-check all files in the "non-annotated" folder
using the -Ainfer command-line argument, which writes the inferred types of
some elements into annotation files. The inferred types are written into
annotation 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".  When testing `.jaif` files, the insert-annotations-to-source
tool inserts the annotations that were inferred in the previous step into
the files of the temporary directory.

3. The TestChecker will type-check all files in the temporary "annotated"
folder. The expected error comments were removed, but the inferred types
(for `.jaif` files, they were inserted; for other annotation file tests,
they are used as stub files) should ensure that type-checking completes
without errors.

If an error should persist even with the annotations produced by -Ainfer,
add the test 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".
