Use ServiceLoader instead of IntelliJ extensions for DefaultErrorMessages

#KT-10473 Fixed
This commit is contained in:
Alexander Udalov
2017-10-20 20:01:19 +02:00
parent 1c6dce3674
commit 1a8be635b9
24 changed files with 128 additions and 109 deletions
@@ -17,15 +17,17 @@
package org.jetbrains.kotlin.android.parcel.quickfixes
import kotlinx.android.parcel.Parcelize
import org.jetbrains.kotlin.diagnostics.DiagnosticWithParameters1
import org.jetbrains.kotlin.android.synthetic.diagnostic.ErrorsAndroid
import org.jetbrains.kotlin.diagnostics.Errors
import org.jetbrains.kotlin.idea.util.addAnnotation
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.KtClassOrObject
import org.jetbrains.kotlin.psi.KtPsiFactory
class AnnotateWithParcelizeQuickFix(clazz: KtClassOrObject) : AbstractParcelableQuickFix<KtClassOrObject>(clazz) {
object Factory : AbstractFactory({
@Suppress("UNCHECKED_CAST")
val targetClass = (this as DiagnosticWithParameters1<*, KtClassOrObject>).a
val diagnostic = Errors.PLUGIN_ERROR.cast(this).a
val targetClass = ErrorsAndroid.CLASS_SHOULD_BE_PARCELIZE.cast(diagnostic.diagnostic).a
AnnotateWithParcelizeQuickFix(targetClass)
})
@@ -34,4 +36,4 @@ class AnnotateWithParcelizeQuickFix(clazz: KtClassOrObject) : AbstractParcelable
override fun invoke(ktPsiFactory: KtPsiFactory, element: KtClassOrObject) {
element.addAnnotation(FqName(Parcelize::class.java.name))
}
}
}