fix printing signed literal in print_literal
Ensure that the return type of a function is Sized

While no real rvalue of an unsized type can exist, a diverging function
can still "return" a value of such a type, which causes an ICE.

Fixes #18107.
auto merge of #18142 : arielb1/rust/return-type-sized, r=eddyb

Fixes #18107 

r? @eddyb
auto merge of #18160 : koshlo/rust/to-source-fix, r=alexcrichton

Fix for issue #18091 

The problem seems to be that `ast_util::int_ty_to_string` takes unsigned number, and no one adds `-` to result string. I've fixed it by putting `-` before result string using `format!`.

I've also added `test_signed_int_to_string()` to check if implementation is valid.
Optimize BufferedReader::read for large buffers.

This optimizes `read` for the case in which the number of bytes
requested is larger than the internal buffer. Note that the first
comparison occurs again right afterwards and should thus be free. The
second comparison occurs only in the cold branch.
auto merge of #18108 : mahkoh/rust/buffered_reader, r=alexcrichton

This optimizes `read` for the case in which the number of bytes
requested is larger than the internal buffer. Note that the first
comparison occurs again right afterwards and should thus be free. The
second comparison occurs only in the cold branch.
Handle negative numbers in `sqrt` properly.

Closes #9987.
auto merge of #18174 : huonw/rust/fix-sqrt, r=alexcrichton

Closes #9987.