rust/tests/ui/contracts/internal_machinery/internal-feature-gating.rs
Celina G. Val 3feac59b79 Fix unreachable expression warning
Invert the order that we pass the arguments to the
`contract_check_ensures` function to avoid the warning when the tail
of the function is unreachable.

Note that the call itself is also unreachable, but we have already
handled that case by ignoring unreachable call for contract calls.
2025-04-08 10:46:31 -07:00

20 lines
935 B
Rust

// gate-test-contracts_internals
fn main() {
// intrinsics are guarded by contracts_internals feature gate.
core::intrinsics::contract_checks();
//~^ ERROR use of unstable library feature `contracts_internals`
core::intrinsics::contract_check_requires(|| true);
//~^ ERROR use of unstable library feature `contracts_internals`
core::intrinsics::contract_check_ensures( |_|true, &1);
//~^ ERROR use of unstable library feature `contracts_internals`
core::contracts::build_check_ensures(|_: &()| true);
//~^ ERROR use of unstable library feature `contracts_internals`
// ast extensions are guarded by contracts_internals feature gate
fn identity_1() -> i32 contract_requires(|| true) { 10 }
//~^ ERROR contract internal machinery is for internal use only
fn identity_2() -> i32 contract_ensures(|_| true) { 10 }
//~^ ERROR contract internal machinery is for internal use only
}