Como o Scala sabe a diferença entre “def foo” e “def foo ()”?
Eu sei sobre a diferença de uso entre os métodos de parâmetro vazio e sem parâmetros em scala, e minha pergunta pertence ao arquivo de classe gerado. Quando olho para essas duas classes no javap, elas parecem exatamente as mesmas:
class Foo {
def bar() = 123;
}
class Foo {
def bar = 123;
}
Mas quando olho para eles em escalpel, eles refletem com precisão as listas de parâmetros. Onde no arquivo de classe é scalac fazendo essa distinção conhecida?