Skip to content

fix the function name and the direction of assignability - #363

Merged
fey merged 1 commit into
mainfrom
fix/348-assignability-editorial
Aug 14, 2026
Merged

fix the function name and the direction of assignability#363
fey merged 1 commit into
mainfrom
fix/348-assignability-editorial

Conversation

@fey

@fey fey commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Первый пункт #348 — урок 25-types/40-assignability, названный в триаже. Issue целиком не закрывает: вычитка остальных уроков модулей 25-types, 30-classes, 40-generics, 50-objects остаётся.

Что чинится

Названное в issue:

  • текст ссылался на вызов f(false);, а функция в примере называется len;
  • в ru пропущен пробел: «присваиваемостью(Assignability)».

Найденное рядом, в тех же трёх абзацах: направление присваиваемости описано наоборот.

Текст говорил: «присваиваемость — это проверка, что множество значений x входит в множество значений y», и следом «Переменная типа x присваивается переменной типа y, если множество значений x входит в множество значений y». Но x и y — это переменные из примера прямо над абзацем, и там x = y, то есть приемник это x. Правило, записанное через те же буквы, получилось перевёрнутым: по нему x = y требовало бы values(x) ⊆ values(y), тогда как компилятор проверяет обратное.

Что показательно, собственный пример абзаца перевёрнутому правилу противоречит: «литеральный тип 'one' входит в множество значений string» — здесь источник это 'one', приемник string, и включение идёт от источника к приемнику.

Оставлять это нельзя: урок ровно про то, как читать Type X is not assignable to type Y, и направление здесь — единственное, что нужно унести из урока.

Что стало

Правило сформулировано через источник и приемник, а разбор дан на обоих случаях из примера — на присвоении x = y и на вызове len(false). Буквы A и B в общей формулировке не пересекаются с именами из примера, поэтому её больше не прочитать как утверждение про конкретные x и y.

Примеры включения дополнены до компилируемых строк (const s: string = 'one' против const s: string = 10), чтобы «входит в множество» было видно на коде, а не только на словах.

В en заодно заменены типографские кавычки ‘one’ на `'one'` — в остальном уроке литералы набраны кодом.

Проверка

make description-lint и make schema-validate зелёные. Задание и решение урока не тронуты — правка только в теории.

Что осталось за рамками этого PR

Остальной объём #348 — десятки уроков в четырёх модулях, там нужна сплошная редакторская вычитка, а не точечные правки. Этот PR берёт единственный пункт, который в issue назван конкретно и проверяем.

@fey
fey merged commit c1fe8b2 into main Aug 14, 2026
2 checks passed
@fey
fey deleted the fix/348-assignability-editorial branch August 14, 2026 12:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant