История изменений
Исправление alysnix, (текущая версия) :
это все статические инварианты, которые проверяет компилятор.
safe блок не может вызвать unsafe, а только safe или trusted.
unsafe вызывает любой блок
trusted вызывает тоже любой блок, но усиливает утверждение если вызвал unsafe. и тут надо чета написать.
int x = trusting some_unsafe_func(); ///я доверяю в данном контексте some_unsafe_func()!!!
чтобы проверить на всякие небезопасные какашки надо просмотреть код на пример uhsafe частей и тех мест, где они переводятся в trusting.
safe код чист всегда.
trusted считается условно чистым и его можно использовать в чистом.
unsafe всегда грязный
программа в идеале не должна содержать unsafe частей, а только trusted и safe
Исправление alysnix, :
это все статические инварианты, которые проверяет компилятор.
safe блок не может вызвать unsafe, а только safe или trusted.
unsafe вызывает любой блок
trusted вызывает тоже любой блок, но усиливает утверждение если вызвал unsafe. и тут надо чета написать.
int x = trusting some_unsafe_func(); ///я доверяю в данном контексте some_unsafe_func()!!!
чтобы проверить на всякие небезопасные какашки надо просмотреть код на пример uhsafe частей и тех мест, где они переводятся в trusting.
safe код чист всегда.
trusted считается условно чистым и его можно использовать в чистом.
unsafe всегда грязный
Исходная версия alysnix, :
это все статические инварианты, которые проверяет компилятор.
safe блок не может вызвать unsafe, а только safe или trusted.
unsafe вызывает любой блок
trusted вызывает тоже любой блок, но усиливает утверждение если вызвал unsafe. и тут надо чета написать.
int x = trusting some_unsafe_func(); ///я доверяю в данном контексте some_unsafe_func()!!!
чтобы проверить на всякие небезопасные какашки надо просмотреть код на пример uhsafe частей и тех мест, где они переводятся в trusting.
safe код чист всегда.
trusting считается условно чистым и его можно использовать в чистом.
unsafe всегда грязный