Commit graph

124480 commits

Author SHA1 Message Date
Gary Guo
fb0793c610 Add some comments to librustc_typeck/check/callee.rs 2020-06-15 00:57:21 +01:00
Gary Guo
5393a2995b Move convert_place_derefs_to_mutable out from check/method/confirm.rs
This can live inside FnCtxt rather than ConfirmContext, and would be
useful for other operations as well.
2020-06-15 00:56:21 +01:00
Eric Huss
607e85110e Switch bootstrap metadata to --no-deps.
This should run much faster.

There are also some drive-by cleanups here to try to simplify things.
Also, the paths for in-tree crates are now displayed as relative
in `x.py test -h -v`.
2020-06-14 15:57:21 -07:00
oddg
a40156e5b7 UI test for deprecation warning of casting enum implementing Drop 2020-06-14 15:49:20 -07:00
Jonas Schievink
af97a117e5 shim.rs: call FnPtr, not Self
The `Call` terminator only works with `FnDef` and `FnPtr` types.
It happened to work with `Self` so far because it was always
substituted with the real type before being used.
2020-06-14 23:46:15 +02:00
Jonas Schievink
58062e1913 shim.rs: improve docs a bit 2020-06-14 23:46:15 +02:00
Jonas Schievink
26e17ae889 Remove Adjustment::DerefMove
It does the same thing as `Deref` now
2020-06-14 23:46:15 +02:00
Jonas Schievink
9014df55c6 validator: print MIR instance on failure 2020-06-14 23:46:15 +02:00
Jonas Schievink
99d30da6a8 Improve Instance docs 2020-06-14 23:46:15 +02:00
Stefan Lankes
d221ffc68e simplify conversion to IpAddr::V6 2020-06-14 23:43:54 +02:00
Alexis Bourget
47cc5cca7e Update to use the new error type and correctly compile the doc tests 2020-06-14 23:22:36 +02:00
Alexis Bourget
685f06612d Add a new error type for the new method 2020-06-14 23:21:40 +02:00
Josh Triplett
840176ab6f asm: Unify pseudo-keyword parsing using eat, rather than a final expect
Currently, `asm!` parsing uses an `expect` for the last parsed
pseudo-keyword (`sym`), which makes it difficult to extend without
simultaneously refactoring. Use `eat` for the last pseudo-keyword, and
then add an `else` that fails parsing. No change to error output.
2020-06-14 14:17:51 -07:00
gnodarse
8361ee5b38
Update E0446.md
The existing error documentation did not show how to use a child module's functions if the types used in those functions are private. These are some other places this problem has popped up that did not present a solution (these are from before the solution existed, 2016-2017. The solution was released in the Rust 2018 edition. However these were the places I was pointed to when I encountered the problem myself):
https://github.com/rust-lang/rust/issues/30905
https://stackoverflow.com/questions/39334430/how-to-reference-private-types-from-public-functions-in-private-modules/62374958#62374958
2020-06-14 14:25:19 -04:00
David Wood
79e08bbc99
structural_match: non-structural-match ty closures
This commit adds a `Closure` variant to `NonStructuralMatchTy` in
`structural_match`, fixing an ICE which can occur when
`impl_trait_in_bindings` is used with constants.

Signed-off-by: David Wood <david@davidtw.co>
2020-06-14 19:20:56 +01:00
Alexis Bourget
5f4eb27a0d Removing the TryFrom impl 2020-06-14 19:31:11 +02:00
pankajchaudhary5
46bfc48272 Added proper explanation of ErrorCode-E0687 2020-06-14 22:57:19 +05:30
asrar
e32db84584
Add rust features to print target features
`crt-static` is a rust specific target feature that's absent from llvm feature table, adding it there.
2020-06-14 21:44:11 +05:30
Tomasz Miąsko
0a65f280c8 Diagnose use of incompatible sanitizers
Emit an error when incompatible sanitizer are configured through command
line options. Previously the last one configured prevailed and others
were silently ignored.

Additionally use a set to represent configured sanitizers, making it
possible to enable multiple sanitizers at once. At least in principle,
since currently all of them are considered to be incompatible with
others.
2020-06-14 18:14:10 +02:00
Steve Heindel
5a846d7de6 Fix iterator copied() documentation example code 2020-06-14 09:19:57 -04:00
Ralf Jung
2210abea71 keep root_span and tcx together 2020-06-14 15:06:16 +02:00
Jonas Schievink
c7ad3ad991 _match.rs: fix module doc comment
It was applied to a `use` item, not to the module
2020-06-14 14:53:36 +02:00
Jonas Schievink
4004bf1903 Don't run generator transform when there's a TyErr 2020-06-14 13:20:13 +02:00
bors
4fb54ed484 Auto merge of #73089 - tmiasko:musl-1.1.24, r=kennytm
Update musl to 1.1.24

Release notes since previous version 1.1.22:

## 1.1.23 release notes

### new features:
- riscv64 port
- configure now allows customizing AR and RANLIB vars
- header-level support for new linux features in 5.1

### major internal changes:
- removed extern __syscall; syscall header code is now fully self-contained

### performance:
- new math library implementation for log/exp/pow
- aarch64 dynamic tlsdesc function is streamlined

### compatibility & conformance:
- O_TTY_INIT is now defined
- sys/types.h no longer pollutes namespace with sys/sysmacros.h in any profile
- powerpc asm is now compatible with clang internal assembler

### changes for new POSIX interpretations:
- fgetwc now sets stream error indicator on encoding errors
- fmemopen no longer rejects 0 size

### bugs fixed:
- static TLS for shared libraries was allocated wrong on "Variant I" archs
- crash in dladdr reading through uninitialized pointer on non-match
- sigaltstack wrongly errored out on invalid ss_size when doing SS_DISABLE
- getdents function misbehaved with buffer length larger than INT_MAX
- set*id could deadlock after fork from multithreaded process

### arch-specfic bugs fixed:
- s390x SO_PEERSEC definition was wrong
- passing of 64-bit syscall arguments was broken on microblaze
- posix_fadvise was broken on mips due to missing 7-arg syscall support
- vrregset_t layout and member naming was wrong on powerpc64

## 1.1.24 release notes

### new features:
- GLOB_TILDE extension to glob
- non-stub catgets localization API, using netbsd binary catalog format
- posix_spawn file actions for [f]chdir (extension, pending future standard)
- secure_getenv function (extension)
- copy_file_range syscall wrapper (Linux extension)
- header-level support for new linux features in 5.2

### performance:
- new fast path for lrint (generic C version) on 32-bit archs

### major internal changes:
- functions involving time are overhauled to be time64-ready in 32-bit archs
- x32 uses the new time64 code paths to replace nasty hacks in syscall glue

### compatibility & conformance:
- support for powerpc[64] unaligned relocation types
- powerpc[64] and sh sys/user.h no longer clash with kernel asm/ptrace.h
- select no longer modifies timeout on failure (or at all)
- mips64 stat results are no longer limited to 32-bit time range
- optreset (BSD extension) now has a public declaration
- support for clang inconsistencies in wchar_t type vs some 32-bit archs
- mips r6 syscall asm no longer has invalid lo/hi register clobbers
- vestigial asm declarations of __tls_get_new are removed (broke some tooling)
- riscv64 mcontext_t mismatch glibc's member naming is corrected

### bugs fixed:
- glob failed to match broken symlinks consistently
- invalid use of interposed calloc to allocate initial TLS
- various dlsym symbol resolution logic errors
- semctl with SEM_STAT_ANY didn't work
- pthread_create with explicit scheduling was subject to priority inversion
- pthread_create failure path had data race for thread count
- timer_create with SIGEV_THREAD notification had data race getting timer id
- wide printf family failed to support l modifier for float formats

### arch-specific bugs fixed:
- x87 floating point stack imbalance in math asm (i386-only CVE-2019-14697)
- x32 clock_adjtime, getrusage, wait3, wait4 produced junk (struct mismatches)
- lseek broken on x32 and mipsn32 with large file offsets
- riscv64 atomics weren't compiler barriers
- riscv64 atomics had broken asm constraints (missing earlyclobber flag)
- arm clone() was broken when compiled as thumb if start function returned
- mipsr6 setjmp/longjmp did not preserve fpu register state correctly

Fixes #71099.
2020-06-14 10:37:36 +00:00
Dániel Buga
8a6f42a970
Fix typo in wildcard_imports 2020-06-14 11:07:44 +02:00
bors
10326d804e Auto merge of #73232 - RalfJung:miri-no-default, r=Mark-Simulacrum
x.py: do not build Miri by default on stable/beta

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

Do I need to do anything to make sure Miri is still built by the tools CI builder? Are there other tools that should be off-by-default?

Also, unfortunately the `DEFAULT` associated const has no doc comment, so I have no idea what it does, or why there are semmingly two places where the default build of tools is controlled.
2020-06-14 06:42:40 +00:00
Ayaz Hafiz
2b936bb5a2
fixup! Note numeric literals that can never fit in an expected type 2020-06-13 22:31:31 -07:00
bors
d3d3a14f2f Auto merge of #73188 - mati865:use-preinstalled-msys2, r=pietroalbini
Use preinstalled msys2

Fixes https://github.com/rust-lang/rust/issues/65767
2020-06-14 03:10:53 +00:00
Lzu Tao
d82dd43387 Group Pattern::strip_* method together 2020-06-14 01:01:07 +00:00
Iain Brandram-Adams
454ed47acf Update comment in conf.rs 2020-06-14 12:46:56 +12:00
Iain Brandram-Adams
c020e45cd3 Update stderr to match, and reinforce comments 2020-06-14 12:40:36 +12:00
oddg
d5ea0e9f8d Report error when casting an C-like enum implementing Drop 2020-06-13 17:35:31 -07:00
Ayaz Hafiz
afbbd383cc
Note numeric literals that can never fit in an expected type
re https://github.com/rust-lang/rust/pull/72380#discussion_r438289385

Given the toy code

```rust
fn is_positive(n: usize) {
  n > -1_isize;
}
```

We currently get a type mismatch error like the following:

```
error[E0308]: mismatched types
 --> src/main.rs:2:9
  |
2 |     n > -1_isize;
  |         ^^^^^^^^ expected `usize`, found `isize`
  |
help: you can convert an `isize` to `usize` and panic if the converted value wouldn't fit
  |
2 |     n > (-1_isize).try_into().unwrap();
  |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
```

But clearly, `-1` can never fit into a `usize`, so the suggestion will
always panic. A more useful message would tell the user that the value
can never fit in the expected type:

```
error[E0308]: mismatched types
 --> test.rs:2:9
  |
2 |     n > -1_isize;
  |         ^^^^^^^^ expected `usize`, found `isize`
  |
note: `-1_isize` can never fit into `usize`
 --> test.rs:2:9
  |
2 |     n > -1_isize;
  |         ^^^^^^^^
```

Which is what this commit implements.

I only added this check for negative literals because

- Currently we can only perform such a check for literals (constant
  value propagation is outside the scope of the typechecker at this
  point)
- A lint error for out-of-range numeric literals is already emitted

IMO it makes more sense to put this check in librustc_lint, but as far
as I can tell the typecheck pass happens before the lint pass, so I've
added it here.

r? @estebank
2020-06-13 16:22:24 -07:00
Stefan Lankes
fd86a84720 use latest interface to HermitCore 2020-06-14 00:39:14 +02:00
Stefan Lankes
c99116afe3 remove unused function 2020-06-14 00:38:31 +02:00
Hanif Bin Ariffin
c710461b02 Added some unsafety documentation to partition_equal 2020-06-13 15:06:22 -04:00
Hanif Bin Ariffin
c471519b99 Added unsafety documentation with partition and partition equal
These are simply indexing safety.
2020-06-13 15:06:22 -04:00
Hanif Bin Ariffin
9e1e989f7c Document unsafety in partial_insertion_sort
We already implicitly (or explicitly??) do the bound checking for the indexing.
2020-06-13 15:06:22 -04:00
Hanif Bin Ariffin
9e8b42c02b Added unsafety documentation to shift_tail
This is just the reverse of shift_head.
2020-06-13 15:06:22 -04:00
Hanif Bin Ariffin
7349f2c6a3 Added unsafety documentation to shift_head 2020-06-13 15:06:22 -04:00
Amanieu d'Antras
241d16fe9f Update LLVM submodule 2020-06-13 19:54:09 +01:00
Stefan Lankes
71d41d9e9f add TcpListener support for HermitCore
Add basic support of TcpListerner for HermitCore.
In addition, revise TcpStream to support peer_addr.
2020-06-13 20:51:00 +02:00
Esteban Küber
4606168dd5 Make new type param suggestion more targetted
Do not suggest new type param when encountering a missing type in an ADT
field with generic parameters.

Fix #72640.
2020-06-13 11:12:29 -07:00
Dylan MacKenzie
2dcf7dbb86 Add tests for const_precise_live_drops 2020-06-13 11:05:13 -07:00
Dylan MacKenzie
9e2ee322e8 Update incorrect error code docs 2020-06-13 11:05:13 -07:00
Dylan MacKenzie
21ddf4d903 Ensure that drop_elaboration_and_check_consts runs for all const items 2020-06-13 11:05:13 -07:00
Dylan MacKenzie
a43e486e8d Add MIR phase and query for drop elaboration 2020-06-13 11:05:13 -07:00
Dylan MacKenzie
f5370faa6c Add CheckLiveDrops pass 2020-06-13 11:05:12 -07:00
Dylan MacKenzie
a77f046c69 Add feature gate for precise live drop checking 2020-06-13 11:05:11 -07:00
Dylan MacKenzie
d73674e1e3 Make Qualifs getters public 2020-06-13 11:04:29 -07:00