Uast: findPlugin relies on containingFile first

and uses workaround for KT-18054
This commit is contained in:
Nicolay Mitropolsky
2017-11-10 10:23:13 +01:00
parent 3ba6975ecd
commit 10dfa05277
@@ -42,7 +42,11 @@ class UastContext(val project: Project) : UastLanguagePlugin {
get() = UastLanguagePlugin.getInstances()
fun findPlugin(element: PsiElement): UastLanguagePlugin? {
val language = element.language
// we're searching for plugin for file because sometimes java elements are used in another languages (see Drools)
val containingFile = element.containingFile?.takeIf {
it !is PsiCompiledFile // Don't trust compiled files because of KT-18054
}
val language = (containingFile ?: element).language
return languagePlugins.firstOrNull { it.language == language }
}