Я пишу сложное пользовательское правило lint для анализа смешанных java / kotlin источников в контексте сборки gradle.
psiClass.containingFile
возвращает PsiFile
.
Для класс java, кажется, всегда возвращает исходный файл класса 'java. Однако для класса kotlin он возвращает путь к скомпилированному файлу .class
, что-то вроде:
.../build/tmp/kotlin-classes/debug/.../MyClass.class
Можно перехватить исходные файлы "пассивным" способом, реализовав visitFile()
, но я Я хотел бы сделать это "активным" способом, при навигации по классам в любой точке, имеющей PsiClass
Я хотел бы перейти к AST его исходного файла и проанализировать его.
Есть ли способ попасть в UAST содержащего kotlin источника файла?