Как отладить project.clj, чтобы найти, какая зависимость нарушает компиляцию моего проекта - PullRequest
0 голосов
/ 05 декабря 2018

Я только что обновил свою систему с Java 8 до версии OpenJDK Java 11.У меня есть один проект, который не будет компилироваться, и я получаю следующую ошибку:

Java.lang.IllegalArgumentException: Must hint overloaded method: 
toArray, compiling:(flatland/ordered/set.clj:19:1)
Exception in thread "main" java.lang.IllegalArgumentException: Must 
hint overloaded method: toArray, compiling: 
(flatland/ordered/set.clj:19:1)

Судя по всему, эта ошибка была исправлена ​​здесь: https://dev.clojure.org/jira/browse/CLJ-2374

Поэтому я обновляю свойпроект для clojure 1.10.0-RC3, и теперь я получаю эту ошибку:

Syntax error compiling deftype* at (flatland/ordered/set.clj:19:1).
Exception in thread "main" Syntax error compiling deftype* at 
(flatland/ordered/set.clj:19:1).

Кто-нибудь видел эту ошибку ИЛИ есть ли способ расширить сообщения об ошибках Clojure, чтобы показать мне, какая зависимость в моем проектеошибка во время компиляции (может быть несколько)?

Я также заметил, что я скопировал список зависимостей, который был неудачным в моем первом проекте, в новый проект, и новый проект скомпилирован.Однако я не ссылался на зависимости или вызывал функции из списка deps.Приносит ли Clojure зависимости / библиотеки, а затем ссылается на необходимые зависимости от библиотек, которые включены в мой project.clj?

EDIT *** Я обнаружил, что это, скорее всего, ошибка.

https://github.com/amalloy/ordered/pull/37

1 Ответ

0 голосов
/ 05 декабря 2018

У вас уже есть ответ, хотя я думал, что оставлю свой общий процесс для этого случая, это полезно для людей, которые придут позже:

  • поворот любого автоматического AOT в моем инструменте, чтобы я могполучить ответ без проблем, вызывающий проблему.
  • загружать пространства имен по одному, пока не найду место, вызывающее проблему (обычно это не занимает много времени; -)
  • закомментируйте половину зависимостейэтого пространства имен и оцените форму ns в верхней части файла.
  • выполняйте бинарный поиск, пока я не найду один или два, которые его запускают
  • загрузите только эту зависимость в проекте отходов.
  • ... много усилий ...
  • УСПЕХ!
...