通过 DynamicClassLoader 加载的类返回 .getPackage 的值为 nil。CIDER 和 vim-fireplace 等工具依赖于此信息来实现诸如完成提示等功能。
(.getPackage String) ;; => #<Package package java.lang, Java Platform API Specification, version 1.7> (deftype T []) (.getPackage T) ;; => nil
建议:在 DynamicClassLoader.defineClass() 期间,对正在定义的类调用 definePackage() (类似于 URLClassLoader 所做的)。
补丁:clj-1550-v4.patch
审核人员:Alex Miller