Обычно вы получаете эту пару уведомлений об устаревании в Ruby 2.7:
предупреждение: использование последнего аргумента в качестве параметров ключевого слова не рекомендуется; возможно ** следует добавить к предупреждению о вызове
: здесь определяется вызываемый метод `[имя метода] '
Но я вижу второе предупреждение без соответствующего уведомления об устаревании. Вот два примера определения метода и вызова, где это происходит.
def method1(x:)
end
method1(x: "x")
def method2(x, y: [])
end
method2("x", y: [1])
method2("x")
Примечание: Если я поместил вышеупомянутое в отдельный файл ruby, он запускается без предупреждений (я явно запустил его с флагом предупреждения для убедитесь).
Я мог бы пропустить вызов где-нибудь, но, предположив, что нет, почему я увидел бы предупреждение помощника, сообщающее, где метод определен без соответствующего уведомления об устаревании?