From 1fd3ac046aa061646e533dbd2197f7f88c014dcb Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 19 Mar 2020 12:26:04 +0300 Subject: [PATCH] [FIR] Throw exception if PSI type in ConeDiagnostic helper is improper --- .../fir/analysis/diagnostics/ConeDiagnostic.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/ConeDiagnostic.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/ConeDiagnostic.kt index 75cae4bb49e..48ff0bf9fde 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/ConeDiagnostic.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/ConeDiagnostic.kt @@ -16,21 +16,25 @@ class ConeDiagnostic( ) inline fun DiagnosticFactory0.onSource(source: FirSourceElement): ConeDiagnostic? { - val psi = source.psi as? E ?: return null + val psi = source.psi as? E + ?: throw IllegalArgumentException("Incompatible PSI: expected ${E::class}, actual ${source.psi?.let { it::class }}") return ConeDiagnostic(this.on(psi), source) } inline fun DiagnosticFactory1.onSource(source: FirSourceElement, a: A): ConeDiagnostic? { - val psi = source.psi as? E ?: return null + val psi = source.psi as? E + ?: throw IllegalArgumentException("Incompatible PSI: expected ${E::class}, actual ${source.psi?.let { it::class }}") return ConeDiagnostic(this.on(psi, a), source) } inline fun DiagnosticFactory2.onSource(source: FirSourceElement, a: A, b: B): ConeDiagnostic? { - val psi = source.psi as? E ?: return null + val psi = source.psi as? E + ?: throw IllegalArgumentException("Incompatible PSI: expected ${E::class}, actual ${source.psi?.let { it::class }}") return ConeDiagnostic(this.on(psi, a, b), source) } inline fun DiagnosticFactory3.onSource(source: FirSourceElement, a: A, b: B, c: C): ConeDiagnostic? { - val psi = source.psi as? E ?: return null + val psi = source.psi as? E + ?: throw IllegalArgumentException("Incompatible PSI: expected ${E::class}, actual ${source.psi?.let { it::class }}") return ConeDiagnostic(this.on(psi, a, b, c), source) }