Fix #13140: Early/Late Bound related ICEs.

The problem was that we need to apply the substitution, so that the
formal lifetime parameters get replaced with (unifiable)
free-lifetimes that can actually be fed into the constraint solver.

Also, refactor code os that substitution for `check_item` and
`check_method`, moving both down the control flow into `check_bare_fn`.

----

Finally, there was another (similar) spot where we needed to
substitute early-bound lifetimes when invoking an object method of a
trait.
Fix Repr impl for method::Candidate to include the method_ty.
Add test using early-bound lifetimes in trait generic parameters.
verify-grammar path to rust.md

When calling

   make verify-grammar

rust.md cannot be found, because the
path to rust.md is missing.

The path is set to:

   $(D)/rust.md

This can only be tested, when llnextgen is installed.

Signed-off-by: Jan Kobler <eng1@koblersystems.de>
verify-grammar keyword crate

When calling

   make verify-grammar

or when llnextgen is not installed:

   python2.7 src/etc/extract_grammar.py <src/doc/rust.md

an error is reported by extract_grammar.py that the

keyword "crate" is not defined.

This patch adds the keyword "crate" to the grammar in rust.md.

Signed-off-by: Jan Kobler <eng1@koblersystems.de>
verify-grammar llnextgen

When calling

    make verify-grammar

a lot of errors are reported by llnextgen.

Only simple errors like:

  missing semicolons,
  missing single quotes,
  usage of parentheses instead of squared brackets or
  usage of single quote instead of double quote

are fixed by this patch.

This can only be tested, when llnextgen is installed.

Signed-off-by: Jan Kobler <eng1@koblersystems.de>
Initial support for emitting DWARF for static vars.

Only supports crate level statics. No debug info is generated for
function level statics. Closes #9227.
collections: remove List

It was decided in a meeting that this module wasn't needed,
and more thought should be put into a persistent collections
library.
test: remove pure test, which is now redundant with inline tests
std and green: fix some warnings
Used inherited mutability in lexer::Reader.
De-@ TokenTree.
De-@ NamedMatch.
De-@ IdentInterner.
Remove a RefCell from pprust::State.
Remove `Freeze` and add `Share` in vim's syntax
auto merge of #13161 : FlaPer87/rust/master, r=alexcrichton
syntax: Accept meta matchers in macros

This removes the `attr` matcher and adds a `meta` matcher. The previous `attr`
matcher is now ambiguous because it doesn't disambiguate whether it means inner
attribute or outer attribute.

The new behavior can still be achieved by taking an argument of the form
`#[$foo:meta]` (the brackets are part of the macro pattern).

Closes #13067
Convert most code to new inner attribute syntax.

Closes #2569
Register new snapshot