FIR IDE: add tests for completion in sealed when
This commit is contained in:
committed by
TeamCityServer
parent
9af0885e82
commit
0da488058d
+1
@@ -1198,6 +1198,7 @@ fun main(args: Array<String>) {
|
|||||||
testClass<AbstractHighLevelJvmBasicCompletionTest> {
|
testClass<AbstractHighLevelJvmBasicCompletionTest> {
|
||||||
model("basic/common")
|
model("basic/common")
|
||||||
model("basic/java")
|
model("basic/java")
|
||||||
|
model("../../idea-fir/testData/completion/basic/common", testClassName = "CommonFir")
|
||||||
}
|
}
|
||||||
|
|
||||||
testClass<AbstractHighLevelBasicCompletionHandlerTest> {
|
testClass<AbstractHighLevelBasicCompletionHandlerTest> {
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
enum class ENUM {
|
||||||
|
AAAA, BBBB, CCCC
|
||||||
|
}
|
||||||
|
|
||||||
|
fun foo(e: ENUM) {
|
||||||
|
when (e) {
|
||||||
|
<caret>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// EXIST: ENUM.AAAA
|
||||||
|
// EXIST: ENUM.BBBB
|
||||||
|
// EXIST: ENUM.CCCC
|
||||||
|
// EXIST: { lookupString: "else -> "}
|
||||||
|
// NOTHING_ELSE
|
||||||
|
// FIR_COMPARISON
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
enum class ENUM {
|
||||||
|
AAAA, BBBB, CCCC
|
||||||
|
}
|
||||||
|
|
||||||
|
fun foo(e: ENUM) {
|
||||||
|
when (e) {
|
||||||
|
ENUM.AAAA, ENUM.CCCC -> TODO()
|
||||||
|
<caret>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// EXIST: ENUM.BBBB
|
||||||
|
// EXIST: { lookupString: "else -> "}
|
||||||
|
// NOTHING_ELSE
|
||||||
|
// FIR_COMPARISON
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
enum class ENUM {
|
||||||
|
AAAA, BBBB, CCCC
|
||||||
|
}
|
||||||
|
|
||||||
|
fun foo(e: ENUM) {
|
||||||
|
when (e) {
|
||||||
|
ENUM.AAAA, ENUM.CCCC, <caret> -> TODO()
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// EXIST: ENUM.BBBB
|
||||||
|
// NOTHING_ELSE
|
||||||
|
// FIR_COMPARISON
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package a.b.c
|
||||||
|
|
||||||
|
enum class ENUM {
|
||||||
|
AAAA, BBBB, CCCC
|
||||||
|
}
|
||||||
|
|
||||||
|
fun foo(e: ENUM) {
|
||||||
|
when (e) {
|
||||||
|
<caret>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// EXIST: ENUM.AAAA
|
||||||
|
// EXIST: ENUM.BBBB
|
||||||
|
// EXIST: ENUM.CCCC
|
||||||
|
// EXIST: { lookupString: "else -> "}
|
||||||
|
// NOTHING_ELSE
|
||||||
|
// FIR_COMPARISON
|
||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
sealed class SEALED {
|
||||||
|
class AAAA: SEALED()
|
||||||
|
object BBBB: SEALED()
|
||||||
|
class CCCC: SEALED()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun foo(e: SEALED) {
|
||||||
|
when (e) {
|
||||||
|
<caret>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// EXIST: is SEALED.AAAA
|
||||||
|
// EXIST: SEALED.BBBB
|
||||||
|
// EXIST: is SEALED.CCCC
|
||||||
|
// EXIST: { lookupString: "else -> "}
|
||||||
|
// NOTHING_ELSE
|
||||||
|
// FIR_COMPARISON
|
||||||
+20
@@ -0,0 +1,20 @@
|
|||||||
|
package a.b.c
|
||||||
|
|
||||||
|
sealed class SEALED {
|
||||||
|
class AAAA: SEALED()
|
||||||
|
object BBBB: SEALED()
|
||||||
|
class CCCC: SEALED()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun foo(e: SEALED) {
|
||||||
|
when (e) {
|
||||||
|
<caret>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// EXIST: is SEALED.AAAA
|
||||||
|
// EXIST: SEALED.BBBB
|
||||||
|
// EXIST: is SEALED.CCCC
|
||||||
|
// EXIST: { lookupString: "else -> "}
|
||||||
|
// NOTHING_ELSE
|
||||||
|
// FIR_COMPARISON
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
abstract class SEALED
|
||||||
|
class AAAA: SEALED()
|
||||||
|
object BBBB: SEALED()
|
||||||
|
class CCCC: SEALED()
|
||||||
|
|
||||||
|
class SomeClass
|
||||||
|
object SomeObject
|
||||||
|
|
||||||
|
fun foo(e: SEALED) {
|
||||||
|
when (e) {
|
||||||
|
<caret>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// EXIST: is AAAA
|
||||||
|
// EXIST: BBBB
|
||||||
|
// EXIST: is CCCC
|
||||||
|
// EXIST: is SomeClass
|
||||||
|
// EXIST: SomeObject
|
||||||
|
// EXIST: { lookupString: "else -> "}
|
||||||
|
// FIR_COMPARISON
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
enum class ENUM {
|
||||||
|
AAAA, BBBB, CCCC
|
||||||
|
}
|
||||||
|
|
||||||
|
fun foo(e: ENUM?) {
|
||||||
|
when (e) {
|
||||||
|
<caret>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// EXIST: ENUM.AAAA
|
||||||
|
// EXIST: ENUM.BBBB
|
||||||
|
// EXIST: ENUM.CCCC
|
||||||
|
// EXIST: { lookupString: "else -> "}
|
||||||
|
// EXIST: null
|
||||||
|
// NOTHING_ELSE
|
||||||
|
// FIR_COMPARISON
|
||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
sealed class SEALED
|
||||||
|
class AAAA: SEALED()
|
||||||
|
object BBBB: SEALED()
|
||||||
|
class CCCC: SEALED()
|
||||||
|
|
||||||
|
fun foo(e: SEALED?) {
|
||||||
|
when (e) {
|
||||||
|
<caret>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// EXIST: is AAAA
|
||||||
|
// EXIST: BBBB
|
||||||
|
// EXIST: is CCCC
|
||||||
|
// EXIST: null
|
||||||
|
// EXIST: { lookupString: "else -> "}
|
||||||
|
// NOTHING_ELSE
|
||||||
|
// FIR_COMPARISON
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
sealed class SEALED
|
||||||
|
class AAAA: SEALED()
|
||||||
|
object BBBB: SEALED()
|
||||||
|
class CCCC: SEALED()
|
||||||
|
|
||||||
|
fun foo(e: SEALED) {
|
||||||
|
when (e) {
|
||||||
|
<caret>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// EXIST: is AAAA
|
||||||
|
// EXIST: BBBB
|
||||||
|
// EXIST: is CCCC
|
||||||
|
// EXIST: { lookupString: "else -> "}
|
||||||
|
// NOTHING_ELSE
|
||||||
|
// FIR_COMPARISON
|
||||||
Vendored
+16
@@ -0,0 +1,16 @@
|
|||||||
|
sealed class SEALED
|
||||||
|
class AAAA: SEALED()
|
||||||
|
object BBBB: SEALED()
|
||||||
|
class CCCC: SEALED()
|
||||||
|
|
||||||
|
fun foo(e: SEALED) {
|
||||||
|
when (e) {
|
||||||
|
is AAAA, CCCC -> TODO()
|
||||||
|
<caret>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// EXIST: BBBB
|
||||||
|
// EXIST: { lookupString: "else -> "}
|
||||||
|
// NOTHING_ELSE
|
||||||
|
// FIR_COMPARISON
|
||||||
Vendored
+20
@@ -0,0 +1,20 @@
|
|||||||
|
sealed class SEALED
|
||||||
|
class AAAA: SEALED()
|
||||||
|
object BBBB: SEALED()
|
||||||
|
abstract class CCCC: SEALED()
|
||||||
|
|
||||||
|
class SomeClass
|
||||||
|
|
||||||
|
|
||||||
|
fun foo(e: SEALED) {
|
||||||
|
when (e) {
|
||||||
|
<caret>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// EXIST: is AAAA
|
||||||
|
// EXIST: BBBB
|
||||||
|
// EXIST: is CCCC
|
||||||
|
// EXIST: { lookupString: "else -> "}
|
||||||
|
// EXIST: is SomeClass
|
||||||
|
// FIR_COMPARISON
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
sealed interface SEALED
|
||||||
|
class AAAA: SEALED()
|
||||||
|
object BBBB: SEALED()
|
||||||
|
class CCCC: SEALED()
|
||||||
|
|
||||||
|
class SomeClass
|
||||||
|
|
||||||
|
fun foo(e: SEALED) {
|
||||||
|
when (e) {
|
||||||
|
<caret>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// EXIST: is AAAA
|
||||||
|
// EXIST: BBBB
|
||||||
|
// EXIST: is CCCC
|
||||||
|
// EXIST: { lookupString: "else -> "}
|
||||||
|
// FIR_COMPARISON
|
||||||
+91
@@ -3322,4 +3322,95 @@ public class HighLevelJvmBasicCompletionTestGenerated extends AbstractHighLevelJ
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("idea/idea-completion/testData/../../idea-fir/testData/completion/basic/common")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class CommonFir extends AbstractHighLevelJvmBasicCompletionTest {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInCommonFir() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/idea-completion/testData/../../idea-fir/testData/completion/basic/common"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("idea/idea-completion/testData/../../idea-fir/testData/completion/basic/common/when")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class When extends AbstractHighLevelJvmBasicCompletionTest {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInWhen() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/idea-completion/testData/../../idea-fir/testData/completion/basic/common/when"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("enumInEmptyWhen.kt")
|
||||||
|
public void testEnumInEmptyWhen() throws Exception {
|
||||||
|
runTest("idea/idea-completion/testData/../../idea-fir/testData/completion/basic/common/when/enumInEmptyWhen.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("enumInWhen.kt")
|
||||||
|
public void testEnumInWhen() throws Exception {
|
||||||
|
runTest("idea/idea-completion/testData/../../idea-fir/testData/completion/basic/common/when/enumInWhen.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("enumInWhenWithOtherConditions.kt")
|
||||||
|
public void testEnumInWhenWithOtherConditions() throws Exception {
|
||||||
|
runTest("idea/idea-completion/testData/../../idea-fir/testData/completion/basic/common/when/enumInWhenWithOtherConditions.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("enumInWhenWithPackage.kt")
|
||||||
|
public void testEnumInWhenWithPackage() throws Exception {
|
||||||
|
runTest("idea/idea-completion/testData/../../idea-fir/testData/completion/basic/common/when/enumInWhenWithPackage.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("nestedSealedClassInWhen.kt")
|
||||||
|
public void testNestedSealedClassInWhen() throws Exception {
|
||||||
|
runTest("idea/idea-completion/testData/../../idea-fir/testData/completion/basic/common/when/nestedSealedClassInWhen.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("nestedSealedClassInWhenWithPackage.kt")
|
||||||
|
public void testNestedSealedClassInWhenWithPackage() throws Exception {
|
||||||
|
runTest("idea/idea-completion/testData/../../idea-fir/testData/completion/basic/common/when/nestedSealedClassInWhenWithPackage.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("nonSealedClassInWhen.kt")
|
||||||
|
public void testNonSealedClassInWhen() throws Exception {
|
||||||
|
runTest("idea/idea-completion/testData/../../idea-fir/testData/completion/basic/common/when/nonSealedClassInWhen.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("nullableEnumInWhen.kt")
|
||||||
|
public void testNullableEnumInWhen() throws Exception {
|
||||||
|
runTest("idea/idea-completion/testData/../../idea-fir/testData/completion/basic/common/when/nullableEnumInWhen.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("nullableSealedClassInWhen.kt")
|
||||||
|
public void testNullableSealedClassInWhen() throws Exception {
|
||||||
|
runTest("idea/idea-completion/testData/../../idea-fir/testData/completion/basic/common/when/nullableSealedClassInWhen.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("sealedClassInWhen.kt")
|
||||||
|
public void testSealedClassInWhen() throws Exception {
|
||||||
|
runTest("idea/idea-completion/testData/../../idea-fir/testData/completion/basic/common/when/sealedClassInWhen.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("sealedClassInWhenWithOtherConditions.kt")
|
||||||
|
public void testSealedClassInWhenWithOtherConditions() throws Exception {
|
||||||
|
runTest("idea/idea-completion/testData/../../idea-fir/testData/completion/basic/common/when/sealedClassInWhenWithOtherConditions.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("sealedClassWithAbstractInheritorsInWhen.kt")
|
||||||
|
public void testSealedClassWithAbstractInheritorsInWhen() throws Exception {
|
||||||
|
runTest("idea/idea-completion/testData/../../idea-fir/testData/completion/basic/common/when/sealedClassWithAbstractInheritorsInWhen.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("sealedInterfaceInWhen.kt")
|
||||||
|
public void testSealedInterfaceInWhen() throws Exception {
|
||||||
|
runTest("idea/idea-completion/testData/../../idea-fir/testData/completion/basic/common/when/sealedInterfaceInWhen.kt");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user