Commit Graph

108450 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
292c538265
Rollup merge of #69920 - Centril:hir-cleanup, r=Zoxc
Remove some imports to the rustc crate

- When we have `NestedVisitorMap::None`, we use `type Map = dyn intravisit::Map<'v>;` instead of the actual map. This doesn't actually result in dynamic dispatch (in the future we may want to use an associated type default to simplify the code).

- Use `rustc_session::` imports instead of `rustc::{session, lint}`.

r? @Zoxc
2020-03-18 18:03:44 +01:00
Mazdak Farrokhzad
252184969b
Rollup merge of #69899 - ecstatic-morse:const-idx-methods, r=oli-obk
Make methods declared by `newtype_index` macro `const`

Crates that use the macro to define an `Idx` type need to enable `#![feature(const_if_match, const_panic)]`.
2020-03-18 18:03:42 +01:00
Mazdak Farrokhzad
a958314472
Rollup merge of #69839 - RalfJung:miri-error-cleanup, r=oli-obk
Miri error reform

Some time ago we started moving Miri errors into a few distinct categories, but we never classified all the old errors. That's what this PR does.

~~This is on top of https://github.com/rust-lang/rust/pull/69762; [relative diff](https://github.com/RalfJung/rust/compare/validity-errors...RalfJung:miri-error-cleanup).~~

r? @oli-obk

Fixes https://github.com/rust-lang/const-eval/issues/4
2020-03-18 18:03:40 +01:00
Mazdak Farrokhzad
23b79d83f2
Rollup merge of #69838 - Centril:expand-module, r=petrochenkov
Expansion-driven outline module parsing

After this PR, the parser will not do any conditional compilation or loading of external module files when `mod foo;` is encountered. Instead, the parser only leaves `mod foo;` in place in the AST, with no items filled in. Expansion later kicks in and will load the actual files and do the parsing. This entails that the following is now valid:

```rust
#[cfg(FALSE)]
mod foo {
    mod bar {
        mod baz; // `foo/bar/baz.rs` doesn't exist, but no error!
    }
}
```

Fixes https://github.com/rust-lang/rust/issues/64197.

r? @petrochenkov
2020-03-18 18:03:38 +01:00
Mazdak Farrokhzad
4118ff61ec
Rollup merge of #69837 - jonas-schievink:gen-discr-opt, r=tmandry
Use smaller discriminants for generators

Closes https://github.com/rust-lang/rust/issues/69815

I'm not yet sure about the runtime performance impact of this, so I'll try running this on some benchmarks (if I can find any). (Update: No impact on the benchmarks I've measured on)

* [x] Add test with a generator that has exactly 256 total states
* [x] Add test with a generator that has more than 256 states so that it needs to use a u16 discriminant
* [x] Add tests for the size of `Option<[generator]>`
* [x] Add tests for the `discriminant_value` intrinsic in all cases
2020-03-18 18:03:37 +01:00
Mazdak Farrokhzad
3f583fc270
Rollup merge of #69189 - matthewjasper:erase-the-world, r=nikomatsakis
Erase regions in writeback

Regions in `TypeckTables` (except canonicalized user annotations) are now erased. Further, we no longer do lexical region solving on item bodies with `-Zborrowck=mir`.

cc #68261
r? @nikomatsakis
2020-03-18 18:03:35 +01:00
Mazdak Farrokhzad
8188b2163d
Rollup merge of #69139 - GuillaumeGomez:cleanup-e0308, r=Dylan-DPC
clean up E0308 explanation

r? @Dylan-DPC
2020-03-18 18:03:33 +01:00
Mazdak Farrokhzad
56106847da
Rollup merge of #67749 - gilescope:keyword-in, r=Dylan-DPC
keyword docs for else and inkeyword docs for else and in.

First cut of else and in keyword docs. Comments and suggestions more than welcome.
2020-03-18 18:03:31 +01:00
Mazdak Farrokhzad
8caf688844 --bless windows test 2020-03-18 15:11:35 +01:00
Mazdak Farrokhzad
e301291cb6 fix rebase fallout 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
5ee4f6f660 fix pre-expansion linting infra 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
41a0b3ec53 use pretty-compare-only in a test 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
fe71342091 tweak outline module parsing spans 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
7d0e5bbb67 parser/expand: minor cleanup 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
a6cb04ff23 add test for stripped nested outline module 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
31ee8e0a43 {rustc_parse -> rustc_expand}::config 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
3796faefb1 {rustc_parse::parser -> rustc_expand}::module 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
ddcc8ec89d move Directory -> parser::module 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
f1ca9969bf parse: module parsing -> item.rs 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
83a757a9ca outline modules: parse -> expand. 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
59bf8a07f9 extract error_on_circular_module 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
463995fe29 extract parse_external_module 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
8bab88f2d9 de-fatalize outline module parsing 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
b9e1b26611 expand: use push_directory 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
98e71cd5d7 decouple eval_src_mod from Parser 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
53a633fb44 decouple push_directory from Parser 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
ca098b16a4 detach submod_path from Parser 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
dfcefa49ed extract error_on_circular_module 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
7108b7fbfe extract parse_mod 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
803de3188c submod_path: use id.span 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
2db5d49d47 simplify submod_path 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
185c1d340c extract error_decl_mod_in_block 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
2899a58cab extract error_cannot_declare_mod_here 2020-03-18 15:08:25 +01:00
Mazdak Farrokhzad
bc75cba23f submod_path_from_attr: simplify & document 2020-03-18 15:08:25 +01:00
bors
f509b26a77 Auto merge of #69907 - ehuss:update-cargo, r=ehuss
Update cargo

Update cargo

21 commits in bda50510d1daf6e9c53ad6ccf603da6e0fa8103f..7019b3ed3d539db7429d10a343b69be8c426b576
2020-03-02 18:05:34 +0000 to 2020-03-17 21:02:00 +0000
- Run through clippy (rust-lang/cargo#8015)
- Fix config profiles using "dev" in `cargo test`. (rust-lang/cargo#8012)
- Run CI on all PRs. (rust-lang/cargo#8011)
- Add unit-graph JSON output. (rust-lang/cargo#7977)
- Split workspace/validate() into multiple functions (rust-lang/cargo#8008)
- Use Option::as_deref (rust-lang/cargo#8005)
- De-duplicate edges (rust-lang/cargo#7993)
- Revert "Disable preserving mtimes on archives" (rust-lang/cargo#7935)
- Close the front door for clippy but open the back (rust-lang/cargo#7533)
- Fix CHANGELOG.md typos (rust-lang/cargo#7999)
- Update changelog note about crate-versions flag. (rust-lang/cargo#7998)
- Bump to 0.45.0, update changelog (rust-lang/cargo#7997)
- Bump libgit2 dependencies (rust-lang/cargo#7996)
- Avoid buffering large amounts of rustc output. (rust-lang/cargo#7838)
- Add "Updating" status for git submodules. (rust-lang/cargo#7989)
- WorkspaceResolve: Use descriptive lifetime label. (rust-lang/cargo#7990)
- Support old html anchors in manifest chapter. (rust-lang/cargo#7983)
- Don't create hardlink for library test and integrations tests, fixing rust-lang/cargo#7960 (rust-lang/cargo#7965)
- Partially revert change to filter debug_assertions. (rust-lang/cargo#7970)
- Try to better handle restricted crate names. (rust-lang/cargo#7959)
- Fix bug with new feature resolver and required-features. (rust-lang/cargo#7962)
2020-03-18 06:31:24 +00:00
Eric Huss
d79c1d3428 Update cargo 2020-03-17 20:33:07 -07:00
bors
d939f708d9 Auto merge of #68915 - timvermeulen:non_fused_iter, r=Amanieu
Fix bugs in Peekable and Flatten when using non-fused iterators

I fixed a couple of bugs with regard to the `Peekable` and `Flatten`/`FlatMap` iterators when the underlying iterator isn't fused. For testing, I also added a `NonFused` iterator wrapper that panics when `next` or `next_back` is called on an iterator that has returned `None` before, which will hopefully make it easier to spot these mistakes in the future.

### Peekable

`Peekable::next_back` was implemented as
```rust
self.iter.next_back().or_else(|| self.peeked.take().and_then(|x| x))
```
which is incorrect because when the `peeked` field is `Some(None)`, then `None` has already been returned from the inner iterator and what it returns from `next_back` can no longer be relied upon. `test_peekable_non_fused` tests this.

### Flatten

When a `FlattenCompat` instance only has a `backiter` remaining (i.e. `self.frontiter` is `None` and `self.iter` is empty), then `next` will call `self.iter.next()` every time, so the `iter` field needs to be fused. I fixed it by giving it the type `Fuse<I>` instead of `I`, I think this is the only way to fix it. `test_flatten_non_fused_outer` tests this.

Furthermore, previously `FlattenCompat::next` did not set `self.frontiter` to `None` after it returned `None`, which is incorrect when the inner iterator type isn't fused. I just delegated it to `try_fold` because that already handles it correctly. `test_flatten_non_fused_inner` tests this.

r? @scottmcm
2020-03-18 03:08:52 +00:00
bors
ae5b641e9e Auto merge of #70020 - matthiaskrgr:submodule_upd, r=ehuss
submodules: update clippy from 8485d40a to d556bb73

Changes:
````
    rustup https://github.com/rust-lang/rust/pull/68944
    rustup https://github.com/rust-lang/rust/pull/69589/
    Rustup to rust-lang/rust#69076
    Don't convert Path to lossy str
    Use `into_path`
    Use pattern matching instead of manually checking condition
    Fix typo
    Remove git2 dependency.
    Document that wildcard_imports doesn't warn about `use ...::prelude::*;`
    Change changelog formatting
    Update changelog_update doc to reflect the actual ordering of the changelog
    Update CHANGELOG.md
````

Fixes #70007
2020-03-17 22:10:21 +00:00
bors
7ceebd98c6 Auto merge of #69519 - 12101111:remove-proc-macro-check, r=nagisa
Don't use static crt by default when build proc-macro

Don't check value of `crt-static` when build proc-macro crates, since they are always built dynamically.
For more information, see https://github.com/rust-lang/cargo/issues/7563#issuecomment-591965320
I hope this will fix issues about compiling `proc_macro` crates on musl host without bring more issues.
Fix https://github.com/rust-lang/cargo/issues/7563
2020-03-17 18:27:26 +00:00
Dylan MacKenzie
9ac93eee6d Hold index of generator self arg in const 2020-03-17 11:15:40 -07:00
Dylan MacKenzie
cc4a5770fa Add requisite feature gates for const assert 2020-03-17 11:15:40 -07:00
Dylan MacKenzie
7f5a2841ea Rename from_u32_const -> from_u32 2020-03-17 11:15:40 -07:00
Dylan MacKenzie
429b16e907 Make newtype_index methods const 2020-03-17 11:10:28 -07:00
bors
660326e979 Auto merge of #70072 - Centril:rollup-722hooh, r=Centril
Rollup of 7 pull requests

Successful merges:

 - #68746 (Make macro metavars respect (non-)hygiene)
 - #69688 (Move tidy check to mingw-check)
 - #69735 (bootstrap: Use hash to determine if sanitizers needs to be rebuilt)
 - #69922 (implement zeroed and uninitialized with MaybeUninit)
 - #69956 (Ensure HAS_FREE_LOCAL_NAMES is set for ReFree)
 - #70061 (Cosmetic fixes in documentation)
 - #70064 (Update books)

Failed merges:

r? @ghost
2020-03-17 15:14:43 +00:00
Mazdak Farrokhzad
36da5ee48e
Rollup merge of #70064 - ehuss:update-books, r=ehuss
Update books

## reference

4 commits in 559e09caa9661043744cf7af7bd88432d966f743..e2f11fe4d6a5ecb471c70323197da43c70cb96b6
2020-03-02 01:17:14 +0100 to 2020-03-10 06:59:24 +0100
- Update rustc-guide to rustc-dev-guide (rust-lang-nursery/reference#777)
- Fix expression and statement grammar. (rust-lang-nursery/reference#776)
- Fix grammar for tuple struct patterns. (rust-lang-nursery/reference#775)
- A typo? (rust-lang-nursery/reference#770)

## rust-by-example

3 commits in db57f899ea2a56a544c8d280cbf033438666273d..cb369ae95ca36b841960182d26f6d5d9b2e3cc18
2020-02-18 17:46:46 -0300 to 2020-03-14 12:13:22 -0500
- Use rust-lang/rust linkchecker on CI. (rust-lang/rust-by-example#1310)
- Rewrite freeze.md (rust-lang/rust-by-example#1314)
- Clarify type suffixing with example (rust-lang/rust-by-example#1312)

## embedded-book

2 commits in b81ffb7a6f4c5aaed92786e770e99db116aa4ebd..d22a9c487c78095afc4584f1d9b4ec43529d713c
2020-02-27 08:06:04 +0000 to 2020-03-04 09:46:30 +0000
- Updated documentation on profile-overrides  (rust-embedded/book#230)
- Update information on Cargo `profile-overrides`  (rust-embedded/book#229)
2020-03-17 12:16:21 +01:00
Mazdak Farrokhzad
9882117a4a
Rollup merge of #70061 - JOE1994:patch-2, r=Dylan-DPC
Cosmetic fixes in documentation

typo fix + markdown fix for consistency
2020-03-17 12:16:20 +01:00
Mazdak Farrokhzad
98295f7908
Rollup merge of #69956 - matthewjasper:fix-region-flags, r=nikomatsakis
Ensure HAS_FREE_LOCAL_NAMES is set for ReFree

This fixes a bug introduced by #69469.
I don't have any ideas on how to reate a regression test for this.
2020-03-17 12:16:18 +01:00
Mazdak Farrokhzad
7a7ca8238f
Rollup merge of #69922 - RalfJung:less-intrinsic, r=oli-obk
implement zeroed and uninitialized with MaybeUninit

This is the second attempt of doing such a change (first PR: https://github.com/rust-lang/rust/pull/62150). The last change [got reverted](https://github.com/rust-lang/rust/pull/63343) because it [caused](https://github.com/rust-lang/rust/issues/62825) some [issues](https://github.com/rust-lang/rust/issues/52898#issuecomment-512182438) in [code that incorrectly used these functions](https://github.com/erlepereira/x11-rs/issues/99).

Since then, the [problematic code has been fixed](https://github.com/erlepereira/x11-rs/pull/101), and rustc [gained a lint](https://github.com/rust-lang/rust/pull/63346) that is able to detect many misuses of these functions statically and a [dynamic check that panics](https://github.com/rust-lang/rust/pull/66059) instead of causing UB for some incorrect uses.

Fixes https://github.com/rust-lang/rust/issues/62825
2020-03-17 12:16:16 +01:00
Mazdak Farrokhzad
c4a900f57c
Rollup merge of #69735 - tmiasko:bootstrap-sanitizers-hash, r=Mark-Simulacrum
bootstrap: Use hash to determine if sanitizers needs to be rebuilt

* Rebuild sanitizers runtimes when LLVM submodule commit changes.
* When rebuilding LLVM / sanitizers, remove the stamp file before
  starting the build process to invalidate previous build output.
2020-03-17 12:16:14 +01:00
Mazdak Farrokhzad
91426e9666
Rollup merge of #69688 - JohnTitor:move-tidy, r=Mark-Simulacrum
Move tidy check to mingw-check

Fixes #69613
2020-03-17 12:16:12 +01:00