Skip to content

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

NameDescription
LEGACY_ARG_SEGMENTNo description.
V01No description.
V02No description.
V03No description.
V04No description.
V05No description.

Functions

NameDescription
check_envelopeКонвертная дискриминация: schemaVersion обязан соответствовать фактической форме.
keys_invariantМиграционный тест DECISION-0001 п.6: keys и арность параметров не изменились.
parameters_formФактическая форма параметров: '0.1' | '0.2' | 'empty'. Смешение — ValueError.
upgrade0.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) -> dict

0.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.