diff --git a/idea/src/org/jetbrains/jet/plugin/completion/ToFromOriginalFileMapper.kt b/idea/src/org/jetbrains/jet/plugin/completion/ToFromOriginalFileMapper.kt index 77f488ec647..a46000c81e6 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/ToFromOriginalFileMapper.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/ToFromOriginalFileMapper.kt @@ -59,11 +59,13 @@ class ToFromOriginalFileMapper( } public fun toOriginalFile(declaration: JetDeclaration): JetDeclaration? { + if (declaration.getContainingFile() != syntheticFile) return declaration val offset = toOriginalFile(declaration.getTextRange().getStartOffset()) ?: return null return PsiTreeUtil.findElementOfClassAtOffset(originalFile, offset, javaClass(), true) } public fun toSyntheticFile(declaration: JetDeclaration): JetDeclaration? { + if (declaration.getContainingFile() != originalFile) return declaration val offset = toSyntheticFile(declaration.getTextRange().getStartOffset()) ?: return null return PsiTreeUtil.findElementOfClassAtOffset(syntheticFile, offset, javaClass(), true) } diff --git a/idea/src/org/jetbrains/jet/plugin/completion/smart/TypeInstantiationItems.kt b/idea/src/org/jetbrains/jet/plugin/completion/smart/TypeInstantiationItems.kt index f921808e4a4..4c0dd3e4dde 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/smart/TypeInstantiationItems.kt +++ b/idea/src/org/jetbrains/jet/plugin/completion/smart/TypeInstantiationItems.kt @@ -114,8 +114,8 @@ class TypeInstantiationItems( descriptor: ClassDescriptor, kotlinClassDescriptor: ClassDescriptor, typeArgs: List, tail: Tail? ) { val _declaration = DescriptorToSourceUtils.descriptorToDeclaration(descriptor) ?: return - val declaration = if (_declaration.getContainingFile() == toFromOriginalFileMapper.syntheticFile) - toFromOriginalFileMapper.toOriginalFile(_declaration as JetDeclaration) ?: return + val declaration = if (_declaration is JetDeclaration) + toFromOriginalFileMapper.toOriginalFile(_declaration) ?: return else _declaration @@ -281,10 +281,7 @@ class TypeInstantiationItems( for (inheritor in ClassInheritorsSearch.search(parameters)) { val descriptor = if (inheritor is KotlinLightClass) { val origin = inheritor.origin ?: continue - val declaration = if (origin.getContainingFile() == toFromOriginalFileMapper.originalFile) - toFromOriginalFileMapper.toSyntheticFile(origin) ?: continue - else - origin + val declaration = toFromOriginalFileMapper.toSyntheticFile(origin) ?: continue resolutionFacade.resolveToDescriptor(declaration) } else {