[NI] Add checking @NotNull parameters for candidates
This commit is contained in:
+1
-1
@@ -215,7 +215,7 @@ private object EnhancedTypeAnnotationDescriptor : AnnotationDescriptor {
|
||||
override fun toString() = "[EnhancedType]"
|
||||
}
|
||||
|
||||
internal class NotNullTypeParameter(override val delegate: SimpleType) : CustomTypeVariable, DelegatingSimpleType() {
|
||||
internal class NotNullTypeParameter(override val delegate: SimpleType) : NotNullTypeVariable, DelegatingSimpleType() {
|
||||
|
||||
override val isTypeVariable: Boolean
|
||||
get() = true
|
||||
|
||||
@@ -27,6 +27,10 @@ interface CustomTypeVariable {
|
||||
fun substitutionResult(replacement: KotlinType): KotlinType
|
||||
}
|
||||
|
||||
// That interface is needed to provide information about definitely not null
|
||||
// type parameters (e.g. from @NotNull annotation) to type system
|
||||
interface NotNullTypeVariable : CustomTypeVariable
|
||||
|
||||
fun KotlinType.isCustomTypeVariable(): Boolean = (unwrap() as? CustomTypeVariable)?.isTypeVariable ?: false
|
||||
fun KotlinType.getCustomTypeVariable(): CustomTypeVariable? =
|
||||
(unwrap() as? CustomTypeVariable)?.let {
|
||||
|
||||
@@ -333,6 +333,10 @@ interface ClassicTypeSystemContext : TypeSystemInferenceExtensionContext {
|
||||
return builtIns.nothingType
|
||||
}
|
||||
|
||||
override fun anyType(): SimpleTypeMarker {
|
||||
return builtIns.anyType
|
||||
}
|
||||
|
||||
val builtIns: KotlinBuiltIns get() = throw UnsupportedOperationException("Not supported")
|
||||
|
||||
override fun KotlinTypeMarker.makeDefinitelyNotNullOrNotNull(): KotlinTypeMarker {
|
||||
|
||||
@@ -49,6 +49,7 @@ interface TypeSystemBuiltInsContext {
|
||||
fun nullableNothingType(): SimpleTypeMarker
|
||||
fun nullableAnyType(): SimpleTypeMarker
|
||||
fun nothingType(): SimpleTypeMarker
|
||||
fun anyType(): SimpleTypeMarker
|
||||
}
|
||||
|
||||
interface TypeSystemTypeFactoryContext {
|
||||
|
||||
Reference in New Issue
Block a user