% echo 'fn main() {}' > test
% rustc test
% ./test # input has been replaced with the output binary
Tested on OS X, af93684. Not that it makes sense to write Rust files with no extension, but if you do, rustc should not overwrite the input file by default.