from observable.observable import Observable, ObservableField, auto_field


class Model(Observable):
    value: ObservableField[int, str] = auto_field(default=0)
    bad_default: ObservableField[int, str] = auto_field(default="wrong")  # expected-error


model = Model()
model.value = 42  # expected-error
wrong_read: str = model.value  # expected-error
model.set_val(Model.value, 42)  # expected-error


def wrong_converter(value: str) -> str:
    return value


Model.value.converter(wrong_converter)  # expected-error
