| // Regression test for issue #90870. |
| |
| #![allow(dead_code)] |
| |
| const fn f(a: &u8, b: &u8) -> bool { |
| //~^ HELP: add `#![feature(const_cmp)]` to the crate attributes to enable |
| //~| HELP: add `#![feature(const_cmp)]` to the crate attributes to enable |
| //~| HELP: add `#![feature(const_cmp)]` to the crate attributes to enable |
| a == b |
| //~^ ERROR: cannot call conditionally-const operator in constant functions |
| //~| ERROR: `PartialEq` is not yet stable as a const trait |
| //~| HELP: consider dereferencing here |
| //~| HELP: add `#![feature(const_trait_impl)]` to the crate attributes to enable |
| } |
| |
| const fn g(a: &&&&i64, b: &&&&i64) -> bool { |
| a == b |
| //~^ ERROR: cannot call conditionally-const operator in constant functions |
| //~| ERROR: `PartialEq` is not yet stable as a const trait |
| //~| HELP: consider dereferencing here |
| //~| HELP: add `#![feature(const_trait_impl)]` to the crate attributes to enable |
| } |
| |
| const fn h(mut a: &[u8], mut b: &[u8]) -> bool { |
| while let ([l, at @ ..], [r, bt @ ..]) = (a, b) { |
| if l == r { |
| //~^ ERROR: cannot call conditionally-const operator in constant functions |
| //~| ERROR: `PartialEq` is not yet stable as a const trait |
| //~| HELP: consider dereferencing here |
| //~| HELP: add `#![feature(const_trait_impl)]` to the crate attributes to enable |
| a = at; |
| b = bt; |
| } else { |
| return false; |
| } |
| } |
| |
| a.is_empty() && b.is_empty() |
| } |
| |
| fn main() {} |