Rust HIR (промежуточный язык высокого уровня) — это упрощенная форма кода Rust. Как только компилятор преобразует слащавый код Rust в HIR, он начинает выполнять семантический анализ. Сегодня мы рассмотрим хорошо сформированный чек.

На первый взгляд проверка WF просто создает логические цели из типов, а затем пытается доказать эти цели, используя правила понижения. Если цель может быть доказана, то тип правильно сформирован, в противном случае возвращается ошибка.

Интересным связанным с этим проектом является Chalk Logic Solver, целью которого является выделение логической системы, лежащей в основе системы признаков, и других логических компонентов средства проверки типов ржавчины.

Просто присмотревшись к HIR-анализу, мы видим, что правильно сформированные проверки отправляются в rustc_infer, который является общим интерфейсом для работы с выводом типов внутри компилятора Rust.