Commit Graph

100665 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
1a26fdf9b2 ui-fulldeps: make them pass again? 2019-10-16 17:21:32 +02:00
Mazdak Farrokhzad
be40bbd2fb make tidy happy 2019-10-16 11:19:39 +02:00
Mazdak Farrokhzad
904168fe14 mbe: leave a FIXME 2019-10-16 10:59:54 +02:00
Mazdak Farrokhzad
9dc07b05d5 parser: leave a FIXME for later 2019-10-16 10:59:54 +02:00
Mazdak Farrokhzad
bf02d49e84 move SeqSep to parser.rs 2019-10-16 10:59:54 +02:00
Mazdak Farrokhzad
d420d719c4 move syntax::ext to new crate syntax_expand 2019-10-16 10:59:53 +02:00
Mazdak Farrokhzad
d160a4e422 syntax::parse: don't depend on syntax::ext 2019-10-16 10:59:53 +02:00
Mazdak Farrokhzad
7ec38a9ae3 attr: remove dep on ExtCtxt 2019-10-16 10:59:53 +02:00
Mazdak Farrokhzad
55f3c2d59a ast: use more direct imports 2019-10-16 10:59:53 +02:00
Mazdak Farrokhzad
c189565edc syntax: reduce visibilities 2019-10-16 10:59:53 +02:00
Mazdak Farrokhzad
98017ca53a move diagnostics.rs into parser/ 2019-10-16 10:59:53 +02:00
Mazdak Farrokhzad
41bfe94d40 syntax: extract parse_cfg_attr 2019-10-16 10:59:53 +02:00
Mazdak Farrokhzad
7d7969d065 syntax: extract parse_derive_paths 2019-10-16 10:59:53 +02:00
Mazdak Farrokhzad
9dba03f6cd move parse::attr -> parse::parser::attr 2019-10-16 10:59:53 +02:00
bors
bfc58789a4 Auto merge of #65450 - Manishearth:clippyup, r=Manishearth
Update clippy

Fixes #65446.
r? @ghost
2019-10-16 05:08:00 +00:00
bors
f54911c6f2 Auto merge of #65454 - tmandry:rollup-0k6jiik, r=tmandry
Rollup of 14 pull requests

Successful merges:

 - #64603 (Reducing spurious unused lifetime warnings.)
 - #64623 (Remove last uses of gensyms)
 - #65235 (don't assume we can *always* find a return type hint in async fn)
 - #65242 (Fix suggestion to constrain trait for method to be found)
 - #65265 (Cleanup librustc mir err codes)
 - #65293 (Optimize `try_expand_impl_trait_type`)
 - #65307 (Try fix incorrect "explicit lifetime name needed")
 - #65308 (Add long error explanation for E0574)
 - #65353 (save-analysis: Don't ICE when resolving qualified type paths in struct members)
 - #65389 (Return `false` from `needs_drop` for all zero-sized arrays.)
 - #65402 (Add troubleshooting section to PGO chapter in rustc book.)
 - #65425 (Optimize `BitIter`)
 - #65438 (Organize `never_type`  tests)
 - #65444 (Implement AsRef<[T]> for List<T>)

Failed merges:

 - #65390 (Add long error explanation for E0576)

r? @ghost
2019-10-15 23:09:33 +00:00
Tyler Mandry
3182f73e8d
Rollup merge of #65444 - spastorino:as-ref-for-list, r=Mark-Simulacrum
Implement AsRef<[T]> for List<T>

r? @Mark-Simulacrum
2019-10-15 16:08:00 -07:00
Tyler Mandry
ef5420301d
Rollup merge of #65438 - Centril:almost, r=varkor
Organize `never_type`  tests

Extracted from https://github.com/rust-lang/rust/pull/65355.
This just moves some tests around to make things better categorized.

r? @varkor
2019-10-15 16:07:58 -07:00
Tyler Mandry
641607902e
Rollup merge of #65425 - nnethercote:optimize-BitIter, r=zackmdavis
Optimize `BitIter`

A minor speed improvement.
2019-10-15 16:07:57 -07:00
Tyler Mandry
2dac8b9176
Rollup merge of #65402 - michaelwoerister:pgo-troubleshooting-docs, r=alexcrichton
Add troubleshooting section to PGO chapter in rustc book.

- Adds a note about using `-pgo-warn-missing-function` in order to spot mistakes in PGO setup.
- Mentions cargo symbol name issue fixed in 1.39.

Nominating for backport.

r? @alexcrichton
2019-10-15 16:07:55 -07:00
Tyler Mandry
bbcf66a4a1
Rollup merge of #65389 - ecstatic-morse:zero-sized-array-no-drop, r=eddyb
Return `false` from `needs_drop` for all zero-sized arrays.

Resolves #65348.

This changes the result of the `needs_drop` query from `true` to `false` for types such as `[Box<i32>; 0]`. I believe this change to be sound because a zero-sized array can never actually hold a value. This is an elegant way of resolving #65348 and #64945, but obviously it has much broader implications.
2019-10-15 16:07:53 -07:00
Tyler Mandry
820fb7ccbf
Rollup merge of #65353 - Xanewok:sa-empty-tables, r=nikomatsakis
save-analysis: Don't ICE when resolving qualified type paths in struct members

Previously, we failed since we use `qpath_res` via typeck tables - when using those we need to pass in a HirId that's local to the definition path the tables are rooted at (otherwise we risk frame of reference mismatch and an assertion against invalid lookup).

In this case we can't get typeck tables for struct definition because it has no body, however the struct member type node is rooted under the struct definition and so we can't really do anything about it in terms of traversal.

Instead, we try to "nest" the tables as always but change the default behaviour to use empty typeck tables rather than silently trying to use the current ones. This does work as we expect and for prior art, we use the same approach in the [privacy](7bc94cc3c2/src/librustc_privacy/lib.rs (L332-L341)) [pass](7bc94cc3c2/src/librustc_privacy/lib.rs (L1007-L1028)).

Fixes #64659.
Fixes #64821.

r? @nikomatsakis (since this changes the default behaviour introduced in d7d3f197f6)
2019-10-15 16:07:52 -07:00
Tyler Mandry
42b35968fb
Rollup merge of #65308 - GuillaumeGomez:long-err-explanation-E0574, r=matthewjasper
Add long error explanation for E0574

Part of #61137.
2019-10-15 16:07:50 -07:00
Tyler Mandry
ff9b99dcd6
Rollup merge of #65307 - Phosphorus15:master, r=varkor
Try fix incorrect "explicit lifetime name needed"

This pr is trying to fixes #65285 .
2019-10-15 16:07:49 -07:00
Tyler Mandry
a6ae7ae63f
Rollup merge of #65293 - tmandry:turbo-expander, r=matthewjasper
Optimize `try_expand_impl_trait_type`

A lot of time was being spent expanding some large `impl Future` types in fuchsia. This PR takes the number of types being visited in one expansion from >3 billion to about a thousand, and eliminates the compile time regression in https://github.com/rust-lang/rust/issues/65147 (in fact, compile times are better than they were before).

Thanks to @Mark-Simulacrum for helping identify the issue and to @matthewjasper for suggesting this change.

Fixes #65147.
r? @matthewjasper,@nikomatsakis
2019-10-15 16:07:47 -07:00
Tyler Mandry
8f09085bb0
Rollup merge of #65265 - GuillaumeGomez:cleanup-librustc_mir-err-codes, r=Mark-Simulacrum
Cleanup librustc mir err codes

Three things are done in this PR:

 * Sort error codes
 * Uncomment an error code long error explanation (they should **never** be commented)
 * Unify explanations
2019-10-15 16:07:46 -07:00
Tyler Mandry
ef9d6ee8ad
Rollup merge of #65242 - estebank:contrain-trait-sugg, r=varkor
Fix suggestion to constrain trait for method to be found

Fix #65044.
2019-10-15 16:07:44 -07:00
Tyler Mandry
bbf4eb3fc2
Rollup merge of #65235 - nikomatsakis:issue-65159-async-fn-return-ice, r=cramertj
don't assume we can *always* find a return type hint in async fn

In particular, we sometimes cannot if there is an earlier error.

Fixes #65159

r? @cramertj, who reviewed the original PR
2019-10-15 16:07:43 -07:00
Tyler Mandry
af3d9e57e7
Rollup merge of #64623 - matthewjasper:underscore-imports, r=petrochenkov
Remove last uses of gensyms

Underscore bindings now use unique `SyntaxContext`s to avoid collisions. This was the last use of gensyms in the compiler, so this PR also removes them.

closes #49300
cc #60869

r? @petrochenkov
2019-10-15 16:07:41 -07:00
Tyler Mandry
fcef4b1aef
Rollup merge of #64603 - gilescope:unused-lifetime-warning, r=matthewjasper
Reducing spurious unused lifetime warnings.

Fixes #61115, fixes #64493.
2019-10-15 16:07:39 -07:00
Manish Goregaokar
33543ed122 Update clippy 2019-10-15 13:52:34 -07:00
Matthew Jasper
4198df1f4b Remove some mentions of gensyms 2019-10-15 21:12:05 +01:00
Matthew Jasper
94967f23f7 Remove gensyms 2019-10-15 21:12:05 +01:00
Matthew Jasper
1a2597b64a Don't use gensym_if_underscore to resolve _ bindings
Instead add a disambiguator to the keys used for distinguishing
resolutions.
2019-10-15 21:12:04 +01:00
Nicholas Nethercote
60851b08e5 Optimize BitSet iteration.
This commit removes an `Option` check in `BitIter::next()`, avoids
calling `trailing_zeros()` when it's not necessary, and avoids the need
for `enumerate()`. This gives a tiny (0.2%) instruction count win on a
couple of benchmarks.

The commit also adds some comments, which is good because this iteration
code is moderately complex.
2019-10-16 06:53:08 +11:00
Nicholas Nethercote
2918a7d5a9 Add BitIter::new().
This factors out some duplicated code.
2019-10-16 06:19:41 +11:00
Santiago Pastorino
fa3a4aeae5
Implement AsRef<[T]> for List<T> 2019-10-15 14:43:24 -03:00
Giles Cope
d82c1c546d Avoid unused lifetime warning for lifetimes introduced when desugering async. 2019-10-15 18:05:13 +01:00
bors
237d54ff6c Auto merge of #65433 - Centril:rollup-rzvry15, r=Centril
Rollup of 4 pull requests

Successful merges:

 - #64035 (Stabilize proc macros generating `macro_rules` items)
 - #65376 (syntax: misc extractions)
 - #65426 (Remove custom `PartialEq` impls for `LocalInternedString`.)
 - #65428 (Refactor: Rename `db` locals to `diag`)

Failed merges:

r? @ghost
2019-10-15 15:14:43 +00:00
Esteban Küber
dee53d7c90 Fix suggestion to constrain trait for method to be found 2019-10-15 08:02:49 -07:00
Mazdak Farrokhzad
1fb8cfb481 Organize never_type tests
Also move {run-fail -> ui}/never_type
2019-10-15 16:58:14 +02:00
phosphorus
53187c5753 Slides path lifetime to the lifetime resolver
add test to for the fix

add descriptive text for the fix

simplified code logics

update descriptive comments

update to cope with the tidyness requirement

merged commit suggestions

Co-Authored-By: varkor <github@varkor.com>

truncated redundant comments

update to cope with tidy-check
2019-10-15 13:59:32 +00:00
Mazdak Farrokhzad
8370f14225 Remove unnecessary use crate::sess::ParseSess;. 2019-10-15 13:28:13 +02:00
Mazdak Farrokhzad
96d640971a
Rollup merge of #65428 - phansch:rename_db_var, r=Centril
Refactor: Rename `db` locals to `diag`

https://github.com/rust-lang/rust/pull/64272 replaced `DiagnosticBuilder` with `Diagnostic` in some places. This PR just renames the db variable from `db` to `diag` where it wasn't renamed.

r? @Mark-Simulacrum
2019-10-15 13:27:30 +02:00
Mazdak Farrokhzad
bc3e97a277
Rollup merge of #65426 - nnethercote:rm-custom-LocalInternedString-PartialEq-impls, r=petrochenkov
Remove custom `PartialEq` impls for `LocalInternedString`.

This is on-trend with the recent changes simplifying
`LocalInternedString` and reducing its use.

r? @petrochenkov
2019-10-15 13:27:29 +02:00
Mazdak Farrokhzad
d24c66fba3
Rollup merge of #65376 - Centril:syntax-extractions-1, r=petrochenkov
syntax: misc extractions

Part of https://github.com/rust-lang/rust/pull/65324.

r? @petrochenkov
2019-10-15 13:27:28 +02:00
Mazdak Farrokhzad
19d4e2f3e0
Rollup merge of #64035 - petrochenkov:stabmacgen, r=eddyb
Stabilize proc macros generating `macro_rules` items

Fn-like and attribute proc macros can now generate `macro_rules` items.

cc #54727
2019-10-15 13:27:27 +02:00
bors
437ca55f23 Auto merge of #65412 - RalfJung:miri, r=RalfJung
update miri

Fixes https://github.com/rust-lang/rust/issues/65356.
2019-10-15 11:23:12 +00:00
Mazdak Farrokhzad
ae156a56d4 syntax::parse::sess -> syntax::sess 2019-10-15 09:41:58 +02:00
Mazdak Farrokhzad
79d02867b8 move parse_lit to expr.rs 2019-10-15 09:27:52 +02:00