Refactor the unification code and rejuvenate the unit test
infrastructure that has been accidentally left out of the build
for a rather long time (it was still using `@DVec`!)
test: readd TMPDIR to LD_LIBRARY_PATH for run-make

It was accidentally removed in #15006 and that somehow got past the
build bots, causing `src/test/run-make/c-dynamic-dylib` to fail on at
least my linux system.

This resolves #15103 (thanks to @alexcrichton!).
Add regression test for ICE from issue 10846.
Docs: tutorial: Remove a couple references to `~T`
auto merge of #15079 : nikomatsakis/rust/issue-5527-unify-refactor, r=pnkfelix

This is just a cleanup of the code. Doesn't really change anything deep about the way we operate. This is a prelude to implementing a good solution for one-way matching for #5527.

r? @pnkfelix (we were just crawling about this code, after all)
librustc: Feature gate lang items and intrinsics.

If you define lang items in your crate, add `#[feature(lang_items)]`.

If you define intrinsics (`extern "rust-intrinsic"`), add
`#[feature(intrinsics)]`.

Closes #12858.

[breaking-change]
auto merge of #15066 : pcwalton/rust/lang-and-intrinsic-feature-gate, r=alexcrichton

If you define lang items in your crate, add `#[feature(lang_items)]`.

If you define intrinsics (`extern "rust-intrinsic"`), add
`#[feature(intrinsics)]`.

Closes #12858.

[breaking-change]

r? @brson
Added Mipsel architecture support
auto merge of #15107 : ipetkov/rust/tutorial-update, r=alexcrichton
auto merge of #15113 : pnkfelix/rust/fsk-add-regression-test-for-ice-from-10846, r=alexcrichton

Includes a bit more comments than usual for a regression test; I felt like documenting Niko's diagnosis of the original problem here. 

Fix #15111 

r? anyone.
librustc: Remove outdated reference to `~` and `@`

Fix #15052
auto merge of #14963 : w3ln4/rust/master, r=alexcrichton

The aim of these changes is not working out a generic bi-endianness architectures support but to allow people develop for little endian MIPS machines (issue #7190).
auto merge of #15071 : tomjakubowski/rust/fix-15052, r=alexcrichton

Fix #15052
auto merge of #15114 : ben0x539/rust/run-make-libpath, r=alexcrichton

It was accidentally removed in #15006 and that somehow got past the
build bots, causing `src/test/run-make/c-dynamic-dylib` to fail on at
least my linux system.

This resolves #15103 (thanks to @alexcrichton!).
librustc: Remove the fallback to `int` from typechecking.

This breaks a fair amount of code. The typical patterns are:

* `for _ in range(0, 10)`: change to `for _ in range(0u, 10)`;

* `println!("{}", 3)`: change to `println!("{}", 3i)`;

* `[1, 2, 3].len()`: change to `[1i, 2, 3].len()`.

RFC #30. Closes #6023.

[breaking-change]