Я думаю, что самый большой недостаток программирования в scala заключается в том, что из-за большого количества кода, являющегося частью синтетических/анонимных классов, трассировки стека и журналы «toString» по умолчанию часто близки к бесполезным.scala: toString для синтетических классов и функций
Есть ли веская причина/препятствие для компилятора, генерирующего более полезные имена классов/методы toString? Я чувствую, что методы, связанные с функциями и функциями, назначенными названным vals, по крайней мере, являются хорошими кандидатами для печати имени метода/val вместо «функции». Было бы также здорово, если бы имена классов lambdas отображали название метода, в котором они были определены, но снова что-то вроде «$$ lambda» было бы улучшением.
Возможно, это может быть сделано с помощью макросов - кто-нибудь уже сделал это, или это хороший кандидат, чтобы вникать в макросы scala?
Что вы хотите сказать? В настоящее время это больше похоже на предложение/разглагольствование, а не на реальный вопрос. –
Макросы только ухудшат ситуацию. Вам нужно будет взломать базовую JVM, чтобы исправить трассировки стека. – bash0r
«Кто-нибудь уже это сделал?» И я считаю, что макросы могут по крайней мере добавить более полезную реализацию «toString», если не повлиять на имя сгенерированного класса. Я не знаю, работают ли они чисто локально, или если бы было возможно изменить встроенные классы на именованные объекты – Turin