Commit Graph

41697 Commits

Author SHA1 Message Date
bors 6365080c5c Auto merge of #23085 - goffrie:interpolating-quote, r=huonw
This changes the `ToTokens` implementations for expressions, statements, etc. with almost-trivial ones that produce `Interpolated(*Nt(...))` pseudo-tokens. In this way, quasiquote now works the same way as macros do: already-parsed AST fragments are used as-is, not reparsed.

The `ToSource` trait is removed. Quasiquote no longer involves pretty-printing at all, which removes the need for the `encode_with_hygiene` hack. All associated machinery is removed.

New `Nonterminal`s are added: NtArm, NtImplItem, and NtTraitItem. These are just for quasiquote, not macros.

`ToTokens` is no longer implemented for `Arg` (although this could be added again) and `Generics` (which I don't think makes sense).

This breaks any compiler extensions that relied on the ability of `ToTokens` to turn AST fragments back into inspectable token trees. For this reason, this closes #16987.

As such, this is a [breaking-change].

Fixes #16472.
Fixes #15962.
Fixes #17397.
Fixes #16617.
2015-04-26 09:52:28 +00:00
bors b0043db465 Auto merge of #24367 - ebfull:fix_ice_cat_expr, r=pnkfelix
An actual typeck error is the cause of many failed compilations but an
unrelated bug is being reported instead. It is triggered because a typeck
error is presumably not yet identified during compiler execution, which
would normally bypass an invariant in the presence of other errors. In
this particular situation, we delay the reporting of the bug until
abort_if_errors().

Closes #23827, closes #24356, closes #23041, closes #22897, closes #23966,
closes #24013, and closes #23729

**There is at least one situation where this bug may still be genuinely
triggered (#23437).**
2015-04-26 05:32:16 +00:00
Geoffry Song 24ef905273 Remove FakeExtCtxt from qquote tests.
Instead create an ExtCtxt structure.
2015-04-26 01:09:36 -04:00
bors 61a5e46726 Auto merge of #24825 - rkruppe:reference-audit, r=steveklabnik
Transplant the relevant changes (turns out to be all of them) to `grammar.md`, and remove all grammar talk from `reference.md`. Sorry for the chaos.

The second commit, further below, goes over the comments and whitespace sections.

r? @steveklabnik
2015-04-26 03:34:38 +00:00
Geoffry Song ea892dc70b Remove remaining tests for hygiene-encoded identifiers.
Such things no longer exist.
2015-04-25 21:42:10 -04:00
Geoffry Song 2d9831dea5 Interpolate AST nodes in quasiquote.
This changes the `ToTokens` implementations for expressions, statements,
etc. with almost-trivial ones that produce `Interpolated(*Nt(...))`
pseudo-tokens. In this way, quasiquote now works the same way as macros
do: already-parsed AST fragments are used as-is, not reparsed.

The `ToSource` trait is removed. Quasiquote no longer involves
pretty-printing at all, which removes the need for the
`encode_with_hygiene` hack. All associated machinery is removed.

A new `Nonterminal` is added, NtArm, which the parser now interpolates.
This is just for quasiquote, not macros (although it could be in the
future).

`ToTokens` is no longer implemented for `Arg` (although this could be
added again) and `Generics` (which I don't think makes sense).

This breaks any compiler extensions that relied on the ability of
`ToTokens` to turn AST fragments back into inspectable token trees. For
this reason, this closes #16987.

As such, this is a [breaking-change].

Fixes #16472.
Fixes #15962.
Fixes #17397.
Fixes #16617.
2015-04-25 21:42:10 -04:00
bors 20adc9533d Auto merge of #24815 - heejongahn:master, r=steveklabnik
At https://doc.rust-lang.org/book/vectors.html, there should be a link to
Generics page but the link address is ommitted and thus link is not functioning
well. So I added a link definition to the vectors.md.

r? @steveklabnik
2015-04-26 01:37:58 +00:00
Robin Kruppe 0ea193def9 Reference audit: comments and whitespace sections 2015-04-26 02:02:13 +02:00
bors da623844a9 Auto merge of #24718 - tamird:fix-quote-tests, r=alexcrichton
Sniped from @rprichard's work in #24537. r? @alexcrichton
2015-04-25 23:40:10 +00:00
bors 00c48d3779 Auto merge of #24547 - bombless:comma, r=pnkfelix
Closes #20616 
It breaks code such as <c64feb6341/src/librustc_typeck/check/method/suggest.rs (L367)>, so this is a [breaking-change], you have to add missing comma after the last lifetime arguement now.
2015-04-25 21:44:50 +00:00
Tamir Duberstein beb373b317 `qquote-2.rs` -> `run-fail/qquote.rs`
Re-enables the test.
2015-04-25 14:40:52 -07:00
Tamir Duberstein 00cb5c40a2 `qquote-1.rs` -> `compile-fail-fulldeps/qquote.rs`
Re-enables the test.
2015-04-25 14:40:51 -07:00
Tamir Duberstein 597efd6cec Re-enable test 2015-04-25 14:14:31 -07:00
Tamir Duberstein 8ab8619d20 Unrot and re-enable `run-pass-fulldeps/qquote.rs` 2015-04-25 14:14:31 -07:00
Robin Kruppe 85ee89ae70 Redo PR #24811 properly
Transplant the grammar-related changes to grammar.md,
and remove all grammar talk from reference.md
2015-04-25 22:56:00 +02:00
bors 0d8309ec0b Auto merge of #24813 - Manishearth:rollup, r=Manishearth
- Successful merges: #24649, #24806, #24809, #24811
- Manual merges: #24812
2015-04-25 17:06:48 +00:00
Heejong Ahn 9a2a06cf43 Added a link address to Vectors page of the book
At https://doc.rust-lang.org/book/vectors.html, there should be a link to
Generics page but the link address is ommitted and thus link is not functioning
well. So I added a link definition to the vectors.md.

r? @steveklabnik
2015-04-26 02:04:38 +09:00
Manish Goregaokar 3e67b6bb6c add import (fixup #24649) 2015-04-25 22:33:19 +05:30
Manish Goregaokar 9316b0382b Rollup merge of #24812 - jest:master, r=steveklabnik
Conflicts:
	src/doc/trpl/variable-bindings.md
2015-04-25 21:22:03 +05:30
Manish Goregaokar 007c81b83d Rollup merge of #24811 - rkruppe:reference-audit, r=steveklabnik
Mention `non_ascii_idents` feature gate and remove unused productions.

r? @steveklabnik
2015-04-25 21:18:47 +05:30
Manish Goregaokar 23782ad9a8 Rollup merge of #24809 - conradkleinespel:master, r=Manishearth
The reference has broken links. This should fix it.
2015-04-25 21:18:47 +05:30
Manish Goregaokar cfe08b74bf Rollup merge of #24806 - FuGangqiang:doc, r=Manishearth 2015-04-25 21:18:47 +05:30
Manish Goregaokar 4f1bbc209f Rollup merge of #24649 - nham:path_new_examples, r=steveklabnik 2015-04-25 21:18:47 +05:30
Przemysław Wesołek 2c2abe9a75 A number of spell-checking corrections. 2015-04-25 16:48:44 +02:00
bors 83263b48c3 Auto merge of #24803 - SkylerLipthay:patch-2, r=huonw
The description of the syntax for single byte literals is missing the preceding `b` distinction.
2015-04-25 13:10:33 +00:00
Robin Kruppe 702f17566c Audit reference manual: 3.2 Special unicode productions
Mention non_ascii_idents feature gate and remove unused productions
2015-04-25 14:38:23 +02:00
Conrad Kleinespel b66f858e8f fix compiler plugins path in doc/reference.md 2015-04-25 13:43:26 +02:00
bors e3d00a4980 Auto merge of #24783 - jooert:unittestguidelines, r=alexcrichton
Changes the style guidelines regarding unit tests to recommend using a sub-module named "tests" instead of "test" for unit tests as "test" might clash with imports of libtest (see #23870, #24030 and http://users.rust-lang.org/t/guidelines-naming-of-unit-test-module/1078 for previous discussions).

r? @alexcrichton
2015-04-25 09:55:06 +00:00
FuGangqiang 46462c7b5f fix doc 2015-04-25 16:30:25 +08:00
Skyler b6dd0197f3 Reference manual 3.5.2.3.1
The description of the syntax for single byte literals is missing the preceding `b` distinction.
2015-04-24 23:26:56 -07:00
bors 54d65092a4 Auto merge of #24724 - alexcrichton:symlink-stable, r=aturon
These functions were intended to be introduced as `#[stable]` as a stable API
was deprecated in favor of them, but they just erroneously forgot the stability
attributes.
2015-04-25 05:43:39 +00:00
bors a40261ac91 Auto merge of #24798 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #24662, #24722, #24725, #24729, #24736, #24749, #24751, #24766, #24769, #24772, #24775, #24790
- Failed merges: #24760
2015-04-25 03:43:31 +00:00
York Xiang 0ad48e41c1 Fix #20616 2015-04-25 11:29:28 +08:00
Michael Rosenberg 23b1d172a8 More small syntax changes in reference.md 2015-04-24 22:56:32 -04:00
Steve Klabnik 4fae8fb61e Rollup merge of #24790 - jooert:fix24774, r=steveklabnik
Fixes #24774.

r? @steveklabnik
2015-04-24 22:54:27 -04:00
Steve Klabnik c7279b4214 Rollup merge of #24775 - mbrubeck:reference, r=steveklabnik
Update 7.2.20 (`for` expressions):

* `for` loops now use `IntoIterator` instead of just `Iterator`
* Simplify the example by removing unnecessary `Vec::iter` call.

...and a fix for a minor formatting error.

r? @steveklabnik
2015-04-24 22:54:27 -04:00
Steve Klabnik 5e38691ba6 Rollup merge of #24772 - steveklabnik:gh24712, r=alexcrichton
FIxes #24712
2015-04-24 22:54:26 -04:00
Steve Klabnik a7413ffe19 Rollup merge of #24769 - SkylerLipthay:patch-1, r=steveklabnik
`is` and `us` suffixes are deprecated in favor of `isize` and `usize`.
2015-04-24 22:54:26 -04:00
Steve Klabnik 120065e7f2 Rollup merge of #24766 - nwin:patch-1, r=steveklabnik
Changed in #22838.

audited (raw) byte string literals @ #16676
2015-04-24 22:54:26 -04:00
Steve Klabnik 142acce5b1 Rollup merge of #24751 - lstat:feature-gate-22820-dups, r=brson
As part of the audit for #22820 the following duplicate feature
gate tests were removed:

* `box_patterns`
* `simd_ffi`

These tests for `box_patterns` and `simd_ffi` were added in #23578,
however there were existing tests in #20723 and #21233 respectively.

r? @nrc
2015-04-24 22:54:25 -04:00
Steve Klabnik 13854722fa Rollup merge of #24749 - lstat:feature-gate-22820, r=nrc
As part of the audit for #22820 the following feature gate tests have been
added:

* `negate_unsigned`
* `on_unimplemented`
* `optin_builtin_traits`
* `plugin`
* `rustc_attrs`
* `rustc_diagnostic_macros`
* `slice_patterns`

In addition some feature gate error message typos fixed.
2015-04-24 22:54:25 -04:00
Steve Klabnik c632bdc67a Rollup merge of #24736 - steveklabnik:doc_mutability, r=alexcrichton
Okay, last chapter other than ownership stuff. 🎊
2015-04-24 22:54:25 -04:00
Steve Klabnik 3c6c16e00f Rollup merge of #24729 - mdinger:reference_grammar, r=steveklabnik
From https://github.com/rust-lang/rust/issues/24723#issuecomment-95636827 :

> Yes, I've been meaning to just remove it in favor of GRAMMAR.md
> - steveklabnik
2015-04-24 22:54:25 -04:00
Steve Klabnik 02194bc772 Rollup merge of #24725 - steveklabnik:doc_operators_and_overloading, r=alexcrichton
I forgot these heavily use associated types, so move it after that
as well.
2015-04-24 22:54:25 -04:00
Steve Klabnik 831232b767 Rollup merge of #24722 - steveklabnik:doc_deref, r=alexcrichton
r? @alexcrichton
2015-04-24 22:54:24 -04:00
Steve Klabnik c43ecb513a Rollup merge of #24662 - steveklabnik:gh24656, r=steveklabnik
Fixes #24656 

r? @pnkfelix 

I just added the examples, but if the wording needs expanded too, let me know what you think should be added :)
2015-04-24 22:54:24 -04:00
Steve Klabnik 064972c297 Whoops, please tidy 2015-04-24 18:59:47 -04:00
Steve Klabnik d70a994536 TRPL: deref coercions 2015-04-24 18:39:31 -04:00
Steve Klabnik eb5b842145 Add examples by @pnkfelix to fmt precision
Fixes #24656
2015-04-24 18:24:06 -04:00
Johannes Oertel 7151529f73 rustbook: Fixes display of navigation links in README.html. 2015-04-25 00:21:13 +02:00