20 Commits

Author SHA1 Message Date
Vadim Petrochenkov
962d88b5ee Fix the fallout 2017-01-29 02:57:14 +03:00
Vadim Petrochenkov
3be6d1f954 Make private_in_public compatibility lint warn-by-default again 2016-09-05 00:28:44 +03:00
Vadim Petrochenkov
737961b6c6 Make private_in_public compatibility lint deny-by-default 2016-08-11 23:19:04 +03:00
Guillaume Gomez
ddfaf10f6b Add error code flag 2016-06-20 19:38:26 +02:00
bors
c2cab1fd58 Auto merge of #33794 - petrochenkov:sanity, r=nrc
Add AST validation pass and move some checks to it

The purpose of this pass is to catch constructions that fit into AST data structures, but not permitted by the language. As an example, `impl`s don't have visibilities, but for convenience and uniformity with other items they are represented with a structure `Item` which has `Visibility` field.

This pass is intended to run after expansion of macros and syntax extensions (and before lowering to HIR), so it can catch erroneous constructions that were generated by them. This pass allows to remove ad hoc semantic checks from the parser, which can be overruled by syntax extensions and occasionally macros.

The checks can be put here if they are simple, local, don't require results of any complex analysis like name resolution or type checking and maybe don't logically fall into other passes. I expect most of errors generated by this pass to be non-fatal and allowing the compilation to proceed.

I intend to move some more checks to this pass later and maybe extend it with new checks, like, for example, identifier validity. Given that syntax extensions are going to be stabilized in the measurable future, it's important that they would not be able to subvert usual language rules.

In this patch I've added two new checks - a check for labels named `'static` and a check for lifetimes and labels named `'_`. The first one gives a hard error, the second one - a future compatibility warning.
Fixes https://github.com/rust-lang/rust/issues/33059 ([breaking-change])
cc https://github.com/rust-lang/rfcs/pull/1177

r? @nrc
2016-06-01 06:21:53 -07:00
Vadim Petrochenkov
c02c6e88e6 Move some other checks to AST sanity pass 2016-05-28 20:27:57 +03:00
Guillaume Gomez
abe9961283 * Fix compile_fail tag (in some cases, it compiled whereas it wasn't expected to and was still considered 'ok')
* Fix error explanations tests/tags
2016-05-27 00:39:57 +02:00
Steve Klabnik
206e86b947 Rollup merge of #31721 - rphmeier:err_tuplestruct_count, r=Manishearth
Fixes #31706

Also fixes a phrasing error in the diagnostic.
2016-02-19 14:23:28 -05:00
rphmeier
94499e3385 Fix sentence in E0451 diagnostic. 2016-02-16 21:31:50 -05:00
ggomez
1c8766761e Global error explanations improvements 2016-02-15 17:57:21 +01:00
Guillaume Gomez
6407b9405f Update long error explanations 2016-02-07 13:03:35 +01:00
Vadim Petrochenkov
187c89a92a Address the comments 2015-12-18 04:14:46 +03:00
Vadim Petrochenkov
f8ae31f601 Update error messages and error descriptions 2015-12-18 04:12:31 +03:00
Guillaume Gomez
0477976867 Add error code for private struct field issue 2015-09-10 14:19:01 +02:00
Guillaume Gomez
a056d5869e Add error code for tuple struct constructor error 2015-09-09 12:08:21 +02:00
Guillaume Gomez
6090cea184 Add error code for unnecessary visibility qualifier 2015-09-09 11:59:55 +02:00
Guillaume Gomez
bda7ec0755 Add error code for enum item visibility error 2015-09-09 11:50:26 +02:00
Guillaume Gomez
42e16223cf Add new error code for visibility inside a function 2015-09-09 11:25:32 +02:00
Guillaume Gomez
c4a3936327 Add error code for privacy error on exported signature 2015-09-09 11:08:35 +02:00
Guillaume Gomez
5e9bfcd6d6 Add new error code for trait privacy error 2015-09-09 11:02:52 +02:00