У меня есть эта функция в пространстве имен, не импортировать/требуется/использовать любые другие пакеты:Как неоднозначность в Clojure
(defn crash [msg]
(throw (Throwable. msg)))
Курсив (IntelliJ IDEA IDE Plugin) выдвигает на первый план Throwable
и дает мне сообщение Cannot disambiguate overloads of Throwable
, Я получаю то же сообщение с Exception
и Error
.
Я не понимаю источник этого сообщения. Я сомневаюсь, что эти классы Java определены в любых других файлах jar, кроме Java-языков. Все, что я могу сделать, чтобы это сообщение исчезло?
Они находятся в project.clj
:
:dependencies [[org.clojure/clojure "1.6.0"]
[net.mikera/imagez "0.8.0"]
[org.clojure/math.numeric-tower "0.0.4"]]
Как диагностика, так и решение здесь верны - я должен, вероятно, сделать это сообщение более дружелюбным. Cursive пытается предупредить, когда interop потребует отражения, используя ту же логику, что и компилятор. – Colin
@Colin вы можете перечислить перегрузки кандидата? – cgrand
Да, я пробовал это, но подсказки иногда становились чрезвычайно большими. Я попробую еще раз и посмотрю, смогу ли я обойти это. – Colin