# Строгий не null режим(Rust mode)

Если вы компилируете ваш код с ключом `--enable-experimental-non-null`, то компилятор Vala будет строго проверять каждый тип на не null, если только явно не объявлено обратное с помощью вопросительного знака:

```csharp
Object o1 = new Object(); // не может быть null
Object? o2 = new Object(); // может быть null
```

Компилятор будет следить за тем, чтобы ссылки, которые могут содержать null не были присвоены ссылкам, которые не могут быть null, т.е. такого рода присвоения будут невозможны:

```csharp
o1 = o2;
```

o2 может быть null, а о1 объявлен нe null, поэтому такое присвоение запрещено. Тем не менее, вы можете переопределить такое поведение с помощью приведения ссылки к не null, если есть уверенность, что о2 не null:

```csharp
o1 = (!) o2;
```

Строгая проверка в не null режиме помогает избежать использования нежелательного использования null ссылок. Эта возможность покажет свой потенциал полностью, если все типы в биндингах будут отмечены на предмет содержания null ccылок правильным образом, что пока еще встречается редко.
