Commit graph

8839 commits

Author SHA1 Message Date
Pietro Albini
d72a67f3bb
Rollup merge of #51104 - zackmdavis:dynamo, r=nikomatsakis
add `dyn ` to display of dynamic (trait) types

~~I'm not sure we want the `dyn` in the E0277 "trait bound [...] is not satisfied" messages ("bound" sounds like a different thing in contrast to the names of specific trait-object types like `Box<dyn Trait>`), but I'm finding the code I would need to change that hard to follow—the [display object seems to](f0805a4421/src/librustc/traits/error_reporting.rs (L600)) be a [`Predicate::Trait`](f0805a4421/src/librustc/ty/mod.rs (L962)) variant, whose [`Display` implementation](f0805a4421/src/librustc/util/ppaux.rs (L1309)) calls `.print` on its `PolyTraitPredicate` member, [which is a type alias](f0805a4421/src/librustc/ty/mod.rs (L1112)) for `ty::Binder<TraitPredicate<'tcx>>`, whose [`Display` implementation](f0805a4421/src/librustc/util/ppaux.rs (L975-L985)) ... _&c._— so maybe it's time to pull-request this and see what reviewers think.~~

 Resolves #49277 (?).

r? @nikomatsakis
2018-06-26 11:35:33 +02:00
bors
fdd9cdc879 Auto merge of #50966 - leodasvacas:self-in-where-clauses-is-not-object-safe, r=nikomatsakis
`Self` in where clauses may not be object safe

Needs crater, virtually certain to cause regressions.

In #50781 it was discovered that our object safety rules are not sound because we allow `Self` in where clauses without restrain. This PR is a direct fix to the rules so that we disallow methods with unsound where clauses.

This currently uses hard error to measure impact, but we will want to downgrade it to a future compat error.

Part of #50781.

r? @nikomatsakis
2018-06-26 01:42:14 +00:00
leonardo.yvens
1453b3a67d Self in where clauses may not be object safe
This is virtually certain to cause regressions, needs crater.

In #50781 it was discovered that our object safety rules are not sound because we allow `Self` in where clauses without restrain. This PR is a direct fix to the rules so that we disallow methods with unsound where clauses.

This currently uses hard error to measure impact, but we will want to downgrade it to a future compat error.

Fixes #50781.

r? @nikomatsakis
2018-06-25 06:56:06 -03:00
Zack M. Davis
4b1808578a add dyn to display of dynamic (trait) type names
The `dyn Trait` syntax was stabilized in 199ee327. Resolves #49277.
2018-06-23 18:10:25 -07:00
varkor
e14e48bfaa Fix an ICE when matching over const slices 2018-06-23 14:41:01 +01:00
Taylor Cramer
d64e577fa3 Async methods 2018-06-21 22:38:05 -07:00
Taylor Cramer
09f6caabe5 Parse unsafe async fn instead of async unsafe fn 2018-06-21 22:37:17 -07:00
Taylor Cramer
cf844b547d async await desugaring and tests 2018-06-21 22:36:36 -07:00
varkor
3e89753283 Rename PathParameter(s) to GenericArg(s) 2018-06-20 12:19:04 +01:00
Simon Sapin
2b789bd057 Rename OOM to allocation error
The acronym is not descriptive unless one has seen it before.

* Rename the `oom` function to `handle_alloc_error`. It was **stabilized in 1.28**, so if we do this at all we need to land it this cycle.
* Rename `set_oom_hook` to `set_alloc_error_hook`
* Rename `take_oom_hook` to `take_alloc_error_hook`

Bikeshed: `alloc` v.s. `allocator`, `error` v.s. `failure`
2018-06-18 21:41:24 +02:00
bors
862703e05e Auto merge of #51414 - oli-obk:impl_trait_type_def, r=pnkfelix
Add existential type definitions

Note: this does not allow creating named existential types, it just desugars `impl Trait` to a less (but still very) hacky version of actual `existential type` items.

r? @nikomatsakis
2018-06-18 14:34:52 +00:00
Eduard-Mihai Burtescu
25c47a4885 rustc_codegen_llvm: don't treat i1 as signed, even for #[repr(i8)] enums. 2018-06-16 16:00:53 +03:00
Oliver Schneider
adec1f94ce Tidy 2018-06-13 19:10:41 +02:00
Oliver Schneider
d4ea2c43f5 Various cleanups 2018-06-13 09:11:23 +02:00
Simon Sapin
fd6e08a1e6 Remove some '#[feature]' attributes for stabilized features 2018-06-11 13:48:57 -07:00
Simon Sapin
0081d8826b Remove some unneeded casts 2018-06-11 13:47:28 -07:00
Mike Hommey
3373204ac4 Replace impl GlobalAlloc for Global with a set of free functions 2018-06-11 13:47:23 -07:00
Mike Hommey
f6ab74b8e7 Remove alloc::Opaque and use *mut u8 as pointer type for GlobalAlloc 2018-06-11 13:47:23 -07:00
David Tolnay
987020846c
Enable fall through past $:lifetime matcher 2018-06-10 14:39:16 -07:00
bors
684b8d3d7b Auto merge of #51196 - Havvy:remove-keywords, r=petrochenkov
Implement RFC 2421, 'Keyword unreservations (pure, sizeof, alignof, offsetof)

On my local machine I was getting failures in `test/ui-fulldeps`, but I was also getting them again after reverting the change, so I'm hoping that this works.

I removed the test because that's what the other PR that unreserved a keyword did and I feel that it doesn't make sense/keep value to keep a test for something removed years ago.
2018-06-10 08:26:10 +00:00
bors
b4d836c98b Auto merge of #51320 - tmccombs:step-by, r=SimonSapin
Stabilize Iterator::step_by

Fixes #27741
2018-06-10 01:45:42 +00:00
Havvy
679a5219e7 Test keyword unreservations 2018-06-09 14:15:57 -07:00
bors
0fb32a9f62 Auto merge of #51400 - xfix:patch-6, r=kennytm
Increase number of usages of `u8` in weird expressions u8 test
2018-06-09 10:22:59 +00:00
Mark Rousskov
b370f0e646
Rollup merge of #51276 - Havvy:dyn-trait-send-send, r=nikomatsakis
Dedup auto traits in trait objects.

Fixes #47010

Note that the test file `run-pass/trait-object-auto-dedup.rs` passes before and after this change. It's the `ui` test that changed from compiling to not compiling. Which does make this a breaking change, but I cannot imagine anybody actually being broken by it.
2018-06-08 17:20:58 -06:00
Mark Rousskov
91b6842dc9
Rollup merge of #50143 - petrochenkov:mexuniq, r=nikomatsakis
Add deprecation lint for duplicated `macro_export`s

cc https://github.com/rust-lang/rust/issues/35896#issuecomment-381370556
2018-06-08 17:20:55 -06:00
Oliver Schneider
6e5e35458c Add a sanity test for nesting other items inside the existential type 2018-06-08 01:10:18 +02:00
Oliver Schneider
9b1bd94e37 Add existential type definitons 2018-06-07 17:33:53 +02:00
Pietro Albini
1df7817122
Revert "Auto merge of #49719 - mark-i-m:no_sep, r=petrochenkov"
This reverts commit d6ba1b9b02, reversing
changes made to 8de5353f75.
2018-06-07 17:07:05 +02:00
bors
19d0b539aa Auto merge of #51263 - cramertj:futures-in-core, r=aturon
Add Future and task system to the standard library

This adds preliminary versions of the `std::future` and `std::task` modules in order to unblock development of async/await (https://github.com/rust-lang/rust/issues/50547). These shouldn't be considered as final forms of these libraries-- design questions about the libraries should be left on https://github.com/rust-lang/rfcs/pull/2418. Once that RFC (or a successor) is merged, these APIs will be adjusted as necessary.

r? @aturon
2018-06-06 19:42:19 +00:00
Taylor Cramer
a6055c8859 Add Future and task system to the standard library 2018-06-06 10:41:52 -07:00
Konrad Borowski
b7fcf8f576
Increase number of usages of u8 in weird expressions u8 test 2018-06-06 18:42:34 +02:00
Mark Simulacrum
d011150696
Rollup merge of #51358 - barzamin:tests-39963, r=oli-obk
Tests that #39963 is fixed on MIR borrowck

As title.

fixes #39963
2018-06-05 08:33:51 -06:00
Erin Moon
c2825e134d tests that #39963 is fixed on MIR borrowck 2018-06-04 18:15:48 -05:00
John Paul Adrian Glaubitz
690240994f test: Ignore some problematic tests on sparc and sparc64 2018-06-04 23:59:40 +02:00
bors
cdc193db99 Auto merge of #51328 - oli-obk:no_union_promotion, r=eddyb
Do not promote union field accesses

r? @eddyb

technically a breaking change, but the code errored on the previous stable and produces UB + a warning on the current stable. I don't think we need a crater run in that case.
2018-06-04 11:29:38 +00:00
Oliver Schneider
eb31ae2e14 Deduplicate and fix a test 2018-06-03 19:37:50 +02:00
Linus Färnstrand
8b5f962762 Ignore i128 test on asmjs 2018-06-03 11:23:34 +02:00
Thayne McCombs
72e17b81fa Stabilize Iterator::step_by
Fixes #27741
2018-06-02 20:42:42 -06:00
Linus Färnstrand
7df009922b Pass literal through black_box 2018-06-03 03:13:29 +02:00
Linus Färnstrand
490c57b156 Add test for const endianess conversion 2018-06-02 14:31:33 +02:00
Havvy
86ff9fa9c9 Dedup auto traits in trait objects 2018-06-01 14:37:16 -07:00
bors
577a5b2703 Auto merge of #51181 - mbrubeck:prelude, r=petrochenkov
Add std/core to prelude if extern_prelude enabled

Fixes #50605
2018-06-01 10:48:14 +00:00
Linus Färnstrand
12c330c4bf Add test for intrinsics::bswap 2018-05-31 19:18:42 +02:00
Matt Brubeck
72ab4b4f01 Add std/core to prelude if extern_prelude enabled
Fixes #50605
2018-05-31 06:37:53 -07:00
Eduard-Mihai Burtescu
5c76b64546 rustc: don't visit lifetime parameters through visit_lifetime. 2018-05-30 20:29:38 +03:00
Vadim Petrochenkov
11c283cdfc Prohibit duplicate macro_exports 2018-05-30 16:15:35 +03:00
bors
4f99f37b7e Auto merge of #50880 - glandium:oom, r=SimonSapin
OOM handling changes

As discussed in https://github.com/rust-lang/rust/issues/49668#issuecomment-384893456 and subsequent.

This does have codegen implications. Even without the hooks, and with a handler that ignores the arguments, the compiler doesn't eliminate calling `rust_oom` with the `Layout`. Even if it managed to eliminate that, with the hooks, I don't know if the compiler would be able to figure out it can skip it if the hook is never set.

A couple implementation notes:
- I went with explicit enums rather than bools because it makes it clearer in callers what is being requested.
- I didn't know what `feature` to put the hook setting functions behind. (and surprisingly, the compile went through without any annotation on the functions)
- There's probably some bikeshedding to do on the naming.

Cc: @Simonsapin, @sfackler
2018-05-30 11:35:00 +00:00
Felix S. Klock II
98d5e134f9 Tests illustrating the bug fixes for #27282 and #24535. 2018-05-29 23:02:40 +02:00
Mike Hommey
0f4ef003ac Pass a Layout to oom
As discussed in
https://github.com/rust-lang/rust/issues/49668#issuecomment-384893456
and subsequent, there are use-cases where the OOM handler needs to know
the size of the allocation that failed. The alignment might also be a
cause for allocation failure, so providing it as well can be useful.
2018-05-30 05:35:48 +09:00
bors
2612bbcba0 Auto merge of #50521 - gnzlbg:simd_float, r=alexcrichton
Add simd math intrinsics and gather/scatter

This PR adds simd math intrinsics for floating-point vectors (sqrt, sin, cos, pow, exp, log, fma, abs, etc.) and the generic simd gather/scatter intrinsics.
2018-05-28 16:54:44 +00:00