Commit graph

8405 commits

Author SHA1 Message Date
bors
d91b32b4dc Auto merge of #59256 - petrochenkov:derval2, r=Zoxc
Make meta-item API compatible with `LocalInternedString::get` soundness fix

r? @Zoxc
2019-03-25 12:21:46 +00:00
Vadim Petrochenkov
c667c2fc08 Remove methods is_struct/is_tuple/is_unit from VariantData 2019-03-24 12:10:16 +03:00
David Wood
5c3d1e5d76 Separate variant id and variant constructor id.
This commit makes two changes - separating the `NodeId` that identifies
an enum variant from the `NodeId` that identifies the variant's
constructor; and no longer creating a `NodeId` for `Struct`-style enum
variants and structs.

Separation of the variant id and variant constructor id will allow the
rest of RFC 2008 to be implemented by lowering the visibility of the
variant's constructor without lowering the visbility of the variant
itself.

No longer creating a `NodeId` for `Struct`-style enum variants and
structs mostly simplifies logic as previously this `NodeId` wasn't used.
There were various cases where the `NodeId` wouldn't be used unless
there was an unit or tuple struct or enum variant but not all uses of
this `NodeId` had that condition, by removing this `NodeId`, this must
be explicitly dealt with. This change mostly applied cleanly, but there
were one or two cases in name resolution and one case in type check
where the existing logic required a id for `Struct`-style enum variants
and structs.
2019-03-24 12:10:16 +03:00
Esteban Küber
9bfb0ef818 Tweak unsupported negative trait bounds message 2019-03-23 13:05:30 -07:00
bors
d51a437e28 Auto merge of #59058 - petrochenkov:assocrecov3, r=estebank
syntax: Better recovery for `$ty::AssocItem` and `ty!()::AssocItem`

This PR improves on https://github.com/rust-lang/rust/pull/46788 covering a few missing cases.

Fixes https://github.com/rust-lang/rust/issues/52307
Fixes https://github.com/rust-lang/rust/issues/53776
r? @estebank
2019-03-23 05:51:16 +00:00
Mazdak Farrokhzad
9d33d6fa4b
Rollup merge of #59322 - estebank:diag-tweak, r=davidtwco
Tweak incorrect escaped char diagnostic
2019-03-22 19:31:34 +01:00
Mazdak Farrokhzad
5a0e4510a8
Rollup merge of #59266 - estebank:struct-parse-recovery, r=petrochenkov
Do not complain about non-existing fields after parse recovery

When failing to parse struct-like enum variants, the ADT gets recorded
as having no fields. Record that we have actually recovered during
parsing of this variant to avoid complaing about non-existing fields
when actually using it.

Fix #57361.
2019-03-22 19:31:24 +01:00
Mazdak Farrokhzad
4c79967760
Rollup merge of #59170 - varkor:const-generics-rustdoc, r=QuietMisdreavus,eddyb
Add const generics to rustdoc

Split out from #53645. This work is a collaborative effort with @yodaldevoid.

The `FIXME`s are waiting on a refactor to `LazyConst`. I'll address these in a follow up, but I thought it would be better to implement the rest now to avoid bitrot.

r? @QuietMisdreavus
2019-03-22 19:31:18 +01:00
bors
a85ec7c2c0 Auto merge of #59031 - estebank:recover-from-comaless, r=petrochenkov
Recover from missing comma between enum variants and from bad `pub` kw

Fix #56579. Fix #56473.
2019-03-22 04:52:10 +00:00
Esteban Küber
a8120d660a Tweak incorrect escaped char diagnostic 2019-03-20 11:45:25 -07:00
Esteban Küber
757eb67992 review comments 2019-03-19 13:17:25 -07:00
Mazdak Farrokhzad
8ebe2acb7b
Rollup merge of #59116 - estebank:comma-sugg, r=petrochenkov
Be more discerning on when to attempt suggesting a comma in a macro invocation

Fix #58796.
2019-03-19 15:16:55 +01:00
varkor
ec6f983e24 Rename typarams to param_names
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-18 19:38:23 +00:00
bors
cd45b19bd2 Auto merge of #58872 - rep-nop:diagnostic-fix-56031, r=petrochenkov
Adds help message in error for invalid `impl for T` syntax

Fixes #56031.
2019-03-18 08:03:05 +00:00
Esteban Küber
6007e6f649 Do not complain about non-existing fields after parse recovery
When failing to parse struct-like enum variants, the ADT gets recorded
as having no fields. Record that we have actually recovered during
parsing of this variant to avoid complaing about non-existing fields
when actually using it.
2019-03-17 20:09:53 -07:00
Vadim Petrochenkov
db74efce69 Make meta-item API compatible with LocalInternedString::get soundness fix 2019-03-17 17:04:58 +03:00
Esteban Küber
0a09e76c96 Simplify check 2019-03-16 17:47:57 -07:00
Esteban Küber
1aa43af370 parse full visibility when recovering 2019-03-16 17:47:57 -07:00
Esteban Küber
b2b9555f95 Recover from incorrect pub kw in "reasonable" places 2019-03-16 17:47:57 -07:00
Esteban Küber
532dd4475b Recover from missing comma between enum variants 2019-03-16 17:47:00 -07:00
Vadim Petrochenkov
2fd4cbb3f2 Fix rebase 2019-03-16 23:14:42 +03:00
Vadim Petrochenkov
0cf96131f4 Refactor away NestedMetaItemKind
Remove methods `Attribute::span` and `MetaItem::span` duplicating public fields
2019-03-16 23:14:42 +03:00
Vadim Petrochenkov
63116d313d Rename MetaItem::ident to MetaItem::path 2019-03-16 23:13:15 +03:00
Vadim Petrochenkov
6ad55b3dec syntax: Introduce Ident::can_be_raw 2019-03-16 23:13:15 +03:00
Vadim Petrochenkov
5cb5083909 syntax_ext: Validate #[proc_macro_derive] input better
Tweak some error wording
2019-03-16 23:13:15 +03:00
Vadim Petrochenkov
8371caf5ee syntax: Do not accidentally treat multi-segment meta-items as single-segment 2019-03-16 23:13:15 +03:00
kennytm
8601c79aff
Rollup merge of #59169 - tmandry:allow-features-flag, r=cramertj
Add `-Z allow_features=...` flag

Adds a compiler option to allow only whitelisted features.

For projects on nightly that want to prevent feature-creep (and maybe, someday, move off of nightly). Not being able to enforce this has been a problem on Fuchsia and at other big companies.

This doesn't support filtering edition feature flags, but someone is welcome to add that if they need it.
2019-03-16 22:40:33 +08:00
kennytm
6fbd55385d
Rollup merge of #59079 - euclio:macro-semi, r=estebank
add suggestions to invalid macro item error

r? @estebank
2019-03-16 22:39:49 +08:00
Eduard-Mihai Burtescu
e0c75ff40d rustc: rename item_path to def_path (except the module in ty). 2019-03-15 13:25:10 +02:00
Tyler Mandry
7c59ce9f5d Add -Z allow_features=... flag 2019-03-14 15:42:20 -07:00
Andy Russell
5abd6d9492
add suggestions to invalid macro item error 2019-03-13 15:24:36 -04:00
Esteban Küber
27abd52170 Fix operator precedence 2019-03-13 00:10:16 -07:00
Mazdak Farrokhzad
ad7b650815
Rollup merge of #58876 - estebank:numeric-lifetime, r=petrochenkov
Parse lifetimes that start with a number and give specific error

Fix #58786.
2019-03-13 03:33:36 +01:00
Vadim Petrochenkov
1ab8ca3532 Address review comments 2019-03-12 10:37:15 +03:00
Vadim Petrochenkov
79c3651988 syntax: Optimize maybe_whole/maybe_whole_expr slightly 2019-03-12 10:25:03 +03:00
Vadim Petrochenkov
18229bb1ad syntax: Better recovery for $ty::AssocItem and ty!()::AssocItem 2019-03-12 10:25:03 +03:00
Esteban Küber
b9d12edd6c Be more discerning on when to attempt suggesting a comma in a macro invocation 2019-03-11 15:07:07 -07:00
bors
e68bf8ae15 Auto merge of #58021 - ishitatsuyuki:57667-fix, r=RalfJung
Fix fallout from #57667
2019-03-11 17:20:20 +00:00
Esteban Küber
f690821d58 review comments 2019-03-09 11:08:51 -08:00
Mazdak Farrokhzad
4eb762a0ea
Rollup merge of #59045 - topecongiro:expose-new_sub_parser_from_file, r=Centril
Expose new_sub_parser_from_file

This function is useful when external tools like rustfmt want to parse
internal files without parsing a whole crate.

cc https://github.com/rust-lang/rustfmt/issues/3427.
2019-03-09 17:18:28 +01:00
Mazdak Farrokhzad
79873f79b1
Rollup merge of #58762 - petrochenkov:unwind, r=Mark-Simulacrum
Mention `unwind(aborts)` in diagnostics for `#[unwind]`

Simplify input validation for `#[unwind]`, add tests

cc https://github.com/rust-lang/rust/issues/58760
r? @Mark-Simulacrum
2019-03-09 17:18:23 +01:00
topecongiro
2309625941 Expose new_sub_parser_from_file
This function is useful when external tools like rustfmt want to parse
internal files without parsing a whole crate.
2019-03-09 21:59:54 +09:00
ishitatsuyuki
a03e20db6d Fix fallout from #57667 2019-03-09 18:23:17 +09:00
bors
c9f8304351 Auto merge of #59012 - pietroalbini:rollup, r=pietroalbini
Rollup of 24 pull requests

Successful merges:

 - #58080 (Add FreeBSD armv6 and armv7 targets)
 - #58204 (On return type `impl Trait` for block with no expr point at last semi)
 - #58269 (Add librustc and libsyntax to rust-src distribution.)
 - #58369 (Make the Entry API of HashMap<K, V> Sync and Send)
 - #58861 (Expand where negative supertrait specific error is shown)
 - #58877 (Suggest removal of `&` when borrowing macro and appropriate)
 - #58883 (Suggest appropriate code for unused field when destructuring pattern)
 - #58891 (Remove stray ` in the docs for the FromIterator implementation for Option)
 - #58893 (race condition in thread local storage example)
 - #58906 (Monomorphize generator field types for debuginfo)
 - #58911 (Regression test for #58435.)
 - #58912 (Regression test for #58813)
 - #58916 (Fix release note problems noticed after merging.)
 - #58918 (Regression test added for an async ICE.)
 - #58921 (Add an explicit test for issue #50582)
 - #58926 (Make the lifetime parameters of tcx consistent.)
 - #58931 (Elide invalid method receiver error when it contains TyErr)
 - #58940 (Remove JSBackend from config.toml)
 - #58950 (Add self to mailmap)
 - #58961 (On incorrect cfg literal/identifier, point at the right span)
 - #58963 (libstd: implement Error::source for io::Error)
 - #58970 (delay_span_bug in wfcheck's ty.lift_to_tcx unwrap)
 - #58984 (Teach `-Z treat-err-as-bug` to take a number of errors to emit)
 - #59007 (Add a test for invalid const arguments)

Failed merges:

 - #58959 (Add release notes for PR #56243)

r? @ghost
2019-03-09 05:19:48 +00:00
Esteban Küber
0a505a71d3 Parse lifetimes that start with a number and give specific error 2019-03-08 16:56:31 -08:00
Pietro Albini
72d4c1ed67
Rollup merge of #58984 - estebank:multi-treat-err-as-bug, r=oli-obk
Teach `-Z treat-err-as-bug` to take a number of errors to emit

`-Z treat-err-as-bug` will cause `rustc` to panic after the first error is reported, like previously. `-Z treat-err-as-bug=2` will cause `rustc` to panic after 2 errors have been reported.

Fix #58983.
2019-03-08 09:42:13 +01:00
Pietro Albini
54a5073af9
Rollup merge of #58961 - estebank:issue-58462, r=varkor
On incorrect cfg literal/identifier, point at the right span

CC #58462
2019-03-08 09:42:09 +01:00
Pietro Albini
a68f7600f4
Rollup merge of #58861 - estebank:fix-negative-traits, r=petrochenkov
Expand where negative supertrait specific error is shown

Fix #58857.

r? @petrochenkov
2019-03-08 09:41:43 +01:00
Vadim Petrochenkov
e19b228959 Improve recovery for missing trait in a trait impl 2019-03-08 00:24:02 +03:00
Wesley Norris
00887f39d1 Adds diagnostic message and UI test. 2019-03-07 23:18:12 +03:00