Scala 在所有翻译和隐式应用程序之后输出代码?

Scala 在所有翻译和隐式应用程序之后输出代码?,scala,scalac,Scala,Scalac,在这篇文章中,我看到scalac有一个-Xlog implicit conversions选项,它在编译期间显示隐式应用程序。还有-Xprint:选项,显示指定编译阶段后的程序代码 但是,在完成所有的语法转换和隐式转换(应用程序)后,是否有可能以某种方式输出人类可读的代码 如果您正在优化代码的某些部分以提高性能,那么这种能力可能非常有用。除了隐式应用程序之外,您还希望看到哪些其他翻译?如果这只是你在寻找的隐含信息,那么这可能是:@MichaelZajac我指的是语法糖翻译。例如,For comp

在这篇文章中,我看到scalac有一个
-Xlog implicit conversions
选项,它在编译期间显示隐式应用程序。还有
-Xprint:
选项,显示指定编译阶段后的程序代码

但是,在完成所有的语法转换和隐式转换(应用程序)后,是否有可能以某种方式输出人类可读的代码


如果您正在优化代码的某些部分以提高性能,那么这种能力可能非常有用。

除了隐式应用程序之外,您还希望看到哪些其他翻译?如果这只是你在寻找的隐含信息,那么这可能是:@MichaelZajac我指的是语法糖翻译。例如,For comprehension被翻译为foreach、flatMap、map、filter或withFilter。您提到的答案要求您知道隐式的应用位置,但我想知道显示所有隐式的方法。
reify
会有所帮助,但您只能在表达式上使用它,而不能在整个代码库中使用它。但是请记住,删除的语法糖分越多,代码的可读性就越差。因此,这实际上取决于“人类可读性”的界限。例如,像
x=>x+1
这样的匿名函数最终会扩展成非常丑陋的东西。