revive old commented-out test cases as ignored test cases for hygiene
comments only
enrich and rename crate_idents test case
add unit test for match var hygiene
remove unneeded visit_ty methods
remove unneccessary pubs, shorten names
remove misleading and unnecessary underscores
don't expand subexprs of for loop, just re-expand whole thing.

Fixes #15167
added compile-fail test for 15167
make macros hygienic
work around 15189 in test cases
json: Fix handling of NaN/Infinity

The JSON spec requires that these special values be serialized as null; the current serialization breaks any conformant JSON parser. So encoding needs to output "null",  to_json on floating-point types can return Null as well as Number, and reading null when specifically expecting a number should be interpreted as NaN. There's no way to round-trip Infinity.
more loops to be ignored by pretty-rpass
auto merge of #15184 : jbclements/rust/for-loop-hygiene-etc, r=jbclements

It turns out that bindings introduced by 'for' loops were not treated hygienically. The fix for this is to make the 'for' expansion more like a macro; rather than expanding sub-pieces and then assembling them, we need to rewrite the for and then call expand again on the whole thing.

This PR includes a test and the fix.

It also contains a number of other things:
- unit tests for other forms of hygiene (currently ignored)
- a fix for the isaac.rs macro that (it turned out) was relying on capturing
- other miscellaneous cleanup and comments
auto merge of #15162 : steveklabnik/rust/install_instructions, r=brson

This has my voice *very strongly*. I'm not sure if it's too much. I'd find it okay if I had to tone it back, and I don't want it to be _too strong_, but clinical docs are boring.
Remove unnecessary to_string calls

This commit removes superfluous to_string calls from various places
auto merge of #15181 : steveklabnik/rust/hello_world, r=brson

This is built on top of https://github.com/rust-lang/rust/pull/15162 . https://github.com/steveklabnik/rust/commit/cccae83d922f5aade2b7cca96579521cc35ced59 is the only new commit, you may want to look at that rather than the whole diff.

Writing our first Rust program together. This is the most crucial step, so I go to a fairly deep level of detail. Future sections will move more quickly.
Fix a typo and a small syntactic error.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
auto merge of #15194 : Sawyer47/rust/to-string-cleanup, r=alexcrichton

This commit removes superfluous to_string calls from various places
auto merge of #15192 : mrec/rust/json-nan, r=alexcrichton

The JSON spec requires that these special values be serialized as "null"; the current serialization breaks any conformant JSON parser. So encoding needs to output "null",  `to_json` on floating-point types can return `Null` as well as `Number` values, and reading a `Null` value when specifically expecting a number should be interpreted as NaN. There's no way to round-trip Infinity through JSON.

This is my first attempt at both writing Rust and opening pull requests, so please dial your derp detector up to eleven when reviewing. A `rustc --test lib.rs` in `libserialize` passes all tests; a `make check` of the whole tree fails with the error below, but it doesn't look obviously related and the docs say that `make check` is known to be flaky on Windows.

    ---- [compile-fail] compile-fail/svh-change-significant-cfg.rs stdout ----
            task '[compile-fail] compile-fail/svh-change-significant-cfg.rs' failed at 'called `Result::
    unwrap()` on an `Err` value: couldn't create file (end of file (unknown error); path=i686-pc-mingw32
    \test\compile-fail\svh-a-base.err; mode=truncate; access=write)', C:\msys\home\Mike\rust\src\libcore
    \result.rs:545

Incidentally, it may just be my lack of familiarity with the language and its idioms, but the duplication between `Encoder`/`PrettyEncoder` had a distinct code smell to it. The size of the file (~3500 lines) also made it a bit hard to navigate. Has there been any discussion of refactoring and/or breaking it up? I couldn't find anything in Issues except the ancient #9028.