Skip to content

Commit

Permalink
Add updated NLL tests
Browse files Browse the repository at this point in the history
  • Loading branch information
varkor committed Feb 14, 2019
1 parent 519783a commit 8ca4406
Show file tree
Hide file tree
Showing 2 changed files with 108 additions and 37 deletions.
134 changes: 100 additions & 34 deletions src/test/ui/consts/min_const_fn/min_const_fn.nll.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -4,197 +4,257 @@ error[E0493]: destructors cannot be evaluated at compile-time
LL | const fn into_inner(self) -> T { self.0 } //~ destructors cannot be evaluated
| ^^^^ constant functions cannot evaluate destructors

error: mutable references in const fn are unstable
error[E0723]: mutable references in const fn are unstable (see issue #57563)
--> $DIR/min_const_fn.rs:39:36
|
LL | const fn get_mut(&mut self) -> &mut T { &mut self.0 }
| ^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error[E0493]: destructors cannot be evaluated at compile-time
--> $DIR/min_const_fn.rs:44:28
|
LL | const fn into_inner_lt(self) -> T { self.0 } //~ destructors cannot be evaluated
| ^^^^ constant functions cannot evaluate destructors

error: mutable references in const fn are unstable
error[E0723]: mutable references in const fn are unstable (see issue #57563)
--> $DIR/min_const_fn.rs:46:42
|
LL | const fn get_mut_lt(&'a mut self) -> &mut T { &mut self.0 }
| ^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error[E0493]: destructors cannot be evaluated at compile-time
--> $DIR/min_const_fn.rs:51:27
|
LL | const fn into_inner_s(self) -> T { self.0 } //~ ERROR destructors
| ^^^^ constant functions cannot evaluate destructors

error: mutable references in const fn are unstable
error[E0723]: mutable references in const fn are unstable (see issue #57563)
--> $DIR/min_const_fn.rs:53:38
|
LL | const fn get_mut_s(&mut self) -> &mut T { &mut self.0 }
| ^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: mutable references in const fn are unstable
error[E0723]: mutable references in const fn are unstable (see issue #57563)
--> $DIR/min_const_fn.rs:58:39
|
LL | const fn get_mut_sq(&mut self) -> &mut T { &mut self.0 }
| ^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: trait bounds other than `Sized` on const fn parameters are unstable
error[E0723]: trait bounds other than `Sized` on const fn parameters are unstable (see issue #57563)
--> $DIR/min_const_fn.rs:76:16
|
LL | const fn foo11<T: std::fmt::Display>(t: T) -> T { t }
| ^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: trait bounds other than `Sized` on const fn parameters are unstable
error[E0723]: trait bounds other than `Sized` on const fn parameters are unstable (see issue #57563)
--> $DIR/min_const_fn.rs:78:18
|
LL | const fn foo11_2<T: Send>(t: T) -> T { t }
| ^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: only int, `bool` and `char` operations are stable in const fn
error[E0723]: only int, `bool` and `char` operations are stable in const fn (see issue #57563)
--> $DIR/min_const_fn.rs:80:33
|
LL | const fn foo19(f: f32) -> f32 { f * 2.0 }
| ^^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: only int, `bool` and `char` operations are stable in const fn
error[E0723]: only int, `bool` and `char` operations are stable in const fn (see issue #57563)
--> $DIR/min_const_fn.rs:82:35
|
LL | const fn foo19_2(f: f32) -> f32 { 2.0 - f }
| ^^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: only int and `bool` operations are stable in const fn
error[E0723]: only int and `bool` operations are stable in const fn (see issue #57563)
--> $DIR/min_const_fn.rs:84:35
|
LL | const fn foo19_3(f: f32) -> f32 { -f }
| ^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: only int, `bool` and `char` operations are stable in const fn
error[E0723]: only int, `bool` and `char` operations are stable in const fn (see issue #57563)
--> $DIR/min_const_fn.rs:86:43
|
LL | const fn foo19_4(f: f32, g: f32) -> f32 { f / g }
| ^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: cannot access `static` items in const fn
error[E0723]: cannot access `static` items in const fn (see issue #57563)
--> $DIR/min_const_fn.rs:90:27
|
LL | const fn foo25() -> u32 { BAR } //~ ERROR cannot access `static` items in const fn
| ^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: cannot access `static` items in const fn
error[E0723]: cannot access `static` items in const fn (see issue #57563)
--> $DIR/min_const_fn.rs:91:36
|
LL | const fn foo26() -> &'static u32 { &BAR } //~ ERROR cannot access `static` items
| ^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: casting pointers to ints is unstable in const fn
error[E0723]: casting pointers to ints is unstable in const fn (see issue #57563)
--> $DIR/min_const_fn.rs:92:42
|
LL | const fn foo30(x: *const u32) -> usize { x as usize }
| ^^^^^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: casting pointers to ints is unstable in const fn
error[E0723]: casting pointers to ints is unstable in const fn (see issue #57563)
--> $DIR/min_const_fn.rs:94:63
|
LL | const fn foo30_with_unsafe(x: *const u32) -> usize { unsafe { x as usize } }
| ^^^^^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: casting pointers to ints is unstable in const fn
error[E0723]: casting pointers to ints is unstable in const fn (see issue #57563)
--> $DIR/min_const_fn.rs:96:42
|
LL | const fn foo30_2(x: *mut u32) -> usize { x as usize }
| ^^^^^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: casting pointers to ints is unstable in const fn
error[E0723]: casting pointers to ints is unstable in const fn (see issue #57563)
--> $DIR/min_const_fn.rs:98:63
|
LL | const fn foo30_2_with_unsafe(x: *mut u32) -> usize { unsafe { x as usize } }
| ^^^^^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: `if`, `match`, `&&` and `||` are not stable in const fn
error[E0723]: `if`, `match`, `&&` and `||` are not stable in const fn (see issue #57563)
--> $DIR/min_const_fn.rs:100:38
|
LL | const fn foo30_4(b: bool) -> usize { if b { 1 } else { 42 } }
| ^^^^^^^^^^^^^^^^^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: `if`, `match`, `&&` and `||` are not stable in const fn
error[E0723]: `if`, `match`, `&&` and `||` are not stable in const fn (see issue #57563)
--> $DIR/min_const_fn.rs:102:29
|
LL | const fn foo30_5(b: bool) { while b { } } //~ ERROR not stable in const fn
| ^^^^^^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: `if`, `match`, `&&` and `||` are not stable in const fn
error[E0723]: `if`, `match`, `&&` and `||` are not stable in const fn (see issue #57563)
--> $DIR/min_const_fn.rs:104:44
|
LL | const fn foo36(a: bool, b: bool) -> bool { a && b }
| ^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: `if`, `match`, `&&` and `||` are not stable in const fn
error[E0723]: `if`, `match`, `&&` and `||` are not stable in const fn (see issue #57563)
--> $DIR/min_const_fn.rs:106:44
|
LL | const fn foo37(a: bool, b: bool) -> bool { a || b }
| ^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: mutable references in const fn are unstable
error[E0723]: mutable references in const fn are unstable (see issue #57563)
--> $DIR/min_const_fn.rs:108:14
|
LL | const fn inc(x: &mut i32) { *x += 1 }
| ^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: trait bounds other than `Sized` on const fn parameters are unstable
error[E0723]: trait bounds other than `Sized` on const fn parameters are unstable (see issue #57563)
--> $DIR/min_const_fn.rs:113:6
|
LL | impl<T: std::fmt::Debug> Foo<T> {
| ^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: trait bounds other than `Sized` on const fn parameters are unstable
error[E0723]: trait bounds other than `Sized` on const fn parameters are unstable (see issue #57563)
--> $DIR/min_const_fn.rs:118:6
|
LL | impl<T: std::fmt::Debug + Sized> Foo<T> {
| ^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: trait bounds other than `Sized` on const fn parameters are unstable
error[E0723]: trait bounds other than `Sized` on const fn parameters are unstable (see issue #57563)
--> $DIR/min_const_fn.rs:123:6
|
LL | impl<T: Sync + Sized> Foo<T> {
| ^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: `impl Trait` in const fn is unstable
error[E0723]: `impl Trait` in const fn is unstable (see issue #57563)
--> $DIR/min_const_fn.rs:129:24
|
LL | const fn no_rpit2() -> AlanTuring<impl std::fmt::Debug> { AlanTuring(0) }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: trait bounds other than `Sized` on const fn parameters are unstable
error[E0723]: trait bounds other than `Sized` on const fn parameters are unstable (see issue #57563)
--> $DIR/min_const_fn.rs:131:34
|
LL | const fn no_apit2(_x: AlanTuring<impl std::fmt::Debug>) {}
| ^^^^^^^^^^^^^^^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: trait bounds other than `Sized` on const fn parameters are unstable
error[E0723]: trait bounds other than `Sized` on const fn parameters are unstable (see issue #57563)
--> $DIR/min_const_fn.rs:133:22
|
LL | const fn no_apit(_x: impl std::fmt::Debug) {} //~ ERROR trait bounds other than `Sized`
| ^^^^^^^^^^^^^^^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: `impl Trait` in const fn is unstable
error[E0723]: `impl Trait` in const fn is unstable (see issue #57563)
--> $DIR/min_const_fn.rs:134:23
|
LL | const fn no_rpit() -> impl std::fmt::Debug {} //~ ERROR `impl Trait` in const fn is unstable
| ^^^^^^^^^^^^^^^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: trait bounds other than `Sized` on const fn parameters are unstable
error[E0723]: trait bounds other than `Sized` on const fn parameters are unstable (see issue #57563)
--> $DIR/min_const_fn.rs:135:23
|
LL | const fn no_dyn_trait(_x: &dyn std::fmt::Debug) {} //~ ERROR trait bounds other than `Sized`
| ^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: trait bounds other than `Sized` on const fn parameters are unstable
error[E0723]: trait bounds other than `Sized` on const fn parameters are unstable (see issue #57563)
--> $DIR/min_const_fn.rs:136:32
|
LL | const fn no_dyn_trait_ret() -> &'static dyn std::fmt::Debug { &() }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

warning[E0515]: cannot return reference to temporary value
--> $DIR/min_const_fn.rs:136:63
Expand All @@ -208,25 +268,31 @@ LL | const fn no_dyn_trait_ret() -> &'static dyn std::fmt::Debug { &() }
= warning: this error has been downgraded to a warning for backwards compatibility with previous releases
= warning: this represents potential undefined behavior in your code and this warning will become a hard error in the future

error: trait bounds other than `Sized` on const fn parameters are unstable
error[E0723]: trait bounds other than `Sized` on const fn parameters are unstable (see issue #57563)
--> $DIR/min_const_fn.rs:141:41
|
LL | const fn really_no_traits_i_mean_it() { (&() as &std::fmt::Debug, ()).1 }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: function pointers in const fn are unstable
error[E0723]: function pointers in const fn are unstable (see issue #57563)
--> $DIR/min_const_fn.rs:144:21
|
LL | const fn no_fn_ptrs(_x: fn()) {}
| ^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: function pointers in const fn are unstable
error[E0723]: function pointers in const fn are unstable (see issue #57563)
--> $DIR/min_const_fn.rs:146:27
|
LL | const fn no_fn_ptrs2() -> fn() { fn foo() {} foo }
| ^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: aborting due to 36 previous errors

Some errors occurred: E0493, E0515.
Some errors occurred: E0493, E0515, E0723.
For more information about an error, try `rustc --explain E0493`.
11 changes: 8 additions & 3 deletions src/test/ui/consts/min_const_fn/min_const_fn_dyn.nll.stderr
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
error: trait bounds other than `Sized` on const fn parameters are unstable
error[E0723]: trait bounds other than `Sized` on const fn parameters are unstable (see issue #57563)
--> $DIR/min_const_fn_dyn.rs:9:5
|
LL | x.0.field;
| ^^^^^^^^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

error: trait bounds other than `Sized` on const fn parameters are unstable
error[E0723]: trait bounds other than `Sized` on const fn parameters are unstable (see issue #57563)
--> $DIR/min_const_fn_dyn.rs:12:66
|
LL | const fn no_inner_dyn_trait_ret() -> Hide { Hide(HasDyn { field: &0 }) }
| ^^
|
= help: add #![feature(const_fn)] to the crate attributes to enable

warning[E0716]: temporary value dropped while borrowed
--> $DIR/min_const_fn_dyn.rs:12:67
Expand All @@ -24,4 +28,5 @@ LL | const fn no_inner_dyn_trait_ret() -> Hide { Hide(HasDyn { field: &0 }) }

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0716`.
Some errors occurred: E0716, E0723.
For more information about an error, try `rustc --explain E0716`.

0 comments on commit 8ca4406

Please sign in to comment.