Skip to content

Валидация типов (TYPE-INTENT)

Intent ID: :type-safe-cast
Статус: 🚧 Draft
Версия: 0.1

Описание

Контракт для безопасного приведения типов в C/C++. Обеспечивает трассировку приведений и валидацию совместимости типов.

EDN Спецификация (Draft)

{:intent :type-safe-cast
 :entities {:source {:type "T*" :role :cast-from}
            :target {:type "U*" :role :cast-to}}
 :invariants [
   ;; Правило: приведение должно быть явным
   {:op :cast :from :source :to :target
    :require-explicit true}

   ;; Правило: запрет опасных приведений
   {:forbid {:cast :from :const-ptr :to :non-const-ptr}}
 ]
 :tags {:wrap "// [[garden:type-checked]]"}}

Пример использования

✅ Валидный код

// [[garden:intent(type-safe-cast)]]
void process_data(const void* data) {
    // Явное приведение с сохранением const
    const int* values = (const int*)data;
    process_values(values);
}
// [[/garden:intent]]

❌ Нарушение

// [[garden:intent(type-safe-cast)]]
void unsafe_cast(const void* data) {
    // ОШИБКА: снятие const без явного намерения
    int* values = (int*)data;  // Нарушение безопасности типов
}
// [[/garden:intent]]

Bake the Future. Build the Substrate. 🛠️⚡️