[FIR] Test for duplicate filtering for overrides from Java

This commit is contained in:
Artem Vasilev
2023-03-02 18:05:40 +01:00
committed by Space Team
parent f7dea5bd70
commit 564d44b16d
8 changed files with 65 additions and 7 deletions
@@ -46,6 +46,12 @@ public class Fe10IdeNormalAnalysisSourceModuleOverriddenDeclarationProviderTestG
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/symbolDeclarationOverridesProvider/overriddenSymbols"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("arraylistSubtype.kt")
public void testArraylistSubtype() throws Exception {
runTest("analysis/analysis-api/testData/components/symbolDeclarationOverridesProvider/overriddenSymbols/arraylistSubtype.kt");
}
@Test
@TestMetadata("backingField.kt")
public void testBackingField() throws Exception {
@@ -46,6 +46,12 @@ public class FirIdeDependentAnalysisSourceModuleOverriddenDeclarationProviderTes
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/symbolDeclarationOverridesProvider/overriddenSymbols"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("arraylistSubtype.kt")
public void testArraylistSubtype() throws Exception {
runTest("analysis/analysis-api/testData/components/symbolDeclarationOverridesProvider/overriddenSymbols/arraylistSubtype.kt");
}
@Test
@TestMetadata("backingField.kt")
public void testBackingField() throws Exception {
@@ -46,6 +46,12 @@ public class FirIdeNormalAnalysisSourceModuleOverriddenDeclarationProviderTestGe
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/symbolDeclarationOverridesProvider/overriddenSymbols"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("arraylistSubtype.kt")
public void testArraylistSubtype() throws Exception {
runTest("analysis/analysis-api/testData/components/symbolDeclarationOverridesProvider/overriddenSymbols/arraylistSubtype.kt");
}
@Test
@TestMetadata("backingField.kt")
public void testBackingField() throws Exception {
@@ -63,13 +63,17 @@ abstract class AbstractOverriddenDeclarationProviderTest : AbstractAnalysisApiBa
private fun KtAnalysisSession.getPath(symbol: KtCallableSymbol): String = when (symbol) {
is KtSyntheticJavaPropertySymbol -> symbol.callableIdIfNonLocal?.toString()!!
else -> {
val ktDeclaration = symbol.psi as KtDeclaration
ktDeclaration
.parentsOfType<KtDeclaration>(withSelf = true)
.map { it.name ?: "<no name>" }
.toList()
.asReversed()
.joinToString(separator = ".")
val ktDeclaration = symbol.psi as? KtDeclaration
if (ktDeclaration == null) {
symbol.callableIdIfNonLocal?.toString()!!
} else {
ktDeclaration
.parentsOfType<KtDeclaration>(withSelf = true)
.map { it.name ?: "<no name>" }
.toList()
.asReversed()
.joinToString(separator = ".")
}
}
}
}
@@ -46,6 +46,12 @@ public class FirStandaloneNormalAnalysisSourceModuleOverriddenDeclarationProvide
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/components/symbolDeclarationOverridesProvider/overriddenSymbols"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("arraylistSubtype.kt")
public void testArraylistSubtype() throws Exception {
runTest("analysis/analysis-api/testData/components/symbolDeclarationOverridesProvider/overriddenSymbols/arraylistSubtype.kt");
}
@Test
@TestMetadata("backingField.kt")
public void testBackingField() throws Exception {
@@ -0,0 +1,7 @@
ALL:
java/util/ArrayList.size: Int
java/util/AbstractCollection.size: Int
kotlin/collections/List.size: Int
kotlin/collections/Collection.size: Int
DIRECT:
java/util/ArrayList.size: Int
@@ -0,0 +1,15 @@
class MyList : ArrayList<Int>() {
override val size<caret>: Int = 0
override fun get(index: Int): Int = 0
}
// RESULT
// ALL:
// java/util/ArrayList.size: Int
// java/util/AbstractList.size: Int
// java/util/AbstractCollection.size: Int
// List.size: Int
// Collection.size: Int
// DIRECT:
// java/util/ArrayList.size: Int
@@ -0,0 +1,8 @@
ALL:
java/util/ArrayList.size: Int
java/util/AbstractList.size: Int
java/util/AbstractCollection.size: Int
List.size: Int
Collection.size: Int
DIRECT:
java/util/ArrayList.size: Int