Skip to content

Commit 20ba9ff

Browse files
Rollup merge of #78250 - camelid:document-inline-const, r=spastorino
Document inline-const Part of #76001. r? @spastorino
2 parents 77cd5b5 + 9775ac6 commit 20ba9ff

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# `inline_const`
2+
3+
The tracking issue for this feature is: [#76001]
4+
5+
------
6+
7+
This feature allows you to use inline constant expressions. For example, you can
8+
turn this code:
9+
10+
```rust
11+
# fn add_one(x: i32) -> i32 { x + 1 }
12+
const MY_COMPUTATION: i32 = 1 + 2 * 3 / 4;
13+
14+
fn main() {
15+
let x = add_one(MY_COMPUTATION);
16+
}
17+
```
18+
19+
into this code:
20+
21+
```rust
22+
#![feature(inline_const)]
23+
24+
# fn add_one(x: i32) -> i32 { x + 1 }
25+
fn main() {
26+
let x = add_one(const { 1 + 2 * 3 / 4 });
27+
}
28+
```
29+
30+
You can also use inline constant expressions in patterns:
31+
32+
```rust
33+
#![feature(inline_const)]
34+
35+
const fn one() -> i32 { 1 }
36+
37+
let some_int = 3;
38+
match some_int {
39+
const { 1 + 2 } => println!("Matched 1 + 2"),
40+
const { one() } => println!("Matched const fn returning 1"),
41+
_ => println!("Didn't match anything :("),
42+
}
43+
```
44+
45+
[#76001]: https://github.com/rust-lang/rust/issues/76001

0 commit comments

Comments
 (0)