Commit Graph

122829 Commits

Author SHA1 Message Date
ecstatic-morse
ffcfaa1105
Fix comment. 2020-06-27 12:57:00 -07:00
Caleb Zulawski
8e899b1cbe Don't implement Fn* for unsafe #[target_feature] functions 2020-06-27 15:51:51 -04:00
Yuki Okushi
1d16aed7f0
Add test for issue-72352 2020-06-28 04:49:51 +09:00
Yuki Okushi
7125ce7ab7
Add test for issue-71611 2020-06-28 04:49:51 +09:00
Yuki Okushi
99884bd879
Add test for issue-71382 2020-06-28 04:49:51 +09:00
Rob Young
0e0584f290 Add links to fs::DirEntry::metadata
`fs::DirEntry::metadata` doesn't traverse symlinks. It is not immediately
clear what to do if you do want to traverse symlinks. This change adds
links to the two other `metadata` functions that will follow symlinks.
2020-06-27 19:32:19 +01:00
Aaron Hill
517d361a1f
Use an 'approximate' universal upper bound when reporting region errors
Fixes #67765

When reporting errors during MIR region inference, we sometimes use
`universal_upper_bound` to obtain a named universal region that we
can display to the user. However, this is not always possible - in a
case like `fn foo<'a, 'b>() { .. }`, the only upper bound for a region
containing `'a` and `'b` is `'static`. When displaying diagnostics, it's
usually better to display *some* named region (even if there are
multiple involved) rather than fall back to a generic error involving
`'static`.

This commit adds a new `approx_universal_upper_bound` method, which
uses the lowest-numbered universal region if the only alternative is to
return `'static`.
2020-06-27 14:01:59 -04:00
Gary Guo
8b43012453
Update src/librustc_mir/interpret/intrinsics.rs
Co-authored-by: Oliver Scherer <github35764891676564198441@oli-obk.de>
2020-06-27 18:24:46 +01:00
Alexis Bourget
3fc5593ea8 Document the type keyword 2020-06-27 18:34:34 +02:00
Alexis Bourget
d25d6c5bd8 Update the documentation to point to open instead of is_file and is_dir 2020-06-27 18:10:58 +02:00
Aaron Hill
765bd47fa0
Recover extra trailing angle brackets in struct definition
This commit applies the existing 'extra angle bracket recovery' logic
when parsing fields in struct definitions. This allows us to continue
parsing the struct's fields, avoiding spurious 'missing field' errors in
code that tries to use the struct.
2020-06-27 11:53:42 -04:00
Nikita Popov
4c14f9d110 Forward Hash::write_iN to Hash::write_uN 2020-06-27 15:36:46 +02:00
Takuto Ikuta
9308860a7b
fix typo in self-profile.md 2020-06-27 21:38:51 +09:00
Bastian Kauschke
2d280a55a9 more LocalDefId cleanup 2020-06-27 13:38:00 +02:00
Yuki Okushi
88fe556db8
Add test for issue-71381 2020-06-27 20:33:50 +09:00
Bastian Kauschke
1875c79772 more LocalDefId in ty::context 2020-06-27 13:15:12 +02:00
Bastian Kauschke
a4e7b47984 use LocalDefId in module checking 2020-06-27 13:09:54 +02:00
Vadim Petrochenkov
79a42e3708 linker: Create GNU_EH_FRAME header by default when producing ELFs 2020-06-27 12:36:41 +03:00
bors
394e1b40d2 Auto merge of #73779 - Manishearth:rollup-lwqd9jm, r=Manishearth
Rollup of 12 pull requests

Successful merges:

 - #72771 (Warn if linking to a private item)
 - #72937 (Fortanix SGX target libunwind build process changes)
 - #73485 (Perform obligation deduplication to avoid buggy `ExistentialMismatch`)
 - #73529 (Add liballoc impl SpecFromElem for i8)
 - #73579 (add missing doc links)
 - #73627 (Shortcuts for min/max on double-ended BTreeMap/BTreeSet iterators)
 - #73691 (Bootstrap: detect Windows based on sys.platform)
 - #73694 (Document the Self keyword)
 - #73718 (Document the super keyword)
 - #73728 (Document some invariants correctly/more)
 - #73738 (Remove irrelevant comment)
 - #73765 (Remove blank line)

Failed merges:

r? @ghost
2020-06-27 02:44:35 +00:00
Gary Guo
779b05d16a Fix ICE for lib features 2020-06-27 00:53:18 +01:00
bors
dda8a7fde9 Auto merge of #73596 - petrochenkov:shebang2, r=Mark-Simulacrum
rustc_lexer: Simplify shebang parsing once more

Fixes https://github.com/rust-lang/rust/issues/73250 (beta regression)

Treat any line starting with `!#` as a shebang candidate, not only lines with something non-whitespace.
This way we no longer need to define what `is_whitespace` means ([Linux shebang whitespace](https://github.com/torvalds/linux/blob/master/fs/binfmt_script.c), ASCII whitespace, Rust lexer whitespace, etc), which is nice.

This change makes some invalid Rust code valid (see the regression above), but still never interprets a fragment of valid Rust code as a shebang.

(This PR also removes one duplicate test.)
2020-06-26 22:42:44 +00:00
Simonas Kazlauskas
df88972f8c Update psm version
This new version includes a fix for building on aarch64 windows.
2020-06-27 01:16:23 +03:00
Manish Goregaokar
50026aed24
Rollup merge of #73765 - kraai:remove-blank-line, r=jonas-schievink
Remove blank line
2020-06-26 13:57:46 -07:00
Manish Goregaokar
7926c64642
Rollup merge of #73738 - nbdd0121:comment, r=nikomatsakis
Remove irrelevant comment

Iterator is no longer a lang item since 216e72f8d9.
2020-06-26 13:57:44 -07:00
Manish Goregaokar
83f6d0a93f
Rollup merge of #73728 - oli-obk:const_prop_cleanup, r=wesleywiser
Document some invariants correctly/more

r? @wesleywiser
2020-06-26 13:57:43 -07:00
Manish Goregaokar
bc10bb02f5
Rollup merge of #73718 - poliorcetics:super-keyword, r=shepmaster
Document the super keyword

Partial fix of #34601.

Quite short, just a small example and a link to the reference.

@rustbot modify labels: T-doc,C-enhancement
2020-06-26 13:57:41 -07:00
Manish Goregaokar
8d9c00d7f1
Rollup merge of #73694 - poliorcetics:self-upper-keyword, r=Mark-Simulacrum
Document the Self keyword

Partial fix of #34601.

Document the `Self` keyword.

This contains simple examples of the places where `Self` can be used.
2020-06-26 13:57:39 -07:00
Manish Goregaokar
c18e919a79
Rollup merge of #73691 - ajpaverd:bootstrap-windows-73689, r=Mark-Simulacrum
Bootstrap: detect Windows based on sys.platform

Closes #73689.
2020-06-26 13:57:37 -07:00
Manish Goregaokar
dfbba65786
Rollup merge of #73627 - ssomers:btree_iter_min_max, r=Mark-Simulacrum
Shortcuts for min/max on double-ended BTreeMap/BTreeSet iterators

Closes #59947: a performance tweak that might benefit some. Optimizes `min` and `max ` on all btree double-ended iterators that do not drop, i.e. the iterators created by:

- `BTreeMap::iter`
- `BTreeMap::iter_mut`
- `BTreeMap::keys` and `BTreeSet::iter`
- `BTreeMap::range` and `BTreeSet::range`
- `BTreeMap::range_mut`

Also in these (currently) single-ended iterators, but obviously for `min` only:
- `BTreeSet::difference`
- `BTreeSet::intersection`
- `BTreeSet::symmetric_difference`
- `BTreeSet::union`

Did not do this in iterators created by `into_iter` to preserve drop order, as outlined in #62316.

Did not do this in iterators created by `drain_filter`, possibly to preserve drop order, possibly to preserve predicate invocation, mostly to not have to think about it too hard (I guess maybe it wouldn't be a change for `min`, which is the only shortcut possible in this single-ended iterator).
2020-06-26 13:57:35 -07:00
Manish Goregaokar
92af945256
Rollup merge of #73579 - RalfJung:doc-missing-links, r=shepmaster
add missing doc links

The doc comments contain ``[`size_of_val`]`` but the link target was missing.
2020-06-26 13:57:33 -07:00
Manish Goregaokar
23b0776a59
Rollup merge of #73529 - pickfire:liballoc-specfromelem-i8, r=cuviper
Add liballoc impl SpecFromElem for i8

Speedup vec![1_i8; N] for non-zero element.

Before
test do_bench_from_elem_i8        ... bench:         130 ns/iter (+/- 7) = 61 MB/s
test do_bench_from_elem_u8        ... bench:         121 ns/iter (+/- 4) = 66 MB/s
After
test do_bench_from_elem_i8        ... bench:         123 ns/iter (+/- 7) = 65 MB/s
test do_bench_from_elem_u8        ... bench:         121 ns/iter (+/- 5) = 66 MB/s

No speed difference if element is already zero.

```rust
#[bench]
fn do_bench_from_elem_i8(b: &mut Bencher) {
    b.bytes = 8 as u64;
    b.iter(|| {
        let dst = ve::vec![10_i8; 100];
        assert_eq!(dst.len(), 100);
        assert!(dst.iter().all(|x| *x == 10));
    })
}
```

As suggested by @cuviper
https://rust-lang.zulipchat.com/#narrow/stream/219381-t-libs/topic/SpecForElem.20for.20other.20integers

r? @cuviper
CC @joshtriplett

Edit: Wow, I just realized both reviewers are Josh.
2020-06-26 13:57:31 -07:00
Manish Goregaokar
f13d09abe1
Rollup merge of #73485 - estebank:dedup-preds, r=nikomatsakis
Perform obligation deduplication to avoid buggy `ExistentialMismatch`

Address #59326.
2020-06-26 13:57:29 -07:00
Manish Goregaokar
38cbf158b8
Rollup merge of #72937 - AdrianCX:master, r=nikomatsakis
Fortanix SGX target libunwind build process changes

Ticket: https://github.com/fortanix/rust-sgx/issues/174
LLVM related changes (merged): https://github.com/rust-lang/llvm-project/pull/57

Description: libunwind changes needed to run code in sgx environment via rust-sgx.

Target that uses this in rust: x86_64-fortanix-unknown-sgx.

Without this change, rust std for this toolchain is forced to use a precompiled library loaded via environment variable.

With this change we act the same as musl target.
2020-06-26 13:57:26 -07:00
Manish Goregaokar
8adc781a1f
Rollup merge of #72771 - jyn514:rustdoc, r=Manishearth
Warn if linking to a private item

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

r? @GuillaumeGomez
2020-06-26 13:57:24 -07:00
Gary Guo
fc239e82fe Make likely and unlikely const
They are gated by internal feature gate const_likely
2020-06-26 21:36:14 +01:00
Gary Guo
224bc05256 Fix allow_internal_unstable with rustc_const_unstable 2020-06-26 21:30:36 +01:00
Aaron Hill
fa6a61c689
Explain move errors that occur due to method calls involving self
This is a re-attempt of #72389 (which was reverted in #73594)
Instead of using `ExpnKind::Desugaring` to represent operators, this PR
checks the lang item directly.
2020-06-26 16:28:09 -04:00
Aaron Hill
36ac08e264
Make fn_arg_names return Ident instead of symbol
Also, implement this query for the local crate, not just foreign crates.
2020-06-26 15:46:22 -04:00
root
cf398a33eb removes unnecessary tidy ignore 2020-06-26 19:40:09 +00:00
root
15e81beb47 moves terminator types to sub module 2020-06-26 19:07:36 +00:00
Dylan MacKenzie
234019758b Add peek test for projections 2020-06-26 11:31:48 -07:00
Dylan MacKenzie
558c8a8c3c Handle stores to projections correctly in liveness analysis
Previously, we were too conservative and `x.field = 4` was treated as a
"use" of `x`.
2020-06-26 11:30:28 -07:00
Vadim Petrochenkov
7b2064f4f9 rustc_lexer: Simplify shebang parsing once more 2020-06-26 19:52:19 +03:00
Ivan Tham
31c6d5f35e Add liballoc doc panic detail according to RawVec 2020-06-27 00:08:14 +08:00
David Wood
3678e5c97e
errors: use -Z terminal-width in JSON emitter
This commit makes the JSON emitter use `-Z terminal-width` in the
"rendered" field of the JSON output.

Signed-off-by: David Wood <david@davidtw.co>
2020-06-26 16:01:51 +01:00
Eric Huss
6bcbc426c9 Update mdbook. 2020-06-26 07:47:19 -07:00
Eric Huss
6654c5852f Remove mdbook-linkcheck. 2020-06-26 07:45:28 -07:00
bors
7750c3d46b Auto merge of #73513 - oli-obk:const_binop_overflow, r=estebank
Show the values and computation that would overflow a const evaluation or propagation

Fixes #71134

In contrast to the example in the issue it doesn't use individual spans for each operand. The effort required to implement that is quite high compared to the little (if at all) benefit it would bring to diagnostics.

cc @shepmaster

The way this is implemented it is also fairly easy to do the same for overflow panics at runtime, but that should be done in a separate PR since it may have runtime performance implications.
2020-06-26 14:08:46 +00:00
KRAAI, MATTHEW [VISUS]
cb152eae2f Remove blank line 2020-06-26 06:22:35 -07:00
Joshua Nelson
67423821aa Fix debug messages 2020-06-26 08:24:45 -04:00