Разработчики Dart решили отказаться от механизма аугментации библиотек (augment library 'main.dart';) и сохранить
part of (part of 'main.dart'), значительно расширив его возможности для поддержки аугментации классов, функций и т.д.
Каждая библиотека (файл, part of 'main.dart') являющаяся частью другой (part 'a.dart') теперь сможет:
✅содержать собственные импорты и экспорты, распространяющиеся только на них;
✅быть корневой и состоять из произвольного количества собственных частей.
На чем отразится такой кульбит?
🔥 Не пострадает обратная совместимость при переходе на версию Dart, в которой релизнутся макросы.
🤗 Разработчикам кодогенераторов не придется их перепиливать.
😎 Нет нужды хранить все импорты в главной библиотеке, которую разбиваем на части. Это позволит писать код на более высоком уровне абстракции, чем механизм part of предоставлял до этого.
😈 Может усложниться кодовая база проекта. Особенно в тех случаях, когда кто-то решит во всю использовать этот механизм, дробя составные части библиотек на еще более мелкие
Поддерживаем их решение? 👍 - да, 👎 - нет
p.s. Данная фича пока не перенесена в dev-ветку.