Fix getModuleInfo for elements in code fragments

This commit is contained in:
Pavel V. Talanov
2014-11-19 17:20:03 +03:00
parent 03a31db2ec
commit 2c9b0448a1
@@ -33,12 +33,7 @@ fun PsiElement.getModuleInfo(): IdeaModuleInfo {
return NotUnderContentRootModuleInfo
}
if (this is KotlinLightElement<*, *>)
return this.getModuleInfoForLightElement()
if (this is JetCodeFragment)
return this.getContext()?.getModuleInfo()
?: logAndReturnDefault("Analyzing code fragment of type $javaClass with no context element\nText:\n${getText()}")
if (this is KotlinLightElement<*, *>) return this.getModuleInfoForLightElement()
val containingJetFile = (this as? JetElement)?.getContainingFile() as? JetFile
val context = containingJetFile?.analysisContext
@@ -51,6 +46,11 @@ fun PsiElement.getModuleInfo(): IdeaModuleInfo {
)
}
if (containingJetFile is JetCodeFragment) {
return containingJetFile.getContext()?.getModuleInfo()
?: logAndReturnDefault("Analyzing code fragment of type ${containingJetFile.javaClass} with no context element\nText:\n${containingJetFile.getText()}")
}
val project = getProject()
val containingFile = getContainingFile()
?: return logAndReturnDefault("Analyzing element of type $javaClass with no containing file\nText:\n${getText()}")