Typeck: Disallow scalar casts to bare_fn.

Bare functions are another example of a scalar but non-numeric
type (like char) that should be handled separately in casts.
This disallows expressions like `0 as extern "Rust" fn() -> int;`.

It might be advantageous to allow casts between bare functions
and raw pointers in unsafe code in the future, to pass function
pointers between Rust and C.

Closes #8728
Fix path parsing
Remove type overflow checks from check_const.rs, refs #4220

The checks are now handled by the linter
Check inferred integer literals for overflows, closes #4220
Make a time test less flaky

This test was failing periodically on windows and other platforms, and in
debugging the issue locally I've found that the previous test was failing
at the assertion `ns0 <= ns1`. Upon inspecting the values, the two numbers were
very close to one another, but off by a little bit.

I believe that this is because `precise_time_s` goes from `u64` -> `f64` and
then we go again back to `u64` for the assertion. This conversion is a lossy one
that's not always guaranteed to succeed, so instead I've changed the test to
only compare against u64 instances.
doc: CSS: fix code fonts

Closes #10330.
Fixed xfail for nbody shootout benchmark by correcting command line parse.
Cleaned up unneeded imports and type changes to resolve compiler warnings.
auto merge of #10410 : willingc/rust/shoot-done, r=huonw

...e.

Cleaned up unneeded imports and type changes to resolve compiler warnings.

Work in process
rustpkg: Eliminate the spurious `os::path_exists(&pkg_src.start_dir.join(p))` assertion failure

This addresses the problem reported in #10253 and possibly elsewhere.

Closes #10253
auto merge of #10342 : catamorphism/rust/rustpkg-dir-checking-and-monitor, r=erickt

r? @brson
io: benchmarks for creation of the various Buffered objects
auto merge of #10441 : cmr/rust/bench_bufferedstream, r=alexcrichton

https://github.com/mozilla/rust/pull/10424 did optimizations without adding a
way to measure their effect and ensure no regressions. This fixes that.
Add build_lib_with_cfgs, build_bin_with_cfgs to rustpkg API. Closes #9944.
doc: disable parser error highlighting + a few fixes

CodeMirror parser errors are related to #9873.
doc: add favicon to tutorial/manual

Since tutorial/manual files are stored on static.rust-lang.org, browsers
try to fetch the favicon from there while it should be retrieved from the
main domain.
doc: tidy up makefile rules
be more robust when removing download artifacts and remove bogus raise statement
make missing_doc lint respect the visibility rules

Previously, the `exported_items` set created by the privacy pass was
incomplete. Specifically, it did not include items that had been defined
at a private path but then `pub use`d at a public path. This commit
finds all crate exports during the privacy pass. Consequently, some code
in the reachable pass and in rustdoc is no longer necessary. This commit
then removes the separate `MissingDocLintVisitor` lint pass, opting to
check missing_doc lint in the same pass as the other lint checkers using
the visibility result computed by the privacy pass.

Fixes #9777.
auto merge of #10277 : dcrewi/rust/missing-doc-and-visibility-rules, r=alexcrichton

Now the privacy pass returns enough information that other passes do not need to duplicate the visibility rules, and the missing_doc implementation is more consistent with other lint checks.
Implemented BufWriter

Filled in the implementations of Writer and Seek for BufWriter. It
raises the io_error condition if a write cannot fit in the buffer.

The Seek implementation for MemWriter, which was incorrectly using
unsigned arithmatic to add signed offsets, has also been replaced.