auto merge of #19122 : Kintaro/rust/remove_struct_variant, r=jakub-

The struct_variant is not gated anymore. This commit just removes it and the resulting warnings when compiling rust. Now compiles with the snapshot from 11/18 (as opposed to PR #19014)
auto merge of #17513 : dradtke/rust/master, r=kballard

Looks like I made my previous PR a little too hastily. =)

This PR fixes a couple issues that I discovered with my previous revision:

1. Updated the errorformat to ignore "pointer lines" so that they don't show up in the output (with quickfix jumping, they're redundant and unnecessary).
2. Renamed a couple variables to be more in line with Cargo's terminology (`g:cargo_toml_name` should now be `g:cargo_manifest_name`).
3. Added support for errors reported with absolute paths (looks to be the case when compiling an executable instead of a library).
4. Most importantly, added support for errors reported while compiling a dependency. When building a Cargo package with local dependencies, if one of those dependencies failed to compile, the quickfix would be completely broken as it assumed that all errors were relative to the local manifest, or the closest Cargo.toml. With this update, it now pays attention to lines that end with `(file://<path>)`, and from then on adjusts all errors to be relative to `<path>`.

As a side note, that `<path>` output is somewhat broken on Windows. While `file:///home/damien/...` on *Nix is a valid URI, `file:///C:/Users/damien/...` on Windows is not, because `C:/` (or whatever the drive is) should take the place of the third slash which is *Nix's root, not be appended to it. I added a workaround for this in my script, but I figured I'd mention it to see if this is a bug in how Rust formats paths.
Rename variables called pq to heap

The old name was sensible when this module was PriorityQueue but isn't
anymore.
auto merge of #19124 : Kintaro/rust/remove_test_struct_variants, r=bstrie

Removed usage of struct_variant feature from all tests.
Merge pull request #1 from rust-lang/master

Update from original
auto merge of #19125 : chris-morgan/rust/vim-prelude-2014-11-20, r=alexcrichton
auto merge of #19132 : sinistersnare/rust/patch-1, r=alexcrichton

Just used Githubs edit view, so I hope this works...
DSTify free functions in std::hash
auto merge of #19133 : nodakai/rust/run-make-tests-missing-extracflags, r=alexcrichton

Missing `$(EXTRACFLAGS)` resutled in compile failures.
Fix pretty printing unsafe match arms
std: Align `raw` modules with unsafe conventions

This commit is an implementation of [RFC 240][rfc] when applied to the standard
library. It primarily deprecates the entirety of `string::raw`, `vec::raw`,
`slice::raw`, and `str::raw` in favor of associated functions, methods, and
other free functions. The detailed renaming is:

* slice::raw::buf_as_slice => slice::with_raw_buf
* slice::raw::mut_buf_as_slice => slice::with_raw_mut_buf
* slice::shift_ptr => deprecated with no replacement
* slice::pop_ptr => deprecated with no replacement
* str::raw::from_utf8 => str::from_utf8_unchecked
* str::raw::c_str_to_static_slice => str::from_c_str
* str::raw::slice_bytes => deprecated for slice_unchecked (slight semantic diff)
* str::raw::slice_unchecked => str.slice_unchecked
* string::raw::from_parts => String::from_raw_parts
* string::raw::from_buf_len => String::from_raw_buf_len
* string::raw::from_buf => String::from_raw_buf
* string::raw::from_utf8 => String::from_utf8_unchecked
* vec::raw::from_buf => Vec::from_raw_buf

All previous functions exist in their `#[deprecated]` form, and the deprecation
messages indicate how to migrate to the newer variants.

[rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0240-unsafe-api-location.md
[breaking-change]

Closes #17863
auto merge of #19134 : sinistersnare/rust/patch-2, r=alexcrichton

Vec<T> can index now so its a useless conversion.
Add test
auto merge of #19136 : alfie/rust/master, r=steveklabnik

An example of how type definitions work would be handy
Mark Any::get_type_id as experimental

It is likely going to be removed and replaced
with an associated static.

Fixes #19222
Any: use plain transmute instead of transmute_copy for downcasting.

transmute_copy is no longer needed and is just slow.
auto merge of #19137 : tbu-/rust/pr_refcell_unsafety, r=huonw
save-analysis: emit a type for enum variants
save-analysis: add values for types
auto merge of #19146 : gereeter/rust/reference-borrow, r=aturon

This should be a more general version of #19131.