Sealed classes are not taken into account in live templates

This commit is contained in:
Mikhail Glukhikh
2015-12-09 17:53:45 +03:00
parent 9a4eb2a368
commit f319b1b93a
@@ -27,7 +27,7 @@ import com.intellij.psi.PsiNamedElement
import com.intellij.psi.util.PsiTreeUtil
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.descriptors.isFinal
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.idea.caches.resolve.analyze
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
import org.jetbrains.kotlin.idea.util.getResolutionScope
@@ -74,7 +74,9 @@ class AnonymousSuperMacro : Macro() {
return resolutionScope
.collectDescriptorsFiltered(DescriptorKindFilter.NON_SINGLETON_CLASSIFIERS)
.filter { it is ClassDescriptor && !it.isFinal && (it.kind == ClassKind.CLASS || it.kind == ClassKind.INTERFACE) }
.filter { it is ClassDescriptor &&
(it.modality == Modality.OPEN || it.modality == Modality.ABSTRACT) &&
(it.kind == ClassKind.CLASS || it.kind == ClassKind.INTERFACE) }
.mapNotNull { DescriptorToSourceUtils.descriptorToDeclaration(it) as PsiNamedElement? }
}
}