Commit graph

330 commits

Author SHA1 Message Date
kadmin
ee55c1f1d2 Add regression test and help note 2020-09-07 20:12:02 +00:00
Dan Aloni
07e7823c01 pretty: trim paths of unique symbols
If a symbol name can only be imported from one place for a type, and
as long as it was not glob-imported anywhere in the current crate, we
can trim its printed path and print only the name.

This has wide implications on error messages with types, for example,
shortening `std::vec::Vec` to just `Vec`, as long as there is no other
`Vec` importable anywhere.

This adds a new '-Z trim-diagnostic-paths=false' option to control this
feature.

On the good path, with no diagnosis printed, we should try to avoid
issuing this query, so we need to prevent trimmed_def_paths query on
several cases.

This change also relies on a previous commit that differentiates
between `Debug` and `Display` on various rustc types, where the latter
is trimmed and presented to the user and the former is not.
2020-09-02 22:26:37 +03:00
Amjad Alsharafi
668f63d833 Fix duplicate error messages in const_generics tests 2020-08-31 18:52:22 +08:00
Amjad Alsharafi
7a7a28d6bb Fixed file formatting and made tidy happy 2020-08-26 19:17:07 +08:00
Amjad Alsharafi
d89d2a972d Added more min_const_generics revisions to tests 2020-08-26 18:50:27 +08:00
Amjad Alsharafi
d39cc45cf2 Added a lot of min_const_generics revisions 2020-08-26 18:50:17 +08:00
Bastian Kauschke
7542615c21 change const param ty warning message 2020-08-18 22:44:06 +02:00
Bastian Kauschke
6ad01e9932 run wfcheck in parralel again, add test for 74950 2020-08-18 22:14:40 +02:00
Bastian Kauschke
70dfe3fa74 move const param structural match checks to wfcheck 2020-08-18 22:14:40 +02:00
bors
1a7d9f52bc Auto merge of #75322 - JulianKnodt:revisions, r=lcnr
Add a bunch of const-generic revisions for `min_const_generics`

This adds a bunch of revisions to `const-generic` tests which is part of #75279, but doesn't cover everything.

r? @lcnr
2020-08-13 10:31:57 +00:00
kadmin
c48d45bf6b Flip order of const & type 2020-08-12 23:19:07 +00:00
kadmin
5c0b416dde Update stderr files
And also fix some comments as suggested by lcnr
2020-08-12 20:04:36 +00:00
kadmin
9bf40f10bc Add missing tests in root const-gen dir 2020-08-12 08:30:17 +00:00
kadmin
be650a7ecd Add a bunch of revisions
This adds a bunch of revisions to const-generic tests
2020-08-12 08:30:17 +00:00
Yuki Okushi
ca462d36ff
Rollup merge of #75359 - lcnr:unused-delims-trim, r=oli-obk
unused_delims: trim expr

improves rustfix output.
2020-08-11 16:23:57 +09:00
bors
3bb5a863c8 Auto merge of #74005 - estebank:type-ascription-redux, r=petrochenkov
Clean up errors in typeck and resolve

* Tweak ordering of suggestions
* Do not suggest similarly named enclosing item
* Point at item definition in foreign crates
* Add missing primary label

CC #34255.
2020-08-10 23:50:39 +00:00
Esteban Küber
089810a1cb Do not suggest similarly named enclosing item 2020-08-10 12:04:10 -07:00
Bastian Kauschke
66db8e52d7 unused_delims: trim expr 2020-08-10 12:04:51 +02:00
kadmin
64f6437822 Convert Eq impl to check Ord::Equal 2020-08-10 05:54:55 +00:00
kadmin
be0d6f1c06 Change Ord impl for ParamKindOrd
Updated tests and error msgs

Update stderr from test

Update w/ lcnr comments

Change some tests around, and also updated Ord implementation for ParamKindOrd

Update w/ nits from lcnr
2020-08-09 07:41:26 +00:00
kadmin
b8352eb2d1 Test lifetimes after types after consts forbidden
Added more complex test and changed error message
2020-08-09 07:41:24 +00:00
kadmin
f8588284af Added +1 test for only works w/ feat const gen
Added this test to ensure that reordering the parameters only works with the feature const
generics enabled.

Fixed nits

Also added another test to verify that intermixed lifetimes are forbidden
2020-08-09 07:41:22 +00:00
kadmin
18481cbec9 Rm restriction on ord of default types w/ consts 2020-08-08 04:40:07 +00:00
bors
f9c2177ddc Auto merge of #74877 - lcnr:min_const_generics, r=oli-obk
Implement the `min_const_generics` feature gate

Implements both https://github.com/rust-lang/lang-team/issues/37 and https://github.com/rust-lang/compiler-team/issues/332.

Adds the new feature gate `#![feature(min_const_generics)]`.
This feature gate adds the following limitations to using const generics:
- generic parameters must only be used in types if they are trivial. (either `N` or `{ N }`)
- generic parameters must be either integers, `bool` or `char`.

We do allow arbitrary expressions in associated consts though, meaning that the following is allowed,
even if `<[u8; 0] as Foo>::ASSOC` is not const evaluatable.
```rust
trait Foo {
    const ASSOC: usize;
}

impl<const N: usize> Foo for [u8; N] {
    const ASSOC: usize = 64 / N;
}
```

r? @varkor cc @eddyb @withoutboats
2020-08-08 01:48:35 +00:00
Bastian Kauschke
644c894912 test min_const_generics using revisions 2020-08-07 07:49:48 +02:00
Bastian Kauschke
37c29adabc allow complex expressions in assoc consts 2020-08-06 22:37:20 +02:00
bors
22ee68dc58 Auto merge of #75166 - JulianKnodt:i64494, r=lcnr
Add regression test for #64494

Add regression test to indicate if this compilation ever succeeds.
Fixes #64494

r? @lcnr
2020-08-05 20:20:56 +00:00
Bastian Kauschke
0d54f571c1 impl review 2020-08-05 18:30:37 +02:00
Bastian Kauschke
188bbf840d forbid complex types for generic parameters 2020-08-05 18:30:37 +02:00
Bastian Kauschke
289e5fca7e forbid generic params in complex consts 2020-08-05 18:30:37 +02:00
kadmin
7dd1b6a22f Add regression test 2020-08-04 23:07:04 +00:00
kadmin
f338054713 Add regression test
As well as matching error outputs
2020-08-04 22:58:44 +00:00
kadmin
011e0ef636 Removed error check in order to prevent ICE 2020-07-31 21:18:39 +00:00
Yuki Okushi
157975c6c4
Rollup merge of #74671 - rust-lang:const-generics-coerce-unsized, r=nikomatsakis
add const generics array coercion test
2020-07-29 09:24:15 +09:00
Bastian Kauschke
952fd0ce58 update tests 2020-07-27 16:41:27 +02:00
Bastian Kauschke
33a05b40f7 forbid generic params inside of anon consts in ty defaults 2020-07-27 16:33:23 +02:00
Yuki Okushi
832d0a7667
Add test for issue-56445 2020-07-26 18:54:24 +09:00
bors
461707c5a1 Auto merge of #74060 - kpp:remove_length_at_most_32, r=dtolnay
Remove trait LengthAtMost32

This is a continuation of https://github.com/rust-lang/rust/pull/74026 preserving the original burrbull's commit.

I talked to @burrbull, he suggested me to finish his PR.
2020-07-26 05:50:51 +00:00
bors
cfb6114b2a Auto merge of #74676 - lcnr:generics-no-sort, r=varkor
correctly deal with unsorted generic parameters

We now stop sorting generic params and instead correctly handle unsorted params in the rest of the compiler.

We still restrict const params to come after type params though, so this PR does not change anything which
is visible to users.

This might slightly influence perf, so let's prevent any unintentional rollups. @bors rollup=never

r? @varkor
2020-07-24 13:58:36 +00:00
Bastian Kauschke
5f1eea93a9 test usage 2020-07-23 14:30:01 +02:00
Bastian Kauschke
9910f156df add more complex param order test 2020-07-23 13:19:35 +02:00
Bastian Kauschke
49b1971263
add const generics 2020-07-23 10:55:20 +02:00
Bastian Kauschke
2f565967b0 tweak wording
Co-authored-by: varkor <github@varkor.com>
2020-07-23 08:14:39 +02:00
Bastian Kauschke
a95e6bb916 require type defaults to be after const generic parameters
as if this is currently possible. HA!
2020-07-22 22:58:54 +02:00
Gabriel Smith
c60a035658 Add test for an explicit non-'static lifetime in a const argument 2020-07-19 12:53:51 -04:00
Manish Goregaokar
1a54b61e39
Rollup merge of #74445 - lcnr:const-generic-ty-decl, r=Dylan-DPC
add test for #62878

forgot to push this as part of #74159

r? @Dylan-DPC
2020-07-18 16:50:57 -07:00
Bastian Kauschke
0bac36105e add test for #62878 2020-07-17 17:44:11 +02:00
Alex Macleod
f7979d3c93 Add regression test for #69414
Closes #69414 (no longer ICEs after #74159)
2020-07-17 15:45:50 +01:00
Manish Goregaokar
c354524254
Rollup merge of #74392 - lcnr:const-generics-update, r=varkor
const generics triage

I went through all const generics issues and closed all issues which are already fixed.

Some issues already have a regression test but were not closed. Also doing this as part of this PR.

uff r? @eddyb @varkor

closes #61936
closes #62878
closes #63695
closes #67144
closes #68596
closes #69816
closes #70217
closes #70507
closes #70586
closes #71348
closes #71805
closes #73120
closes #73508
closes #73730
closes #74255
2020-07-16 11:19:00 -07:00
Bastian Kauschke
8faeb0e797 add regression test for #74255 2020-07-16 12:46:35 +02:00