diff --git a/idea/idea-completion/testData/basic/common/ClassRedeclaration2.kt b/idea/idea-completion/testData/basic/common/ClassRedeclaration2.kt
index 92923b44cff..3432ee1fa20 100644
--- a/idea/idea-completion/testData/basic/common/ClassRedeclaration2.kt
+++ b/idea/idea-completion/testData/basic/common/ClassRedeclaration2.kt
@@ -1,4 +1,3 @@
-// FIR_COMPARISON
class A {
fun f() : A
}
diff --git a/idea/idea-completion/testData/basic/common/ObjectRedeclaration2.kt b/idea/idea-completion/testData/basic/common/ObjectRedeclaration2.kt
index 6fddff733e4..414eb30ff14 100644
--- a/idea/idea-completion/testData/basic/common/ObjectRedeclaration2.kt
+++ b/idea/idea-completion/testData/basic/common/ObjectRedeclaration2.kt
@@ -1,4 +1,3 @@
-// FIR_COMPARISON
object A {
fun f() : S
}
diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/checkers/AbstractFirPsiCheckerTest.kt b/idea/idea-fir/tests/org/jetbrains/kotlin/checkers/AbstractFirPsiCheckerTest.kt
index 9c18af86cd4..dccabc251a7 100644
--- a/idea/idea-fir/tests/org/jetbrains/kotlin/checkers/AbstractFirPsiCheckerTest.kt
+++ b/idea/idea-fir/tests/org/jetbrains/kotlin/checkers/AbstractFirPsiCheckerTest.kt
@@ -6,6 +6,8 @@
package org.jetbrains.kotlin.checkers
import com.intellij.rt.execution.junit.FileComparisonFailure
+import org.jetbrains.kotlin.idea.completion.FIR_COMPARISON
+import org.jetbrains.kotlin.idea.completion.runTestWithCustomEnableDirective
import org.jetbrains.kotlin.idea.test.withCustomCompilerOptions
import org.jetbrains.kotlin.idea.withPossiblyDisabledDuplicatedFirSourceElementsException
import org.jetbrains.kotlin.test.InTextDirectivesUtils
@@ -16,13 +18,11 @@ abstract class AbstractFirPsiCheckerTest : AbstractPsiCheckerTest() {
override fun isFirPlugin(): Boolean = true
- override fun setUp() {
- super.setUp()
- }
-
override fun doTest(filePath: String) {
- myFixture.configureByFile(fileName())
- checkHighlighting(checkWarnings = false, checkInfos = false, checkWeakWarnings = false)
+ runTestWithCustomEnableDirective(FIR_COMPARISON, testDataFile()) {
+ myFixture.configureByFile(fileName())
+ checkHighlighting(checkWarnings = false, checkInfos = false, checkWeakWarnings = false)
+ }
}
override fun checkHighlighting(
@@ -30,27 +30,15 @@ abstract class AbstractFirPsiCheckerTest : AbstractPsiCheckerTest() {
checkInfos: Boolean,
checkWeakWarnings: Boolean
): Long {
- val file = file
val fileText = file.text
return withCustomCompilerOptions(fileText, project, module) {
- val doComparison = InTextDirectivesUtils.isDirectiveDefined(myFixture.file.text, "FIR_COMPARISON")
try {
withPossiblyDisabledDuplicatedFirSourceElementsException(fileText) {
myFixture.checkHighlighting(checkWarnings, checkInfos, checkWeakWarnings)
}
} catch (e: FileComparisonFailure) {
- if (doComparison) {
- // Even this is very partial check (only error compatibility, no warnings / infos)
- throw FileComparisonFailure(e.message, e.expected, e.actual, File(e.filePath).absolutePath)
- } else {
- // Here we just check that we haven't crashed due to exception
- 0
- }
+ throw FileComparisonFailure(e.message, e.expected, e.actual, File(e.filePath).absolutePath)
}
}
}
-
- override fun tearDown() {
- super.tearDown()
- }
}
\ No newline at end of file
diff --git a/idea/testData/checker/ClassObjectInEnum.kt b/idea/testData/checker/ClassObjectInEnum.kt
index b3580c5fac2..3bd384bcbcd 100644
--- a/idea/testData/checker/ClassObjectInEnum.kt
+++ b/idea/testData/checker/ClassObjectInEnum.kt
@@ -1,3 +1,4 @@
+// FIR_COMPARISON
enum class E {
ENTRY;
diff --git a/idea/testData/checker/Nullability.kt b/idea/testData/checker/Nullability.kt
index b2c32fb7e98..fca42959394 100644
--- a/idea/testData/checker/Nullability.kt
+++ b/idea/testData/checker/Nullability.kt
@@ -1,3 +1,4 @@
+// FIR_COMPARISON
fun test() {
val a : Int? = 0
if (a != null) {
diff --git a/idea/testData/checker/Redeclaration.kt b/idea/testData/checker/Redeclaration.kt
index 26b2c75e6ab..cfdb80e5483 100644
--- a/idea/testData/checker/Redeclaration.kt
+++ b/idea/testData/checker/Redeclaration.kt
@@ -1,3 +1,4 @@
+// IGNORE_FIR
// !DIAGNOSTICS: -DUPLICATE_CLASS_NAMES
val a : Int = 1
val a : Int = 1
diff --git a/idea/testData/checker/SupertypeListChecks.kt b/idea/testData/checker/SupertypeListChecks.kt
index 0eb8dd60c24..11f963ca348 100644
--- a/idea/testData/checker/SupertypeListChecks.kt
+++ b/idea/testData/checker/SupertypeListChecks.kt
@@ -1,3 +1,4 @@
+// IGNORE_FIR
// KT-286 Check supertype lists
/*
diff --git a/idea/testData/checker/TraitSupertypeList.kt b/idea/testData/checker/TraitSupertypeList.kt
index 505131f1cf9..5996062ddb4 100644
--- a/idea/testData/checker/TraitSupertypeList.kt
+++ b/idea/testData/checker/TraitSupertypeList.kt
@@ -1,3 +1,5 @@
+// IGNORE_FIR
+
open class bar()
interface Foo() : bar(), bar, bar {
diff --git a/idea/testData/checker/infos/CapturedConstructorParameter.kt b/idea/testData/checker/infos/CapturedConstructorParameter.kt
index 800961a10dc..955975bda25 100644
--- a/idea/testData/checker/infos/CapturedConstructorParameter.kt
+++ b/idea/testData/checker/infos/CapturedConstructorParameter.kt
@@ -1,3 +1,4 @@
+// FIR_COMPARISON
import kotlin.reflect.KProperty
interface T
diff --git a/idea/testData/checker/infos/CapturedInInlinedClosure.kt b/idea/testData/checker/infos/CapturedInInlinedClosure.kt
index c292c765c4b..c5cd24bf888 100644
--- a/idea/testData/checker/infos/CapturedInInlinedClosure.kt
+++ b/idea/testData/checker/infos/CapturedInInlinedClosure.kt
@@ -1,3 +1,4 @@
+// FIR_COMPARISON
inline fun run(f: () -> T) = f()
fun run2(f: () -> Unit) = f()
diff --git a/idea/testData/checker/infos/threeImplicitReceivers.kt b/idea/testData/checker/infos/threeImplicitReceivers.kt
index 0faf40074c3..44c7f56125f 100644
--- a/idea/testData/checker/infos/threeImplicitReceivers.kt
+++ b/idea/testData/checker/infos/threeImplicitReceivers.kt
@@ -1,3 +1,4 @@
+// FIR_COMPARISON
interface IA
interface IB
interface IC
diff --git a/idea/testData/checker/infos/twoImplicitReceivers.kt b/idea/testData/checker/infos/twoImplicitReceivers.kt
index 58e56a6fab4..74aaf042762 100644
--- a/idea/testData/checker/infos/twoImplicitReceivers.kt
+++ b/idea/testData/checker/infos/twoImplicitReceivers.kt
@@ -1,3 +1,4 @@
+// FIR_COMPARISON
interface IA
interface IB
diff --git a/idea/testData/checker/kt32189returnTypeWithTypealiasSubtitution.kt b/idea/testData/checker/kt32189returnTypeWithTypealiasSubtitution.kt
index 8bbd0255ebe..328794cc896 100644
--- a/idea/testData/checker/kt32189returnTypeWithTypealiasSubtitution.kt
+++ b/idea/testData/checker/kt32189returnTypeWithTypealiasSubtitution.kt
@@ -1,3 +1,4 @@
+// FIR_COMPARISON
class B {
class Builder
}
diff --git a/idea/testData/checker/recovery/namelessMembers.kt b/idea/testData/checker/recovery/namelessMembers.kt
index 967c542d542..4bce5b81a09 100644
--- a/idea/testData/checker/recovery/namelessMembers.kt
+++ b/idea/testData/checker/recovery/namelessMembers.kt
@@ -1,3 +1,5 @@
+// IGNORE_FIR
+
class C {
fun () {
diff --git a/idea/testData/checker/recovery/namelessToplevelDeclarations.kt b/idea/testData/checker/recovery/namelessToplevelDeclarations.kt
index a7cf09adb91..b7b8fa08d97 100644
--- a/idea/testData/checker/recovery/namelessToplevelDeclarations.kt
+++ b/idea/testData/checker/recovery/namelessToplevelDeclarations.kt
@@ -1,3 +1,5 @@
+// IGNORE_FIR
+
package
fun () {
diff --git a/idea/testData/checker/regression/AmbiguityOnLazyTypeComputation.kt b/idea/testData/checker/regression/AmbiguityOnLazyTypeComputation.kt
index af4fa396431..6e01e5ead84 100644
--- a/idea/testData/checker/regression/AmbiguityOnLazyTypeComputation.kt
+++ b/idea/testData/checker/regression/AmbiguityOnLazyTypeComputation.kt
@@ -1,3 +1,4 @@
+// FIR_COMPARISON
// One of the two passes is making a scope and turning vals into functions
// See KT-76
diff --git a/idea/testData/checker/regression/DestructuringDeclarationInLambda.kt b/idea/testData/checker/regression/DestructuringDeclarationInLambda.kt
index 6e7dcf0a66c..a181daf6143 100644
--- a/idea/testData/checker/regression/DestructuringDeclarationInLambda.kt
+++ b/idea/testData/checker/regression/DestructuringDeclarationInLambda.kt
@@ -1,5 +1,3 @@
-// FIR_COMPARISON
-
data class XY(val x: Int, val y: Int)
fun convert(xy: XY, f: (XY) -> Int) = f(xy)
diff --git a/idea/testData/checker/regression/FunctionLiteralInsideAnnotation.kt b/idea/testData/checker/regression/FunctionLiteralInsideAnnotation.kt
index fecf4612689..997b405c3b1 100644
--- a/idea/testData/checker/regression/FunctionLiteralInsideAnnotation.kt
+++ b/idea/testData/checker/regression/FunctionLiteralInsideAnnotation.kt
@@ -1,3 +1,4 @@
+// FIR_COMPARISON
package foo
@Anno ({ val x: Int })
diff --git a/idea/testData/checker/regression/Jet121.kt b/idea/testData/checker/regression/Jet121.kt
index 28f47188156..44e47a1b7cc 100644
--- a/idea/testData/checker/regression/Jet121.kt
+++ b/idea/testData/checker/regression/Jet121.kt
@@ -1,3 +1,4 @@
+// FIR_COMPARISON
package jet121
fun box(): String {
diff --git a/idea/testData/checker/regression/Jet53.kt b/idea/testData/checker/regression/Jet53.kt
index 662e006a385..bb638c90294 100644
--- a/idea/testData/checker/regression/Jet53.kt
+++ b/idea/testData/checker/regression/Jet53.kt
@@ -1,5 +1,3 @@
-// FIR_COMPARISON
-
import java.util.Collections
fun checkSubtype(t: T) = t
diff --git a/idea/testData/checker/regression/callVariableAsFunctionWithAnonymousObjectArg.kt b/idea/testData/checker/regression/callVariableAsFunctionWithAnonymousObjectArg.kt
index b5fc01235ea..1628cebc406 100644
--- a/idea/testData/checker/regression/callVariableAsFunctionWithAnonymousObjectArg.kt
+++ b/idea/testData/checker/regression/callVariableAsFunctionWithAnonymousObjectArg.kt
@@ -1,3 +1,4 @@
+// FIR_COMPARISON
fun f() {
val g = 3
g(object : Any() {})
diff --git a/idea/testData/checker/regression/extensionMemberInClassObject.kt b/idea/testData/checker/regression/extensionMemberInClassObject.kt
index 4ef0359c9c0..4e5a137e04c 100644
--- a/idea/testData/checker/regression/extensionMemberInClassObject.kt
+++ b/idea/testData/checker/regression/extensionMemberInClassObject.kt
@@ -1,5 +1,3 @@
-// FIR_COMPARISON
-
interface Bar {
fun T.bar() {}
}
diff --git a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.0.kt b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.0.kt
index 196aaf9c719..148d2b63d7c 100644
--- a/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.0.kt
+++ b/idea/testData/findUsages/kotlin/internal/findFunctionUsages/kotlinTraitImplThroughDelegate.0.kt
@@ -1,5 +1,6 @@
// PSI_ELEMENT: org.jetbrains.kotlin.psi.KtNamedFunction
// OPTIONS: usages, skipImports
+// FIR_COMPARISON
package server
interface TraitWithImpl {
diff --git a/idea/testData/highlighter/DelegatingCtor.kt b/idea/testData/highlighter/DelegatingCtor.kt
index 7f5ce9c14a7..8d795a2dba9 100644
--- a/idea/testData/highlighter/DelegatingCtor.kt
+++ b/idea/testData/highlighter/DelegatingCtor.kt
@@ -1,3 +1,5 @@
+// IGNORE_FIR
+
open class Foo {
constructor(i: Int)
}
diff --git a/idea/testData/highlighter/TypeAlias.kt b/idea/testData/highlighter/TypeAlias.kt
index bcabe5b0e63..391e9b61689 100644
--- a/idea/testData/highlighter/TypeAlias.kt
+++ b/idea/testData/highlighter/TypeAlias.kt
@@ -1,3 +1,4 @@
+// IGNORE_FIR
// EXPECTED_DUPLICATED_HIGHLIGHTING
typealias Predicate<T> = (T) -> Boolean
diff --git a/idea/testData/highlighter/Variables.kt b/idea/testData/highlighter/Variables.kt
index 0b5ba7192b2..76ccf692242 100644
--- a/idea/testData/highlighter/Variables.kt
+++ b/idea/testData/highlighter/Variables.kt
@@ -1,3 +1,4 @@
+// IGNORE_FIR
// EXPECTED_DUPLICATED_HIGHLIGHTING
var x = 5
diff --git a/idea/testData/highlighter/deprecated/Class.kt b/idea/testData/highlighter/deprecated/Class.kt
index 3c841322c4a..94a426d3836 100644
--- a/idea/testData/highlighter/deprecated/Class.kt
+++ b/idea/testData/highlighter/deprecated/Class.kt
@@ -1,5 +1,3 @@
-// IGNORE_FIR
-
package test
import java.util.ArrayList
diff --git a/idea/testData/resolve/references/ClassObjectClassLiteralReferenceWithField.kt b/idea/testData/resolve/references/ClassObjectClassLiteralReferenceWithField.kt
index 10311ac660e..0b4d649b1a3 100644
--- a/idea/testData/resolve/references/ClassObjectClassLiteralReferenceWithField.kt
+++ b/idea/testData/resolve/references/ClassObjectClassLiteralReferenceWithField.kt
@@ -1,3 +1,4 @@
+// IGNORE_FIR
package t
class A {