1
Fork 0

Rollup merge of #61518 - czipperz:const-fn-doc-disallow-loops, r=Centril

Add loops to doc list of things not stable in const fn

Closes #61508
This commit is contained in:
Mazdak Farrokhzad 2019-06-11 17:13:54 +02:00 committed by GitHub
commit 17393b26b9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 14 additions and 14 deletions

View file

@ -299,7 +299,7 @@ fn check_terminator(
TerminatorKind::FalseEdges { .. } | TerminatorKind::SwitchInt { .. } => Err(( TerminatorKind::FalseEdges { .. } | TerminatorKind::SwitchInt { .. } => Err((
span, span,
"`if`, `match`, `&&` and `||` are not stable in const fn".into(), "loops and conditional expressions are not stable in const fn".into(),
)), )),
| TerminatorKind::Abort | TerminatorKind::Unreachable => { | TerminatorKind::Abort | TerminatorKind::Unreachable => {
Err((span, "const fn with unreachable code is not stable".into())) Err((span, "const fn with unreachable code is not stable".into()))

View file

@ -160,7 +160,7 @@ LL | const fn foo30_2_with_unsafe(x: *mut u32) -> usize { unsafe { x as usize }
= note: for more information, see issue https://github.com/rust-lang/rust/issues/57563 = note: for more information, see issue https://github.com/rust-lang/rust/issues/57563
= help: add #![feature(const_fn)] to the crate attributes to enable = help: add #![feature(const_fn)] to the crate attributes to enable
error[E0723]: `if`, `match`, `&&` and `||` are not stable in const fn error[E0723]: loops and conditional expressions are not stable in const fn
--> $DIR/min_const_fn.rs:100:38 --> $DIR/min_const_fn.rs:100:38
| |
LL | const fn foo30_4(b: bool) -> usize { if b { 1 } else { 42 } } LL | const fn foo30_4(b: bool) -> usize { if b { 1 } else { 42 } }
@ -169,7 +169,7 @@ LL | const fn foo30_4(b: bool) -> usize { if b { 1 } else { 42 } }
= note: for more information, see issue https://github.com/rust-lang/rust/issues/57563 = note: for more information, see issue https://github.com/rust-lang/rust/issues/57563
= help: add #![feature(const_fn)] to the crate attributes to enable = help: add #![feature(const_fn)] to the crate attributes to enable
error[E0723]: `if`, `match`, `&&` and `||` are not stable in const fn error[E0723]: loops and conditional expressions are not stable in const fn
--> $DIR/min_const_fn.rs:102:29 --> $DIR/min_const_fn.rs:102:29
| |
LL | const fn foo30_5(b: bool) { while b { } } LL | const fn foo30_5(b: bool) { while b { } }
@ -178,7 +178,7 @@ LL | const fn foo30_5(b: bool) { while b { } }
= note: for more information, see issue https://github.com/rust-lang/rust/issues/57563 = note: for more information, see issue https://github.com/rust-lang/rust/issues/57563
= help: add #![feature(const_fn)] to the crate attributes to enable = help: add #![feature(const_fn)] to the crate attributes to enable
error[E0723]: `if`, `match`, `&&` and `||` are not stable in const fn error[E0723]: loops and conditional expressions are not stable in const fn
--> $DIR/min_const_fn.rs:104:44 --> $DIR/min_const_fn.rs:104:44
| |
LL | const fn foo36(a: bool, b: bool) -> bool { a && b } LL | const fn foo36(a: bool, b: bool) -> bool { a && b }
@ -187,7 +187,7 @@ LL | const fn foo36(a: bool, b: bool) -> bool { a && b }
= note: for more information, see issue https://github.com/rust-lang/rust/issues/57563 = note: for more information, see issue https://github.com/rust-lang/rust/issues/57563
= help: add #![feature(const_fn)] to the crate attributes to enable = help: add #![feature(const_fn)] to the crate attributes to enable
error[E0723]: `if`, `match`, `&&` and `||` are not stable in const fn error[E0723]: loops and conditional expressions are not stable in const fn
--> $DIR/min_const_fn.rs:106:44 --> $DIR/min_const_fn.rs:106:44
| |
LL | const fn foo37(a: bool, b: bool) -> bool { a || b } LL | const fn foo37(a: bool, b: bool) -> bool { a || b }

View file

@ -98,13 +98,13 @@ const fn foo30_2(x: *mut u32) -> usize { x as usize }
const fn foo30_2_with_unsafe(x: *mut u32) -> usize { unsafe { x as usize } } const fn foo30_2_with_unsafe(x: *mut u32) -> usize { unsafe { x as usize } }
//~^ ERROR casting pointers to ints is unstable //~^ ERROR casting pointers to ints is unstable
const fn foo30_4(b: bool) -> usize { if b { 1 } else { 42 } } const fn foo30_4(b: bool) -> usize { if b { 1 } else { 42 } }
//~^ ERROR `if`, `match`, `&&` and `||` are not stable in const fn //~^ ERROR loops and conditional expressions are not stable in const fn
const fn foo30_5(b: bool) { while b { } } //~ ERROR not stable in const fn const fn foo30_5(b: bool) { while b { } } //~ ERROR not stable in const fn
const fn foo30_6() -> bool { let x = true; x } const fn foo30_6() -> bool { let x = true; x }
const fn foo36(a: bool, b: bool) -> bool { a && b } const fn foo36(a: bool, b: bool) -> bool { a && b }
//~^ ERROR `if`, `match`, `&&` and `||` are not stable in const fn //~^ ERROR loops and conditional expressions are not stable in const fn
const fn foo37(a: bool, b: bool) -> bool { a || b } const fn foo37(a: bool, b: bool) -> bool { a || b }
//~^ ERROR `if`, `match`, `&&` and `||` are not stable in const fn //~^ ERROR loops and conditional expressions are not stable in const fn
const fn inc(x: &mut i32) { *x += 1 } const fn inc(x: &mut i32) { *x += 1 }
//~^ ERROR mutable references in const fn are unstable //~^ ERROR mutable references in const fn are unstable

View file

@ -160,7 +160,7 @@ LL | const fn foo30_2_with_unsafe(x: *mut u32) -> usize { unsafe { x as usize }
= note: for more information, see issue https://github.com/rust-lang/rust/issues/57563 = note: for more information, see issue https://github.com/rust-lang/rust/issues/57563
= help: add #![feature(const_fn)] to the crate attributes to enable = help: add #![feature(const_fn)] to the crate attributes to enable
error[E0723]: `if`, `match`, `&&` and `||` are not stable in const fn error[E0723]: loops and conditional expressions are not stable in const fn
--> $DIR/min_const_fn.rs:100:38 --> $DIR/min_const_fn.rs:100:38
| |
LL | const fn foo30_4(b: bool) -> usize { if b { 1 } else { 42 } } LL | const fn foo30_4(b: bool) -> usize { if b { 1 } else { 42 } }
@ -169,7 +169,7 @@ LL | const fn foo30_4(b: bool) -> usize { if b { 1 } else { 42 } }
= note: for more information, see issue https://github.com/rust-lang/rust/issues/57563 = note: for more information, see issue https://github.com/rust-lang/rust/issues/57563
= help: add #![feature(const_fn)] to the crate attributes to enable = help: add #![feature(const_fn)] to the crate attributes to enable
error[E0723]: `if`, `match`, `&&` and `||` are not stable in const fn error[E0723]: loops and conditional expressions are not stable in const fn
--> $DIR/min_const_fn.rs:102:29 --> $DIR/min_const_fn.rs:102:29
| |
LL | const fn foo30_5(b: bool) { while b { } } LL | const fn foo30_5(b: bool) { while b { } }
@ -178,7 +178,7 @@ LL | const fn foo30_5(b: bool) { while b { } }
= note: for more information, see issue https://github.com/rust-lang/rust/issues/57563 = note: for more information, see issue https://github.com/rust-lang/rust/issues/57563
= help: add #![feature(const_fn)] to the crate attributes to enable = help: add #![feature(const_fn)] to the crate attributes to enable
error[E0723]: `if`, `match`, `&&` and `||` are not stable in const fn error[E0723]: loops and conditional expressions are not stable in const fn
--> $DIR/min_const_fn.rs:104:44 --> $DIR/min_const_fn.rs:104:44
| |
LL | const fn foo36(a: bool, b: bool) -> bool { a && b } LL | const fn foo36(a: bool, b: bool) -> bool { a && b }
@ -187,7 +187,7 @@ LL | const fn foo36(a: bool, b: bool) -> bool { a && b }
= note: for more information, see issue https://github.com/rust-lang/rust/issues/57563 = note: for more information, see issue https://github.com/rust-lang/rust/issues/57563
= help: add #![feature(const_fn)] to the crate attributes to enable = help: add #![feature(const_fn)] to the crate attributes to enable
error[E0723]: `if`, `match`, `&&` and `||` are not stable in const fn error[E0723]: loops and conditional expressions are not stable in const fn
--> $DIR/min_const_fn.rs:106:44 --> $DIR/min_const_fn.rs:106:44
| |
LL | const fn foo37(a: bool, b: bool) -> bool { a || b } LL | const fn foo37(a: bool, b: bool) -> bool { a || b }

View file

@ -15,7 +15,7 @@ impl Foo {
use self::Foo::*; use self::Foo::*;
match *self { match *self {
Prob => 0x1, //~ ERROR `if`, `match`, `&&` and `||` are not stable in const fn Prob => 0x1, //~ ERROR loops and conditional expressions are not stable in const fn
} }
} }
} }

View file

@ -10,7 +10,7 @@ error[E0019]: constant contains unimplemented expression type
LL | x => 42, LL | x => 42,
| ^ | ^
error[E0723]: `if`, `match`, `&&` and `||` are not stable in const fn error[E0723]: loops and conditional expressions are not stable in const fn
--> $DIR/single_variant_match_ice.rs:18:13 --> $DIR/single_variant_match_ice.rs:18:13
| |
LL | Prob => 0x1, LL | Prob => 0x1,