# E0282

A `?` or a `return` directly inside a `requires` or `ensures` expression, outside any closure. A contract is a condition that evaluates to a `Bool`, so there is no function to leave. A closure in a contract may use both for itself. Spans the `?` expression or the `return` statement.

**Machine-applicable fix:** none.

## Example

This program fails with `E0282`.

```oska
fn first(xs: List<Int>) -> Option<Int> {
    xs.get(0)
}

fn run(xs: List<Int>) -> Int
    requires first(xs)? > 0
{
    1
}
```

## Fixed

The same program, fixed.

```oska
fn run(xs: List<Int>) -> Int
    requires xs.len() > 0
{
    1
}
```

Listed in the [checker notes](/checker.md#e0282). `oskac explain E0282` prints this entry offline.