# E0230

Mutating method (`var self`) called on something that is not a `var` binding.

**Machine-applicable fix:** Change `let` to `var`, or `self` to `var self`.

## Example

This program fails with `E0230`.

```oska
struct Counter { count: Int }

impl Counter {
    fn tick(var self) {
        self.count = self.count + 1
    }
}

fn main() {
    let c = Counter(count: 0)
    c.tick()
}
```

## Fixed

The same program, fixed.

```oska
struct Counter { count: Int }

impl Counter {
    fn tick(var self) {
        self.count = self.count + 1
    }
}

fn main() {
    var c = Counter(count: 0)
    c.tick()
}
```

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