lawref.ir_compat
Compat-чтение и миграция CLIR-документов 0.1 → 0.2 (DECISION-0001, WP-03).
Форма SymbolDecl.parameters определяется schemaVersion конверта (SPEC §202,
DECISION-0001 п.5): law.core.ir/0.1 — TypeRef[], law.core.ir/0.2 — ParameterDecl[].
Смешение форм внутри документа запрещено semantic-правилом (не выразимо схемой) —
проверяется здесь. Позиционные keys при миграции остаются валидными: порядок и
длина массива параметров сохраняются (DECISION-0001 п.6).
Attributes
Functions
| Name | Description |
|---|---|
check_envelope | Конвертная дискриминация: schemaVersion обязан соответствовать фактической форме. |
keys_invariant | Миграционный тест DECISION-0001 п.6: keys и арность параметров не изменились. |
parameters_form | Фактическая форма параметров: '0.1' | '0.2' | 'empty'. Смешение — ValueError. |
upgrade | 0.1 → 0.2: ParameterDecl[] с позиционными legacy-ID (PATCH §2.3). |
LEGACY_ARG_SEGMENTattributemodule attribute#
LEGACY_ARG_SEGMENT = '/.legacy/arg/'V01attributemodule attribute#
V01 = 'law.core.ir/0.1'V02attributemodule attribute#
V02 = 'law.core.ir/0.2'V03attributemodule attribute#
V03 = 'law.core.ir/0.3'V04attributemodule attribute#
V04 = 'law.core.ir/0.4'V05attributemodule attribute#
V05 = 'law.core.ir/0.5'check_envelopefunction#
def check_envelope(document: dict) -> list[str]Конвертная дискриминация: schemaVersion обязан соответствовать фактической форме.
keys_invariantfunction#
def keys_invariant(before: dict, after: dict) -> list[str]Миграционный тест DECISION-0001 п.6: keys и арность параметров не изменились.
parameters_formfunction#
def parameters_form(document: dict) -> strФактическая форма параметров: ‘0.1’ | ‘0.2’ | ‘empty’. Смешение — ValueError.
upgradefunction#
def upgrade(document: dict) -> dict0.1 → 0.2: ParameterDecl[] с позиционными legacy-ID (PATCH §2.3).
Имена аргументов в 0.1-форме утрачены (в этом и был дефект KZ-C2), поэтому
name = arg, id = <symbol_id>/.legacy/arg/, role отсутствует. Такие
символы нельзя экспортировать из core-production без явной миграции.
Инвариант: len(parameters) и порядок сохранены — keys остаются валидными.
Documentation for Arxo. Writings — blog.arxo.io.
Anonymous visit counts on stats.arxo.io, no cookies.