FIR Preserve nullability of ConeErrorType when possible
This commit is contained in:
committed by
Space Team
parent
217550d10e
commit
16644c1a3b
@@ -9,6 +9,10 @@ interface ConeDiagnostic {
|
||||
val reason: String
|
||||
}
|
||||
|
||||
interface ConeDiagnosticWithNullability : ConeDiagnostic {
|
||||
val isNullable: Boolean
|
||||
}
|
||||
|
||||
class ConeStubDiagnostic(val original: ConeDiagnostic) : ConeDiagnostic {
|
||||
override val reason: String get() = original.reason
|
||||
}
|
||||
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.fir.types
|
||||
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnosticWithNullability
|
||||
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
||||
import org.jetbrains.kotlin.fir.symbols.ConeClassifierLookupTag
|
||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||
@@ -50,7 +51,9 @@ class ConeErrorType(
|
||||
get() = ConeClassLikeErrorLookupTag(ClassId.fromString("<error>"))
|
||||
|
||||
override val nullability: ConeNullability
|
||||
get() = ConeNullability.UNKNOWN
|
||||
get() = if (diagnostic is ConeDiagnosticWithNullability) {
|
||||
if (diagnostic.isNullable) ConeNullability.NULLABLE else ConeNullability.NOT_NULL
|
||||
} else ConeNullability.UNKNOWN
|
||||
|
||||
override fun equals(other: Any?) = this === other
|
||||
override fun hashCode(): Int = System.identityHashCode(this)
|
||||
|
||||
Reference in New Issue
Block a user