Get rid of unused SimpleVisitor stuff.
Guarantee that statics have unique names

While they may have the same name within various scopes, this changes static
names to use path_pretty_name to append some hash information at the end of the
symbol. We're then guaranteed that each static has a unique NodeId, so this
NodeId is as the "hash" of the pretty name.

Closes #9188
debuginfo: Basic support for trait objects.
debuginfo: Implement DI for ty_opaque_box.
debuginfo: Support for recursive types.
debuginfo: Added test cases for recursive structs.
debuginfo: Added description of algorithm for handling recursive types.

Also fixed nasty bug caused by calling LLVMDIBuilderCreateStructType() with a null pointer where an empty array was expected (which would trigger an unintelligable assertion somewhere down the line).
debuginfo: Fix style nits for pull request.
debuginfo: Some namespace-related cleanup.
std::rt::io::file: Enable I/O tests on Win32

Enable blocked tests which are now fixed by #9165.

Closes #8810.
debuginfo: Added LLVMDICompositeTypeSetTypeArray to rustllvm.def.in
std::rt::io::support: Fix ignored test on Win32

Assumes drive C: exists.

Closes #8812.
std::os: Use unicode for last_os_error() on Win32

FormatMessageA may return non-ascii message,
which is encoded as system code page, not utf8.
This may cause `assert!(is_utf8(v))` failure on
some non-English machines.
This patch replaces it with FormatMessageW,
which returns utf-16 message.

Fixes `make check-stage2-std` failure on my machine. :)
std::rt::uv::uvll: Fix uv_req_type on Win32

Also enables request_sanity_check() test.

Closes #8817
std::rt::io::net::tcp: Fix one tcp test on Win32

Fixes `connect_error` part of #8811.
auto merge of #9168 : michaelwoerister/rust/traits, r=jdm

This pull request finally adds support for recursive type definitions and provides a stub implementation for object pointers.
rust test: pass the remaining arguments through

The arguments after `rust test filename.rs` should be passed through
to the test binary. This allows the `rust` command to be used to run a
subset of tests, to run ignored tests, and to run benchmarks.
auto merge of #9213 : dcrewi/rust/rust-test-arguments, r=catamorphism

The arguments after `rust test filename.rs` should be passed through
to the test binary. This allows the `rust` command to be used to run a
subset of tests, to run ignored tests, and to run benchmarks.
std::rt::uv::uvio: Enable tests on Win32

Closes #8816.
extra::fileinput: Enable tests on Win32

They were blocked by #8810, but it works now.