[FIR] Make Volatile diagnostics applicable to kotlin.concurrent.Volatile

#KT-55628 Fixed
This commit is contained in:
Kirill Rakhman
2023-04-03 17:58:23 +02:00
committed by Space Team
parent 91adb88eff
commit 085df96afe
18 changed files with 96 additions and 153 deletions
@@ -1023,6 +1023,18 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirErrors.VOLATILE_ON_VALUE) { firDiagnostic ->
VolatileOnValueImpl(
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirErrors.VOLATILE_ON_DELEGATE) { firDiagnostic ->
VolatileOnDelegateImpl(
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirJsErrors.WRONG_JS_QUALIFIER) { firDiagnostic ->
WrongJsQualifierImpl(
firDiagnostic as KtPsiDiagnostic,
@@ -4400,18 +4412,6 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
token,
)
}
add(FirJvmErrors.VOLATILE_ON_VALUE) { firDiagnostic ->
VolatileOnValueImpl(
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirJvmErrors.VOLATILE_ON_DELEGATE) { firDiagnostic ->
VolatileOnDelegateImpl(
firDiagnostic as KtPsiDiagnostic,
token,
)
}
add(FirJvmErrors.SYNCHRONIZED_ON_ABSTRACT) { firDiagnostic ->
SynchronizedOnAbstractImpl(
firDiagnostic as KtPsiDiagnostic,
@@ -739,6 +739,14 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
abstract val symbols: List<KtSymbol>
}
abstract class VolatileOnValue : KtFirDiagnostic<KtAnnotationEntry>() {
override val diagnosticClass get() = VolatileOnValue::class
}
abstract class VolatileOnDelegate : KtFirDiagnostic<KtAnnotationEntry>() {
override val diagnosticClass get() = VolatileOnDelegate::class
}
abstract class WrongJsQualifier : KtFirDiagnostic<KtElement>() {
override val diagnosticClass get() = WrongJsQualifier::class
}
@@ -3066,14 +3074,6 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
override val diagnosticClass get() = StrictfpOnClass::class
}
abstract class VolatileOnValue : KtFirDiagnostic<KtAnnotationEntry>() {
override val diagnosticClass get() = VolatileOnValue::class
}
abstract class VolatileOnDelegate : KtFirDiagnostic<KtAnnotationEntry>() {
override val diagnosticClass get() = VolatileOnDelegate::class
}
abstract class SynchronizedOnAbstract : KtFirDiagnostic<KtAnnotationEntry>() {
override val diagnosticClass get() = SynchronizedOnAbstract::class
}
@@ -886,6 +886,16 @@ internal class AmbiguousAnnotationArgumentImpl(
override val token: KtLifetimeToken,
) : KtFirDiagnostic.AmbiguousAnnotationArgument(), KtAbstractFirDiagnostic<PsiElement>
internal class VolatileOnValueImpl(
override val firDiagnostic: KtPsiDiagnostic,
override val token: KtLifetimeToken,
) : KtFirDiagnostic.VolatileOnValue(), KtAbstractFirDiagnostic<KtAnnotationEntry>
internal class VolatileOnDelegateImpl(
override val firDiagnostic: KtPsiDiagnostic,
override val token: KtLifetimeToken,
) : KtFirDiagnostic.VolatileOnDelegate(), KtAbstractFirDiagnostic<KtAnnotationEntry>
internal class WrongJsQualifierImpl(
override val firDiagnostic: KtPsiDiagnostic,
override val token: KtLifetimeToken,
@@ -3702,16 +3712,6 @@ internal class StrictfpOnClassImpl(
override val token: KtLifetimeToken,
) : KtFirDiagnostic.StrictfpOnClass(), KtAbstractFirDiagnostic<KtAnnotationEntry>
internal class VolatileOnValueImpl(
override val firDiagnostic: KtPsiDiagnostic,
override val token: KtLifetimeToken,
) : KtFirDiagnostic.VolatileOnValue(), KtAbstractFirDiagnostic<KtAnnotationEntry>
internal class VolatileOnDelegateImpl(
override val firDiagnostic: KtPsiDiagnostic,
override val token: KtLifetimeToken,
) : KtFirDiagnostic.VolatileOnDelegate(), KtAbstractFirDiagnostic<KtAnnotationEntry>
internal class SynchronizedOnAbstractImpl(
override val firDiagnostic: KtPsiDiagnostic,
override val token: KtLifetimeToken,