Added firstOrNullIsInstance and firstIsInstance methods

This commit is contained in:
Valentin Kipyatkov
2014-11-19 22:33:24 +03:00
parent 46c393d2db
commit a0c9c0e7b2
6 changed files with 46 additions and 7 deletions
@@ -24,12 +24,12 @@ import org.jetbrains.jet.lang.psi.JetPsiFactory
import com.intellij.psi.PsiWhiteSpace
import com.intellij.psi.PsiErrorElement
import org.jetbrains.jet.lang.psi.JetCallableDeclaration
import org.jetbrains.jet.utils.addToStdlib.firstOrNullIsInstance
fun getTypeReference(declaration: JetCallableDeclaration): JetTypeReference? {
return declaration.getFirstChild()!!.siblings(forward = true)
.dropWhile { it.getNode()!!.getElementType() != JetTokens.COLON }
.filterIsInstance(javaClass<JetTypeReference>())
.firstOrNull()
.firstOrNullIsInstance<JetTypeReference>()
}
fun setTypeReference(declaration: JetCallableDeclaration, addAfter: PsiElement?, typeRef: JetTypeReference?): JetTypeReference? {
@@ -32,9 +32,9 @@ import org.jetbrains.jet.lang.resolve.TypeResolver.FlexibleTypeCapabilitiesProvi
import kotlin.platform.platformStatic
import org.jetbrains.jet.storage.StorageManager
import org.jetbrains.jet.context.LazinessToken
import javax.inject.Inject
import org.jetbrains.jet.lang.resolve.lazy.LazyEntity
import org.jetbrains.jet.lang.resolve.lazy.ForceResolveUtil
import org.jetbrains.jet.utils.addToStdlib.firstOrNullIsInstance
public class TypeResolver(
private val annotationResolver: AnnotationResolver,
@@ -276,7 +276,7 @@ public class TypeResolver(
public fun resolveClass(scope: JetScope, userType: JetUserType, trace: BindingTrace): ClassifierDescriptor? {
val classifierDescriptor = qualifiedExpressionResolver.lookupDescriptorsForUserType(userType, scope, trace)
.filterIsInstance(javaClass<ClassifierDescriptor>()).firstOrNull()
.firstOrNullIsInstance<ClassifierDescriptor>()
if (classifierDescriptor != null) {
ImportsResolver.reportPlatformClassMappedToKotlin(moduleDescriptor, trace, userType, classifierDescriptor)
}