Esteban Küber
dedb7bbbbf
Merge branch 'master' into issue-32540
2017-04-04 08:13:27 -07:00
bors
474f7a91ee
Auto merge of #40620 - laumann:slash-in-diagnostics-path, r=BurntSushi
...
Replace hardcoded forward slash with path::MAIN_SEPARATOR
Fixes #40149
2017-03-31 03:22:39 +00:00
Niko Matsakis
56847af916
port the match code to use CoerceMany
...
`match { }` now (correctly?) indicates divergence, which results in more
unreachable warnings. We also avoid fallback to `!` if there is just one
arm (see new test: `match-unresolved-one-arm.rs`).
2017-03-30 07:55:29 -04:00
Thomas Jespersen
b376386228
Replace hardcoded forward slash with path::MAIN_SEPARATOR
...
Fixes #40149
2017-03-30 13:51:16 +02:00
Jeffrey Seyfried
8fde04b4a2
Improve Path spans.
2017-03-30 05:44:56 +00:00
Jeffrey Seyfried
f08d5ad4c5
Refactor how spans are combined in the parser.
2017-03-29 11:17:59 +00:00
Jeffrey Seyfried
ec7c0aece1
Merge ExpnId and SyntaxContext.
2017-03-29 00:41:10 +00:00
Esteban Küber
b477682dca
Fix unittests
2017-03-27 19:13:03 -07:00
Oliver Schneider
eb447f4ef4
Fix various useless derefs and slicings
2017-03-27 08:58:00 +02:00
Esteban Küber
78ae8feebb
Improve wording and spans for unexpected token
...
* Point at where the token was expected instead of the last token
successfuly parsed.
* Only show `unexpected token` if the next char and the unexpected token
don't have the same span.
* Change some cfail and pfail tests to ui test.
* Don't show all possible tokens in span label if they are more than 6.
2017-03-25 15:36:59 -07:00
Esteban Küber
03eca71381
Point at last valid token on failed expect_one_of
...
```rust
error: expected one of `.`, `;`, `?`, `}`, or an operator, found `)`
--> $DIR/token-error-correct-3.rs:29:9
|
25 | foo()
| - expected one of `.`, `;`, `?`, `}`, or an operator after this
...
29 | } else {
| ^ unexpected token
```
2017-03-24 23:37:25 -07:00
Esteban Küber
769b95dc9f
Add diagnostic for incorrect pub (restriction)
...
Given the following statement
```rust
pub (a) fn afn() {}
```
Provide the following diagnostic:
```rust
error: incorrect restriction in `pub`
--> file.rs:15:1
|
15 | pub (a) fn afn() {}
| ^^^^^^^
|
= help: some valid visibility restrictions are:
`pub(crate)`: visible only on the current crate
`pub(super)`: visible only in the current module's parent
`pub(in path::to::module)`: visible only on the specified path
help: to make this visible only to module `a`, add `in` before the path:
| pub (in a) fn afn() {}
```
Remove cruft from old `pub(path)` syntax.
2017-03-22 22:51:45 -07:00
Vadim Petrochenkov
b5e889791a
Refactor parsing of trait object types
2017-03-21 23:01:53 +03:00
Corey Farwell
f2290dab9a
Rollup merge of #40589 - topecongiro:floating-point-literal, r=nagisa
...
Parse 0e+10 as a valid floating-point literal
Fixes issue #40408 .
2017-03-19 10:18:18 -04:00
bors
9c15de4fd5
Auto merge of #40346 - jseyfried:path_and_tokenstream_attr, r=nrc
...
`TokenStream`-based attributes, paths in attribute and derive macro invocations
This PR
- refactors `Attribute` to use `Path` and `TokenStream` instead of `MetaItem`.
- supports macro invocation paths for attribute procedural macros.
- e.g. `#[::foo::attr_macro] struct S;`, `#[cfg_attr(all(), foo::attr_macro)] struct S;`
- supports macro invocation paths for derive procedural macros.
- e.g. `#[derive(foo::Bar, super::Baz)] struct S;`
- supports arbitrary tokens as arguments to attribute procedural macros.
- e.g. `#[foo::attr_macro arbitrary + tokens] struct S;`
- supports using arbitrary tokens in "inert attributes" with derive procedural macros.
- e.g. `#[derive(Foo)] struct S(#[inert arbitrary + tokens] i32);`
where `#[proc_macro_derive(Foo, attributes(inert))]`
r? @nrc
2017-03-19 10:56:08 +00:00
topecongiro
8eaac0843e
Parse 0e+10 as a valid floating-point literal
...
Fixes issue #40408 .
2017-03-18 21:16:16 +09:00
Esteban Küber
e3b8550a60
Point out correct turbofish usage on Foo<Bar<Baz>>
...
Whenever we parse a chain of binary operations, as long as the first
operation is `<` and the subsequent operations are either `>` or `<`,
present the following diagnostic help:
use `::<...>` instead of `<...>` if you meant to specify type arguments
This will lead to spurious recommendations on situations like
`2 < 3 < 4` but should be clear from context that the help doesn't apply
in that case.
2017-03-14 12:09:21 -07:00
bors
6f10e2f63d
Auto merge of #39921 - cramertj:add-catch-to-ast, r=nikomatsakis
...
Add catch {} to AST
Part of #39849 . Builds on #39864 .
2017-03-14 10:40:09 +00:00
Jeffrey Seyfried
839c2860cc
Liberalize attributes.
2017-03-14 04:39:21 +00:00
Jeffrey Seyfried
68c1cc68b4
Refactor Attribute to use Path and TokenStream instead of MetaItem.
2017-03-14 04:03:43 +00:00
Jeffrey Seyfried
460bf55f8a
Cleanup.
2017-03-14 03:35:16 +00:00
Corey Farwell
8d1c5700f0
Rollup merge of #40369 - petrochenkov:segspan, r=eddyb
...
Give spans to individual path segments in AST
And use these spans in path resolution diagnostics.
The spans are spans of identifiers in segments, not whole segments. I'm not sure what spans are more useful in general, but identifier spans are a better fit for resolve errors.
HIR still doesn't have spans.
Fixes https://github.com/rust-lang/rust/pull/38927#discussion_r95336667 https://github.com/rust-lang/rust/pull/38890#issuecomment-271731008
r? @nrc @eddyb
2017-03-12 12:48:46 -04:00
bors
f88b24b34c
Auto merge of #40340 - petrochenkov:restricted, r=nikomatsakis
...
Update syntax for `pub(restricted)`
Update the syntax before stabilization.
cc https://github.com/rust-lang/rust/issues/32409
r? @nikomatsakis
2017-03-12 11:08:44 +00:00
Taylor Cramer
ea4e8b0a81
Temporarily prefix catch block with do keyword
2017-03-11 22:26:57 -08:00
Taylor Cramer
d95c543722
Add catch expr to AST and disallow catch as a struct name
2017-03-11 22:26:52 -08:00
Vadim Petrochenkov
32575a0487
Give spans to individual path segments in AST
2017-03-10 08:21:45 -08:00
Vadim Petrochenkov
880262a2bc
Update syntax for pub(restricted)
2017-03-10 08:19:20 -08:00
Jeffrey Seyfried
8c98996934
Avoid using Mark and Invocation for macro defs.
2017-03-10 08:08:32 -08:00
Jeffrey Seyfried
212b6c2550
Refactor out ast::ItemKind::MacroDef.
2017-03-10 08:08:32 -08:00
Mark Simulacrum
69899b7f27
Inline function to avoid naming confusion.
2017-03-04 18:02:04 -07:00
Jeffrey Seyfried
0d554139ad
Fix fallout in unit tests.
2017-03-03 02:15:39 +00:00
Jeffrey Seyfried
a02c18aa52
Fix token::Eof spans.
2017-03-03 02:15:39 +00:00
Jeffrey Seyfried
f6eaaf350e
Integrate TokenStream.
2017-03-03 02:15:37 +00:00
Jeffrey Seyfried
8cd0c0885f
Introduce syntax::parse::parser::TokenCursor.
2017-03-03 02:05:57 +00:00
Jeffrey Seyfried
0143774cb5
Remove lifetime parameter from syntax::tokenstream::Cursor.
2017-03-03 01:52:48 +00:00
Jeffrey Seyfried
61a9a14d29
Add warning cycle.
2017-02-28 22:15:12 +00:00
Jeffrey Seyfried
7f822c800d
Refactor out parser.expect_delimited_token_tree().
2017-02-28 22:15:11 +00:00
Jeffrey Seyfried
0cc7053efa
Remove Token::MatchNt.
2017-02-28 22:15:09 +00:00
Jeffrey Seyfried
d8b34e9a74
Add syntax::ext::tt::quoted::{TokenTree, ..} and remove tokenstream::TokenTree::Sequence.
2017-02-28 22:14:29 +00:00
Jeffrey Seyfried
2471888033
Avoid Token::{OpenDelim, CloseDelim}.
2017-02-28 22:13:39 +00:00
Jeffrey Seyfried
abdc68973e
Clean up ext::tt::transcribe::TtFrame, rename to Frame.
2017-02-28 22:13:37 +00:00
Eduard Burtescu
f702b20dfd
rustc_save_analysis: don't pollute the codemap with fake files.
2017-02-28 08:30:07 +02:00
Guillaume Gomez
b6818be41d
Add long error explanations
2017-02-21 15:52:14 +01:00
Guillaume Gomez
ea2a684099
Add error codes for errors in libsyntax
2017-02-20 17:47:44 +01:00
Jeffrey Seyfried
b3d73995da
Fix ICE on certain sequence repetitions.
2017-02-10 23:58:18 +00:00
Jeffrey Seyfried
66bd8eede5
Fix ICE when parsing token trees after an error.
2017-02-09 03:01:54 +00:00
Corey Farwell
ece9240824
Rollup merge of #39453 - nrc:save-path, r=nikomatsakis
...
save-analysis: be more paranoid about generated paths
fixes https://github.com/rust-lang-nursery/rls/issues/160
2017-02-05 09:14:49 -05:00
Alex Crichton
626e754473
Bump version, upgrade bootstrap
...
This commit updates the version number to 1.17.0 as we're not on that version of
the nightly compiler, and at the same time this updates src/stage0.txt to
bootstrap from freshly minted beta compiler and beta Cargo.
2017-02-03 13:25:46 -08:00
Nick Cameron
395f23c9f7
save-analysis: be more paranoid about generated paths
...
fixes https://github.com/rust-lang-nursery/rls/issues/160
2017-02-02 16:23:27 +13:00
Oliver Schneider
d73e84d2e7
use suggestions instead of helps with code in them
2017-01-31 14:45:08 +01:00