bem-archive / apw

APW (Arch-Plan-Workers) — is the core of the build system of `bem make/server` commands

Home Page:http://documentup.com/bem/apw

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Wrong nodes in plans

arikon opened this issue · comments

В Plan попадают узлы, которые туда не должны попадать ни при каких обстоятельствах.
Эти узлы не связаны ни с корнем, ни с одним другим узлом. При этом выполняются во время выполнения плана.

Баг всплыл благодаря ассертам.

Проблема была в проверке при рекурсовной линковке узлов в план (Plan.injectSubArch()) — проверка была неправильной. Важно было проверять, что parent существует в плане, а проверялось на существование одного из узлов (child || parent). Из-за этого возникали ситуации, когда в качестве parent к существующей ноде в плане линковалась нода, никак не связанная с корнем плана. В момент, когда её child выполнялся, она становилась непривязанной ни к одному узлу.