FIR IDE: Allow FIR-specific "after" files for
AbstractHighLevelQuickFixTest.
This commit is contained in:
committed by
Ilya Kirillov
parent
14ca2d207d
commit
e9298d1d71
+12
-1
@@ -7,7 +7,9 @@ package org.jetbrains.kotlin.idea.quickfix
|
||||
|
||||
import com.intellij.codeInsight.intention.IntentionAction
|
||||
import com.intellij.codeInspection.InspectionProfileEntry
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import org.jetbrains.kotlin.test.uitls.IgnoreTests
|
||||
import java.io.File
|
||||
import java.nio.file.Paths
|
||||
|
||||
|
||||
@@ -15,7 +17,7 @@ abstract class AbstractHighLevelQuickFixTest : AbstractQuickFixTest() {
|
||||
override fun doTest(beforeFileName: String) {
|
||||
IgnoreTests.runTestIfEnabledByFileDirective(
|
||||
Paths.get(beforeFileName),
|
||||
enableTestDirective = IgnoreTests.DIRECTIVES.FIR_COMPARISON_MUTLTILINE_COMMENT,
|
||||
enableTestDirective = IgnoreTests.DIRECTIVES.FIR_COMPARISON_MULTILINE_COMMENT,
|
||||
directivePosition = IgnoreTests.DirectivePosition.LAST_LINE_IN_FILE,
|
||||
additionalFilesExtensions = arrayOf("after")
|
||||
) {
|
||||
@@ -23,6 +25,15 @@ abstract class AbstractHighLevelQuickFixTest : AbstractQuickFixTest() {
|
||||
}
|
||||
}
|
||||
|
||||
override fun getAfterFileName(beforeFileName: String): String {
|
||||
val firAfterFile = File(testPath(beforeFileName + ".fir.after"))
|
||||
return if (firAfterFile.exists()) {
|
||||
firAfterFile.name
|
||||
} else {
|
||||
super.getAfterFileName(beforeFileName)
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Enable these as more actions/inspections are enabled, and/or add more FIR-specific directives
|
||||
override fun checkForUnexpectedErrors() {}
|
||||
override fun checkAvailableActionsAreExpected(actions: List<IntentionAction>) {}
|
||||
|
||||
@@ -170,7 +170,7 @@ object IgnoreTests {
|
||||
|
||||
object DIRECTIVES {
|
||||
const val FIR_COMPARISON = "// FIR_COMPARISON"
|
||||
const val FIR_COMPARISON_MUTLTILINE_COMMENT = "/* FIR_COMPARISON */"
|
||||
const val FIR_COMPARISON_MULTILINE_COMMENT = "/* FIR_COMPARISON */"
|
||||
const val IGNORE_FIR = "// IGNORE_FIR"
|
||||
const val FIX_ME = "// FIX_ME: "
|
||||
}
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
class A() {
|
||||
<caret>abstract fun foo() {}
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
+1
-1
@@ -2,4 +2,4 @@
|
||||
class A() {
|
||||
fun foo() {}
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -8,4 +8,4 @@ class Owner {
|
||||
<caret>abstract val x: Int
|
||||
}
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -2,4 +2,4 @@
|
||||
class A() {
|
||||
<caret>abstract var i : Int
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
+1
-1
@@ -2,4 +2,4 @@
|
||||
abstract class A() {
|
||||
<caret>abstract var i : Int
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -2,4 +2,4 @@
|
||||
class A() {
|
||||
<caret>abstract var i : Int = 0
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
+1
-1
@@ -2,4 +2,4 @@
|
||||
class A() {
|
||||
var i : Int = 0
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -2,4 +2,4 @@
|
||||
public class A() {
|
||||
<caret>abstract var i : Int
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
+1
-1
@@ -2,4 +2,4 @@
|
||||
public abstract class A() {
|
||||
<caret>abstract var i : Int
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -3,4 +3,4 @@ class B {
|
||||
<caret>abstract val i: Int = 0
|
||||
get() = field
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -3,4 +3,4 @@ class B {
|
||||
val i: Int = 0
|
||||
get() = field
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -2,4 +2,4 @@
|
||||
class A {
|
||||
<caret>abstract var i = 0
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -2,4 +2,4 @@
|
||||
class A {
|
||||
<caret>var i = 0
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -3,4 +3,4 @@ class B {
|
||||
abstract<caret> var j: Int = 0
|
||||
set(v: Int) {}
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -3,4 +3,4 @@ class B {
|
||||
var j: Int = 0
|
||||
set(v: Int) {}
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -7,4 +7,4 @@ enum class E {
|
||||
|
||||
abstract fun foo()
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -10,4 +10,4 @@ interface I {
|
||||
}
|
||||
|
||||
inline class A<caret> : I
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -8,4 +8,4 @@
|
||||
object O {
|
||||
<caret>fun foo()
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
+1
-1
@@ -6,4 +6,4 @@
|
||||
// ERROR: Function 'foo' must have a body
|
||||
|
||||
<caret>fun foo()
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
+1
-1
@@ -19,4 +19,4 @@ object Impl : D, E {
|
||||
}
|
||||
|
||||
<caret>class X : D by Impl, E by Impl {}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
+1
-1
@@ -2,4 +2,4 @@
|
||||
sealed class A() {
|
||||
fun <caret>i() : Int
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
+1
-1
@@ -2,4 +2,4 @@
|
||||
sealed class A() {
|
||||
abstract fun <caret>i() : Int
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -2,4 +2,4 @@
|
||||
class A() {
|
||||
fun <caret>foo()
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -2,4 +2,4 @@
|
||||
class A() {
|
||||
fun <caret>foo() {}
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
+1
-1
@@ -2,4 +2,4 @@
|
||||
abstract class B() {
|
||||
open fun <caret>foo()
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
+1
-1
@@ -2,4 +2,4 @@
|
||||
abstract class B() {
|
||||
abstract fun <caret>foo()
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
+1
-1
@@ -11,4 +11,4 @@ fun foo() {
|
||||
val test: Some? = Some()
|
||||
for (i in <caret>test) { }
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -3,4 +3,4 @@ abstract class My {
|
||||
abstract var foo: Int
|
||||
<caret>private set
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -3,4 +3,4 @@ abstract class My {
|
||||
abstract var foo: Int
|
||||
set
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
+1
-1
@@ -4,4 +4,4 @@ class A() {
|
||||
abstract class <caret>C
|
||||
}
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -4,4 +4,4 @@ class A() {
|
||||
abstract inner class C
|
||||
}
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -5,4 +5,4 @@ class A() {
|
||||
}
|
||||
}
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -5,4 +5,4 @@ class A() {
|
||||
}
|
||||
}
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -2,4 +2,4 @@
|
||||
class A() {
|
||||
<caret>open fun foo() {}
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -2,4 +2,4 @@
|
||||
open class A() {
|
||||
<caret>open fun foo() {}
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -2,4 +2,4 @@
|
||||
class A() {
|
||||
<caret>open fun foo() {}
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -2,4 +2,4 @@
|
||||
class A() {
|
||||
<caret>fun foo() {}
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -2,4 +2,4 @@
|
||||
public class A() {
|
||||
<caret>open fun foo() {}
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -2,4 +2,4 @@
|
||||
public open class A() {
|
||||
<caret>open fun foo() {}
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -2,4 +2,4 @@
|
||||
@Deprecated("") class A() {
|
||||
<caret>open fun foo() {}
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -3,4 +3,4 @@
|
||||
open class A() {
|
||||
open fun foo() {}
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -3,4 +3,4 @@ open class My {
|
||||
open var foo = 42
|
||||
<caret>private set
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -3,4 +3,4 @@ open class My {
|
||||
var foo = 42
|
||||
<caret>private set
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -3,4 +3,4 @@ open class My {
|
||||
open var foo = 42
|
||||
<caret>private set
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -3,4 +3,4 @@ open class My {
|
||||
open var foo = 42
|
||||
<caret>set
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -7,4 +7,4 @@ open class FooImpl : Foo {
|
||||
override var bar: String = ""
|
||||
<caret>private set
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -7,4 +7,4 @@ open class FooImpl : Foo {
|
||||
final override var bar: String = ""
|
||||
<caret>private set
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -7,4 +7,4 @@ open class FooImpl : Foo {
|
||||
override var bar: String = ""
|
||||
<caret>private set
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
@@ -7,4 +7,4 @@ open class FooImpl : Foo {
|
||||
override var bar: String = ""
|
||||
<caret>set
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
Vendored
+1
-1
@@ -12,4 +12,4 @@ interface C : A, B {
|
||||
override fun foo(): <caret>Long
|
||||
}
|
||||
|
||||
/* FIR_COMPARISON */
|
||||
/* FIR_COMPARISON */
|
||||
+2
-1
@@ -5,4 +5,5 @@ fun foo(a: String?) {
|
||||
// comment2
|
||||
.<caret>length
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
// FIR_IDENTICAL
|
||||
/* FIR_COMPARISON */
|
||||
|
||||
@@ -5,4 +5,5 @@ fun foo(a: String?) {
|
||||
// comment2
|
||||
?.length
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
// FIR_IDENTICAL
|
||||
/* FIR_COMPARISON */
|
||||
|
||||
+2
-1
@@ -4,4 +4,5 @@ fun foo(a: String?) {
|
||||
val b = a
|
||||
.<caret>length
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
// FIR_IDENTICAL
|
||||
/* FIR_COMPARISON */
|
||||
|
||||
@@ -4,4 +4,5 @@ fun foo(a: String?) {
|
||||
val b = a
|
||||
?.length
|
||||
}
|
||||
/* FIR_COMPARISON */
|
||||
// FIR_IDENTICAL
|
||||
/* FIR_COMPARISON */
|
||||
|
||||
@@ -191,7 +191,7 @@ abstract class AbstractQuickFixTest : KotlinLightCodeInsightFixtureTestCase(), Q
|
||||
)
|
||||
}
|
||||
|
||||
myFixture.checkResultByFile(File(fileName).name + ".after")
|
||||
myFixture.checkResultByFile(getAfterFileName(fileName))
|
||||
|
||||
if (stubComparisonFailure != null) {
|
||||
throw stubComparisonFailure
|
||||
@@ -201,6 +201,10 @@ abstract class AbstractQuickFixTest : KotlinLightCodeInsightFixtureTestCase(), Q
|
||||
}
|
||||
}
|
||||
|
||||
protected open fun getAfterFileName(beforeFileName: String): String {
|
||||
return File(beforeFileName).name + ".after"
|
||||
}
|
||||
|
||||
@Throws(ClassNotFoundException::class)
|
||||
private fun checkForUnexpectedActions() {
|
||||
val text = myFixture.editor.document.text
|
||||
|
||||
Reference in New Issue
Block a user