package com.intellij.codeInspection.tests.kotlin import com.intellij.jvm.analysis.internal.testFramework.ObsoleteApiUsageInspectionTestBase import com.intellij.jvm.analysis.testFramework.JvmLanguage import org.jetbrains.kotlin.idea.test.ExpectedPluginModeProvider import org.jetbrains.kotlin.idea.test.setUpWithKotlinPlugin abstract class KotlinObsoleteApiUsageInspectionTest : ObsoleteApiUsageInspectionTestBase(), ExpectedPluginModeProvider { override fun setUp() { setUpWithKotlinPlugin(testRootDisposable) { super.setUp() } } fun `test direct usage`() { myFixture.testHighlighting(JvmLanguage.KOTLIN, """ class B { fun f(a: A) { a.f(); } } """.trimIndent()) } fun `test override`() { myFixture.testHighlighting(JvmLanguage.KOTLIN, """ class C : A() { override fun f() { } } @org.jetbrains.annotations.ApiStatus.Obsolete class D : A() { override fun f() { } } """.trimIndent()) } fun `test generic reference`() { myFixture.addClass("@org.jetbrains.annotations.ApiStatus.Obsolete public interface I {}") myFixture.testHighlighting(JvmLanguage.KOTLIN, """ class U { fun u(i: I) = i } """.trimIndent()) } }