diff options
| author | bors <bors@rust-lang.org> | 2019-10-28 07:38:49 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2019-10-28 07:38:49 +0000 |
| commit | 03a50ae9b87021d4a166c70d2c932f1cb0aa8f28 (patch) | |
| tree | dff9cfee9afb9b5dc1d48c03411ad1286fe29be8 /src/libstd/sys/unix/stack_overflow.rs | |
| parent | 9285d401a6070094747465962bc49969b93e14c5 (diff) | |
| parent | 170718c93f3defba2edee69bae7abd64d1672355 (diff) | |
| download | rust-03a50ae9b87021d4a166c70d2c932f1cb0aa8f28.tar.gz rust-03a50ae9b87021d4a166c70d2c932f1cb0aa8f28.zip | |
Auto merge of #65188 - matthewjasper:stabilize-const-constructor, r=Centril
Stabilize `const_constructor`
# Stabilization proposal
I propose that we stabilize `#![feature(const_constructor)]`.
Tracking issue: https://github.com/rust-lang/rust/issues/61456
Version target: 1.40 (2019-11-05 => beta, 2019-12-19 => stable).
## What is stabilized
### User guide
Tuple struct and tuple variant constructors are now considered to be constant functions. As such a call expression where the callee has a tuple struct or variant constructor "function item" type can be called:
```rust
const fn make_options() {
// These already work because they are special cased:
Some(0);
(Option::Some)(1);
// These also work now:
let f = Option::Some;
f(2);
{Option::Some}(3);
<Option<_>>::Some(5);
}
```
### Motivation
Consistency with other `const fn`. Consistency between syntactic path forms.
This should also ensure that constructors implement `const Fn` traits and can be coerced to `const fn` function pointers, if they are introduced.
## Tests
* [ui/consts/const_constructor/const-construct-call.rs](https://github.com/rust-lang/rust/blob/0d75ab2293a106eb674ac01860910cfc1580837e/src/test/ui/consts/const_constructor/const-construct-call.rs) - Tests various syntactic forms, use in both `const fn` and `const` items, and constructors in both the current and extern crates.
* [ui/consts/const_constructor/const_constructor_qpath.rs](https://github.com/rust-lang/rust/blob/1850dfcdabf8258a1f023f26c2c59e96b869dd95/src/test/ui/consts/const_constructor/const_constructor_qpath.rs) - Tests that type qualified paths to enum variants are also considered to be `const fn`.(#64247)
r? @oli-obk
Closes #61456
Closes #64247
Diffstat (limited to 'src/libstd/sys/unix/stack_overflow.rs')
0 files changed, 0 insertions, 0 deletions
