История изменений
Исправление KivApple, (текущая версия) :
должен быть просто пропущен мимо
Хеш-таблица имеет такое свойство, что при вставке элементов порядок уже вставленных может измениться (если произойдёт перехеширование). Да и порядок вставки влияет на порядок итерирования (в случае коллизий).
Так что если в компилятора есть таблица всех идентификаторов и где-то в кодогенераторе происходит итерация по ней (с логикой, что нам не принципиален порядок обработки элементов, поэтому будем их обходить прямо как они лежат в таблице), то даже если мы игнорим новые элементы, мы как минимум можем обойти старые в другом порядке.
Исправление KivApple, :
должен быть просто пропущен мимо
Хеш-таблица имеет такое свойство, что при вставке элементов порядок уже вставленных может измениться (если произойдёт перехеширование). Да и порядок вставки влияет на порядок итерирования (в случае коллизий).
Так что если в компилятора есть таблица всех идентификаторов и где-то в кодогенераторе происходит итерация по ней (с логикой, что нам не принципиален порядок обработки элементов), то даже если мы игнорим новые элементы, мы как минимум можем обойти старые в другом порядке.
Исходная версия KivApple, :
должен быть просто пропущен мимо
Хеш таблица имеет такое свойство, что при вставке элементов порядок уже вставленных может измениться (если произойдёт перехеширование). Да и порядок вставки влияет на порядок итерирования (в случае коллизий).
Так что если в компилятора есть таблица всех иденьифткаторов и где-то в кодогенераторе происходит итерация по ней (с логикой, что нам не принципиален порядок обработки элементов), то даже если мы игнорим новые элементы, мы как минимум можем обойти старые в другом порядке.