Показать сообщение отдельно
Старый 21.04.2025, 12:44   #1  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
317 / 878 (30) +++++++
Регистрация: 23.10.2012
Инкрементная компиляция класса
Здравствуйте.
Выявили проблему, в 2009 (далее будут представлены нетипичные названия для классов - это сделано намеренно и прекрасно отражает душевное состояние автора на тему богатого багового наследия MS):
Было 3 класса:
Класс ClassCa - родитель;
Класс ClassCaCa - ребёнок от ClassCa;
Класс ClassCaCaco - ребёнок от ClassCa.
У родителя только 1 функция (для простоты описания), функция koko.
У обоих детей она перекрыта и вызывает логику базового (super).

Осуществили действие - переименовали в родителе функцию с koko на caco.
Делаем инкрементную компиляцию и в логе ошибок получаем только информацию о том, что в ребёнке ClassCaCa недопустимый вызов super'a, а про класс ClassCaCaco ни слова.
Теперь "фишка". Если скорректировать название 2-го ребёнка с использованием верхнего регистра (или создать сразу), ClassCaCaCo - инкрементная найдёт ошибку.
Кому-то знакома данная "фишка" ядра?

Последний раз редактировалось Товарищ ♂uatr; 21.04.2025 в 12:54.