FIR IDE: add tests about types of array/list and their element

This commit is contained in:
Jinseong Jeon
2021-11-05 13:11:22 -07:00
committed by Ilya Kirillov
parent e1f6c19c83
commit 08e181a543
15 changed files with 114 additions and 1 deletions
@@ -24,6 +24,18 @@ public class KtFe10HLExpressionTypeTestGenerated extends AbstractKtFe10HLExpress
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/expressionType"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("arrayElement_arrayOfNulls.kt")
public void testArrayElement_arrayOfNulls() throws Exception {
runTest("analysis/analysis-api/testData/components/expressionType/arrayElement_arrayOfNulls.kt");
}
@Test
@TestMetadata("array_arrayOfNulls.kt")
public void testArray_arrayOfNulls() throws Exception {
runTest("analysis/analysis-api/testData/components/expressionType/array_arrayOfNulls.kt");
}
@Test
@TestMetadata("assignmentExpressionTarget.kt")
public void testAssignmentExpressionTarget() throws Exception {
@@ -78,6 +90,30 @@ public class KtFe10HLExpressionTypeTestGenerated extends AbstractKtFe10HLExpress
runTest("analysis/analysis-api/testData/components/expressionType/intLiteral.kt");
}
@Test
@TestMetadata("listElement_listOf.kt")
public void testListElement_listOf() throws Exception {
runTest("analysis/analysis-api/testData/components/expressionType/listElement_listOf.kt");
}
@Test
@TestMetadata("listElement_mutableListOf.kt")
public void testListElement_mutableListOf() throws Exception {
runTest("analysis/analysis-api/testData/components/expressionType/listElement_mutableListOf.kt");
}
@Test
@TestMetadata("list_listOf.kt")
public void testList_listOf() throws Exception {
runTest("analysis/analysis-api/testData/components/expressionType/list_listOf.kt");
}
@Test
@TestMetadata("list_mutableListOf.kt")
public void testList_mutableListOf() throws Exception {
runTest("analysis/analysis-api/testData/components/expressionType/list_mutableListOf.kt");
}
@Test
@TestMetadata("nonExpression.kt")
public void testNonExpression() throws Exception {
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession
import org.jetbrains.kotlin.analysis.api.fir.utils.getReferencedElementType
import org.jetbrains.kotlin.analysis.api.fir.utils.unwrap
import org.jetbrains.kotlin.analysis.api.tokens.ValidityToken
import org.jetbrains.kotlin.analysis.api.types.KtClassErrorType
import org.jetbrains.kotlin.analysis.api.types.KtType
import org.jetbrains.kotlin.analysis.api.withValidityAssertion
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFir
@@ -24,6 +24,18 @@ public class FirHLExpressionTypeTestGenerated extends AbstractFirHLExpressionTyp
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/expressionType"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("arrayElement_arrayOfNulls.kt")
public void testArrayElement_arrayOfNulls() throws Exception {
runTest("analysis/analysis-api/testData/components/expressionType/arrayElement_arrayOfNulls.kt");
}
@Test
@TestMetadata("array_arrayOfNulls.kt")
public void testArray_arrayOfNulls() throws Exception {
runTest("analysis/analysis-api/testData/components/expressionType/array_arrayOfNulls.kt");
}
@Test
@TestMetadata("assignmentExpressionTarget.kt")
public void testAssignmentExpressionTarget() throws Exception {
@@ -78,6 +90,30 @@ public class FirHLExpressionTypeTestGenerated extends AbstractFirHLExpressionTyp
runTest("analysis/analysis-api/testData/components/expressionType/intLiteral.kt");
}
@Test
@TestMetadata("listElement_listOf.kt")
public void testListElement_listOf() throws Exception {
runTest("analysis/analysis-api/testData/components/expressionType/listElement_listOf.kt");
}
@Test
@TestMetadata("listElement_mutableListOf.kt")
public void testListElement_mutableListOf() throws Exception {
runTest("analysis/analysis-api/testData/components/expressionType/listElement_mutableListOf.kt");
}
@Test
@TestMetadata("list_listOf.kt")
public void testList_listOf() throws Exception {
runTest("analysis/analysis-api/testData/components/expressionType/list_listOf.kt");
}
@Test
@TestMetadata("list_mutableListOf.kt")
public void testList_mutableListOf() throws Exception {
runTest("analysis/analysis-api/testData/components/expressionType/list_mutableListOf.kt");
}
@Test
@TestMetadata("nonExpression.kt")
public void testNonExpression() throws Exception {
@@ -0,0 +1,5 @@
fun foo() {
val arr = arrayOfNulls<List<*>>(10)
arr[0] = emptyList<Any>()
<expr>arr[0]</expr>
}
@@ -0,0 +1,2 @@
expression: arr[0]
type: kotlin.collections.List<*>?
@@ -0,0 +1,4 @@
fun foo() {
val arr = arrayOfNulls<List<*>>(10)
<expr>arr</expr>[0] = emptyList<Any>()
}
@@ -0,0 +1,2 @@
expression: arr
type: kotlin.Array<kotlin.collections.List<*>?>
@@ -0,0 +1,5 @@
// WITH_STDLIB
fun foo() {
val lst = listOf<List<*>>(listOf("A"), listOf(42), emptyList())
<expr>lst[0]</expr>
}
@@ -0,0 +1,2 @@
expression: lst[0]
type: kotlin.collections.List<*>
@@ -0,0 +1,6 @@
// WITH_STDLIB
fun foo() {
val lst = mutableListOf<List<*>>()
lst[0] = emptyList<Any>()
<expr>lst[0]</expr>
}
@@ -0,0 +1,2 @@
expression: lst[0]
type: kotlin.collections.List<*>
@@ -0,0 +1,5 @@
// WITH_STDLIB
fun foo() {
val lst = listOf<List<*>>(listOf("A"), listOf(42), emptyList())
<expr>lst</expr>[0]
}
@@ -0,0 +1,2 @@
expression: lst
type: kotlin.collections.List<kotlin.collections.List<*>>
@@ -0,0 +1,5 @@
// WITH_STDLIB
fun foo() {
val lst = mutableListOf<List<*>>()
<expr>lst</expr>[0] = emptyList<Any>()
}
@@ -0,0 +1,2 @@
expression: lst
type: kotlin.collections.MutableList<kotlin.collections.List<*>>