mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-02 21:17:39 +00:00
28 lines
780 B
Rust
28 lines
780 B
Rust
![]() |
//! Test for some of the existing limitations and the current error messages.
|
||
|
//! Some of these limitations may be removed in the future.
|
||
|
|
||
|
#![feature(rustc_contracts)]
|
||
|
#![allow(dead_code)]
|
||
|
|
||
|
/// Represent a 5-star system.
|
||
|
struct Stars(u8);
|
||
|
|
||
|
impl Stars {
|
||
|
fn is_valid(&self) -> bool {
|
||
|
self.0 <= 5
|
||
|
}
|
||
|
}
|
||
|
|
||
|
trait ParseStars {
|
||
|
#[core::contracts::ensures(|ret| ret.is_none_or(Stars::is_valid))]
|
||
|
//~^ ERROR contract annotations is only supported in functions with bodies
|
||
|
fn parse_string(input: String) -> Option<Stars>;
|
||
|
|
||
|
#[core::contracts::ensures(|ret| ret.is_none_or(Stars::is_valid))]
|
||
|
//~^ ERROR contract annotations is only supported in functions with bodies
|
||
|
fn parse<T>(input: T) -> Option<Stars> where T: for<'a> Into<&'a str>;
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
}
|