Commit Graph

9421 Commits

Author SHA1 Message Date
Dylan DPC
1bf4873aac Rollup merge of #70540 - jonas-schievink:link-attr-template, r=varkor
#[link]: mention wasm_import_module instead of cfg

`#[link(cfg)]` is perma-unstable and is not documented anywhere else. It makes more sense to mention `wasm_import_module` here since it's stable.

This makes it harder to hit https://github.com/rust-lang/rust/issues/70538 (if it weren't for this text, I wouldn't even know this feature existed).
2020-03-29 21:23:53 +02:00
Esteban Küber
e84cb65fe1 review comment: wording 2020-03-29 11:46:00 -07:00
Esteban Küber
c2e0e71a09 Suggest correct order for arguments when encountering early constraints
When encountering constraints before type arguments or lifetimes,
suggest the correct order.
2020-03-29 11:31:58 -07:00
Dodo
61d419314f add a build-pass test for issue 62220 2020-03-29 18:27:54 +02:00
Jonas Schievink
042f4941e7 #[link]: mention wasm_import_module instead of cfg 2020-03-29 17:40:04 +02:00
Russell Cohen
82b2989ae0 More raw string tests 2020-03-29 11:34:15 -04:00
Russell Cohen
c15f86b4b3 Cleanup error messages, improve docstrings 2020-03-29 11:12:48 -04:00
Mazdak Farrokhzad
c51fcb5f38 Rollup merge of #68692 - jyn514:vec-from-array, r=LukasKalbertodt
impl From<[T; N]> for Vec<T>

Closes https://github.com/rust-lang/rust/issues/67963
2020-03-29 11:50:10 +02:00
bors
8045865873 Auto merge of #70370 - petrochenkov:nosmatch, r=Centril
Remove attribute `#[structural_match]` and any references to it

A small remaining part of https://github.com/rust-lang/rust/issues/63438.
2020-03-29 06:33:42 +00:00
Russell Cohen
629e97a5a0 Improve error messages for raw strings (#60762)
This diff improves error messages around raw strings in a few ways:
- Catch extra trailing `#` in the parser. This can't be handled in the lexer because we could be in a macro that actually expects another # (see test)
- Refactor & unify error handling in the lexer between ByteStrings and RawByteStrings
- Detect potentially intended terminators (longest sequence of "#*" is suggested)
2020-03-29 00:43:43 -04:00
Esteban Küber
dcb4e817bc Suggest correct order for args and constraints 2020-03-28 17:45:36 -07:00
Esteban Küber
33d793c326 Point at all constraints before args 2020-03-28 13:48:04 -07:00
Tim Diekmann
bf6a46db31 Make fields in MemoryBlock public 2020-03-28 20:22:07 +01:00
Dylan DPC
1f13089bef Rollup merge of #70418 - PankajChaudhary5:master, r=Dylan-DPC
Add long error explanation for E0703

Add long explanation for the E0703 error code
Part of #61137

r? @GuillaumeGomez
2020-03-28 15:21:57 +01:00
bors
b9d5ee5676 Auto merge of #70261 - Centril:angle-args-partition, r=varkor
Move arg/constraint partition check to validation & improve recovery

- In the first commit, we move the check rejecting e.g., `<'a, Item = u8, String>` from the parser into AST validation.
- We then use this to improve the code for parsing generic arguments.
- And we add recovery for e.g., `<Item = >` (missing), `<Item = 42>` (constant), and `<Item = 'a>` (lifetime).

This is also preparatory work for supporting https://github.com/rust-lang/rust/issues/70256.

r? @varkor
2020-03-28 11:13:09 +00:00
bors
b76238a3ee Auto merge of #70095 - jsgf:link-native, r=nagisa
Implement -Zlink-native-libraries

This implements a flag `-Zlink-native-libraries=yes/no`. If set to true/yes, or unspecified, then
native libraries referenced via `#[link]` attributes will be put on the linker line (ie, unchanged
behaviour).

If `-Zlink-native-libraries=no` is specified then rustc will not add the native libraries to the link
line. The assumption is that the outer build system driving the build already knows about the native
libraries and will specify them to the linker directly (for example via `-Clink-arg=`).

Addresses issue #70093
2020-03-28 08:16:47 +00:00
Russell Cohen
840a5769b0 Move raw string tests into the raw directory 2020-03-27 22:02:18 -04:00
Mazdak Farrokhzad
23d3fa266c Rollup merge of #70457 - Centril:non-exhaustive-scrutinee-type, r=estebank
non-exhastive diagnostic: add note re. scrutinee type

This fixes https://github.com/rust-lang/rust/issues/67259 by adding a note:
```
    = note: the matched value is of type &[i32]
```
to non-exhaustive pattern matching errors.

r? @varkor @estebank
2020-03-27 22:39:39 +01:00
Mazdak Farrokhzad
cfe1e330b5 Rollup merge of #70434 - Centril:fix-34421, r=estebank
suggest `;` on expr `mac!()` which is good as stmt `mac!()`

Fixes https://github.com/rust-lang/rust/issues/34421 by implementing @jseyfried's suggestion in https://github.com/rust-lang/rust/issues/34421#issuecomment-301578683.

r? @petrochenkov
2020-03-27 22:39:38 +01:00
Mazdak Farrokhzad
42c5cfdfda add the label back but make it shorter 2020-03-27 21:52:09 +01:00
Jeremy Fitzhardinge
53c4e0c19a Implement -Zlink-native-libraries
This implements a flag `-Zlink-native-libraries=yes/no`. If set to true/yes, or unspecified, then
native libraries referenced via `#[link]` attributes will be put on the linker line (ie, unchanged
behaviour).

If `-Zlink-native-libraries=no` is specified then rustc will not add the native libraries to the link
line. The assumption is that the outer build system driving the build already knows about the native
libraries and will specify them to the linker directly (for example via `-Clink-arg=`).

Addresses issue #70093
2020-03-27 11:57:05 -07:00
Mazdak Farrokhzad
2ddc35997c address some review comments 2020-03-27 09:29:38 +01:00
Mazdak Farrokhzad
2972bb37b8 parse: improve recovery for assoc eq constraints. 2020-03-27 07:39:15 +01:00
Mazdak Farrokhzad
91194f795c parse: move constraint/arg restriction to ast_validation. 2020-03-27 07:39:14 +01:00
Mazdak Farrokhzad
6c643a070c suggest semi on expr mac!() good as stmt mac!(). 2020-03-27 07:02:50 +01:00
Mazdak Farrokhzad
c858593ed0 non-exhastive diagnostic: add note re. scrutinee type 2020-03-27 06:49:07 +01:00
bors
6c19a10e24 Auto merge of #68404 - Amanieu:llvm-asm, r=estebank
Rename asm! to llvm_asm!

As per https://github.com/rust-lang/rfcs/pull/2843, this PR renames `asm!` to `llvm_asm!`. It also renames the compiler's internal `InlineAsm` data structures to `LlvmInlineAsm` in preparation for the new `asm!` functionality specified in https://github.com/rust-lang/rfcs/pull/2850.

This PR doesn't actually deprecate `asm!` yet, it just makes it redirect to `llvm_asm!`. This is necessary because we first need to update the submodules (in particular stdarch) to use `llvm_asm!`.
2020-03-27 03:27:09 +00:00
Dylan DPC
fa15774a4b Rollup merge of #70435 - Alexendoo:test-66706, r=Centril
Add regression test for #66706

Adds the two cases that no longer ICE (https://github.com/rust-lang/rust/issues/66706#issuecomment-604098436)
2020-03-27 01:23:55 +01:00
Dylan DPC
7041efcfc3 Rollup merge of #70344 - Centril:hir-pretty, r=eddyb
Decouple `rustc_hir::print` into `rustc_hir_pretty`

High level summary:
- The HIR pretty printer, `rustc_hir::print` is moved into a new crate `rustc_hir_pretty`.
- `rustc_ast_pretty` and `rustc_errors` are dropped as `rustc_hir` dependencies.
- The dependence on HIR pretty is generally reduced, leaving `rustc_save_analysis`, `rustdoc`, `rustc_metadata`, and `rustc_driver` as the remaining clients.

The main goal here is to reduce `rustc_hir`'s dependencies and its size such that it can start and finish earlier, thereby working towards https://github.com/rust-lang/rust/issues/65031.

r? @Zoxc
2020-03-27 01:23:53 +01:00
Dylan DPC
f635c3757b Rollup merge of #69936 - Aaron1011:fix/suggestion-cycle, r=varkor
Fix cycle error when emitting suggestion for mismatched `fn` type

Fixes #66667

Previously, we called `tcx.typeck_tables_of` when determining whether or
not to emit a suggestion for a type error. However, we might already be
type-checking the `DefId` we pass to `typeck_tables_of` (it could be
anywhere in the query stack).

Fortunately, we only need the function signature, not the entire
`TypeckTables`. By using `tcx.fn_sig`, we avoid the possibility of cycle
errors while retaining the ability to emit a suggestion.
2020-03-27 01:23:49 +01:00
Dylan DPC
ef43cdee28 Rollup merge of #70428 - Centril:move-to-mod, r=petrochenkov
`error_bad_item_kind`: add help text

For example, this adds:
```
    = help: consider moving the `use` import out to a nearby module scope
```
r? @petrochenkov @estebank

Fixes https://github.com/rust-lang/rust/issues/37205.
2020-03-26 21:44:06 +01:00
Dylan DPC
c640b95662 Rollup merge of #70413 - AminArria:match-pattern-incorrect-warning, r=Centril,Nadrieril,varkor
Fix incorrect pattern warning "unreachable pattern"

Fixes #70372

Added `is_under_guard` parameter to `_match::is_useful` and only add it to the matrix if `false`

Tested with:
```rust
#![feature(or_patterns)]
fn main() {
    match (3,42) {
        (a,_) | (_,a) if a > 10 => {println!("{}", a)}
        _ => ()
    }

    match Some((3,42)) {
        Some((a, _)) | Some((_, a)) if a > 10 => {println!("{}", a)}
        _ => ()

    }

    match Some((3,42)) {
        Some((a, _) | (_, a)) if a > 10 => {println!("{}", a)}
        _ => ()
    }
}
```
2020-03-26 21:44:05 +01:00
Alex Macleod
40a0fdcb18 Add regression test for #66706 2020-03-26 16:33:18 +00:00
Tim Diekmann
03b055b0b4 Remove alignment from MemoryBlock 2020-03-26 17:14:12 +01:00
Tim Diekmann
2526accdd3 Fix issues from review and unsoundness of RawVec::into_box 2020-03-26 17:11:47 +01:00
Tim Diekmann
56cbf2f22a Overhaul of the AllocRef trait to match allocator-wg's latest consens 2020-03-26 17:10:54 +01:00
Amanieu d'Antras
1cc521ef9d Update tests to use llvm_asm! 2020-03-26 15:49:22 +00:00
Amanieu d'Antras
d162d096dd Rename asm! to llvm_asm!
asm! is left as a wrapper around llvm_asm! to maintain compatibility.
2020-03-26 15:49:22 +00:00
Amin Arria
ae7fa3042d Add tests based on issue #70372 comments 2020-03-26 12:34:36 -03:00
Mazdak Farrokhzad
91c68c5fae error_bad_item_kind: add help text 2020-03-26 14:13:50 +01:00
Mazdak Farrokhzad
37e186087c Rollup merge of #70417 - rakshith-ravi:master, r=Centril
parser: recover on `...` as a pattern, suggesting `..`

Fixes #70388

My first PR to rust. So please let me know if I'm doing something wrong.
2020-03-26 13:32:18 +01:00
Mazdak Farrokhzad
f9d1378dd4 Rollup merge of #70411 - ogoffart:fix-62691, r=eddyb
Fix for #62691: use the largest niche across all fields

fixes #62691

(The second commit is a small optimization but it makes the code less pretty and i don't know if it is worth it.)
2020-03-26 13:32:17 +01:00
Niko Matsakis
0d0702623f wip pacify the merciless ui tests 2020-03-26 07:41:26 -04:00
Niko Matsakis
b9e09d8f65 add test for negative specializes negative 2020-03-26 06:52:58 -04:00
Niko Matsakis
f5c09ed344 move stderr file too 2020-03-26 06:52:58 -04:00
Niko Matsakis
644b9a0a94 give the negative-impls-builtin test a more sensible name 2020-03-26 06:52:58 -04:00
Niko Matsakis
7107f6e606 comment the typeck-negative-impls-builtin test 2020-03-26 06:52:58 -04:00
Niko Matsakis
f66284778a move feature-gate-negative-impls test to traits/negative-impls 2020-03-26 06:52:58 -04:00
Niko Matsakis
cc0d6d03f6 create a tracking issue and link to it 2020-03-26 06:52:57 -04:00
Niko Matsakis
fda3378e3f introduce negative_impls feature gate and document
They used to be covered by `optin_builtin_traits` but negative impls
are now applicable to all traits, not just auto traits.

This also adds docs in the unstable book for the current state of auto traits.
2020-03-26 06:52:55 -04:00