The project system invokes DefaultExtension in order to determine what extension to give to the generated output file.
The project system creates the file name of the generated file by:
Stripping the extension of the input file.
Appending the extension obtained from DefaultExtension.
Making the file name unique, if necessary.