Редактировать : По словам людей, лучше информированных, чем я, следующий ответ на самом деле неверен: см. этот ответ . Спасибо Аарону Новструпу за указание на это.
Это на самом деле причуда парсера , а не системы типов или компилятора. Scala позволяет вызывать функции с нулевым или одним аргументом без скобок, но не с функциями с более чем одним аргументом. Так как Фред Хаслам говорит , то, что вы написали , не является вызовом с двумя аргументами, это вызов с одним аргументом с кортежем. Однако, если метод действительно принимает два аргумента, вызов будет вызовом из двух аргументов. Кажется, что смысл кода влияет на то, как он анализирует (что немного неприятно).
Что касается того, что вы на самом деле можете сделать, это сложно. Если метод действительно требует двух аргументов, эта проблема исчезнет (то есть, если кто-то по ошибке попытается вызвать его с одним или тремя аргументами, он получит ошибку компиляции, как вы ожидаете). Не думаете ли вы, что добавили в этот метод какой-то дополнительный параметр? :)