KTIJ-25960 [Analysis API] Resolve static declarations in KDoc
^KTIJ-25960 Fixed
This commit is contained in:
committed by
Space Team
parent
4d91229d79
commit
b4c9a2616e
+46
@@ -1271,6 +1271,52 @@ public class Fe10IdeNormalAnalysisSourceModuleReferenceResolveTestGenerated exte
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nested
|
||||||
|
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
public class JavaDeclarations {
|
||||||
|
@Test
|
||||||
|
public void testAllFilesPresentInJavaDeclarations() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFieldQualified.kt")
|
||||||
|
public void testStaticFieldQualified() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFieldQualified.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionFromBaseClass.kt")
|
||||||
|
public void testStaticFunctionFromBaseClass() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFromBaseClass.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionFullyQualified.kt")
|
||||||
|
public void testStaticFunctionFullyQualified() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFullyQualified.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionQualified.kt")
|
||||||
|
public void testStaticFunctionQualified() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualified.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionQualifiedWithJavaSubclass.kt")
|
||||||
|
public void testStaticFunctionQualifiedWithJavaSubclass() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithJavaSubclass.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionQualifiedWithKotlinSubclass.kt")
|
||||||
|
public void testStaticFunctionQualifiedWithKotlinSubclass() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithKotlinSubclass.kt");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Nested
|
@Nested
|
||||||
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext")
|
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
|||||||
+15
-3
@@ -168,7 +168,13 @@ internal object KDocReferenceResolver {
|
|||||||
.fold(scope) { currentScope, fqNamePart ->
|
.fold(scope) { currentScope, fqNamePart ->
|
||||||
currentScope
|
currentScope
|
||||||
.getClassifierSymbols(fqNamePart)
|
.getClassifierSymbols(fqNamePart)
|
||||||
.mapNotNull { (it as? KtSymbolWithMembers)?.getDeclaredMemberScope() }
|
.filterIsInstance<KtSymbolWithMembers>()
|
||||||
|
.flatMap {
|
||||||
|
listOf(
|
||||||
|
it.getDeclaredMemberScope(),
|
||||||
|
it.getStaticMemberScope(),
|
||||||
|
)
|
||||||
|
}
|
||||||
.toList()
|
.toList()
|
||||||
.asCompositeScope()
|
.asCompositeScope()
|
||||||
}
|
}
|
||||||
@@ -185,7 +191,7 @@ internal object KDocReferenceResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
context(KtAnalysisSession)
|
context(KtAnalysisSession)
|
||||||
private fun getNonImportedSymbolsByFullyQualifiedName(fqName: FqName): List<KtSymbol> = buildList {
|
private fun getNonImportedSymbolsByFullyQualifiedName(fqName: FqName): Collection<KtSymbol> = buildSet {
|
||||||
generateNameInterpretations(fqName).forEach { interpretation ->
|
generateNameInterpretations(fqName).forEach { interpretation ->
|
||||||
collectSymbolsByFqNameInterpretation(interpretation)
|
collectSymbolsByFqNameInterpretation(interpretation)
|
||||||
}
|
}
|
||||||
@@ -229,7 +235,13 @@ internal object KDocReferenceResolver {
|
|||||||
|
|
||||||
else -> {
|
else -> {
|
||||||
getClassOrObjectSymbolByClassId(classId)
|
getClassOrObjectSymbolByClassId(classId)
|
||||||
?.getDeclaredMemberScope()
|
?.let {
|
||||||
|
listOf(
|
||||||
|
it.getDeclaredMemberScope(),
|
||||||
|
it.getStaticMemberScope(),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
?.asCompositeScope()
|
||||||
?.getCallableSymbols(callableId.callableName)
|
?.getCallableSymbols(callableId.callableName)
|
||||||
?.let(::addAll)
|
?.let(::addAll)
|
||||||
}
|
}
|
||||||
|
|||||||
+46
@@ -1271,6 +1271,52 @@ public class FirIdeDependentAnalysisSourceModuleReferenceResolveTestGenerated ex
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nested
|
||||||
|
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
public class JavaDeclarations {
|
||||||
|
@Test
|
||||||
|
public void testAllFilesPresentInJavaDeclarations() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFieldQualified.kt")
|
||||||
|
public void testStaticFieldQualified() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFieldQualified.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionFromBaseClass.kt")
|
||||||
|
public void testStaticFunctionFromBaseClass() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFromBaseClass.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionFullyQualified.kt")
|
||||||
|
public void testStaticFunctionFullyQualified() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFullyQualified.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionQualified.kt")
|
||||||
|
public void testStaticFunctionQualified() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualified.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionQualifiedWithJavaSubclass.kt")
|
||||||
|
public void testStaticFunctionQualifiedWithJavaSubclass() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithJavaSubclass.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionQualifiedWithKotlinSubclass.kt")
|
||||||
|
public void testStaticFunctionQualifiedWithKotlinSubclass() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithKotlinSubclass.kt");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Nested
|
@Nested
|
||||||
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext")
|
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
|||||||
+46
@@ -1155,6 +1155,52 @@ public class FirIdeNormalAnalysisLibrarySourceModuleReferenceResolveTestGenerate
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nested
|
||||||
|
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
public class JavaDeclarations {
|
||||||
|
@Test
|
||||||
|
public void testAllFilesPresentInJavaDeclarations() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations"), Pattern.compile("^([^.]+)\\.kt$"), null, true, "withErrors");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFieldQualified.kt")
|
||||||
|
public void testStaticFieldQualified() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFieldQualified.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionFromBaseClass.kt")
|
||||||
|
public void testStaticFunctionFromBaseClass() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFromBaseClass.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionFullyQualified.kt")
|
||||||
|
public void testStaticFunctionFullyQualified() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFullyQualified.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionQualified.kt")
|
||||||
|
public void testStaticFunctionQualified() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualified.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionQualifiedWithJavaSubclass.kt")
|
||||||
|
public void testStaticFunctionQualifiedWithJavaSubclass() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithJavaSubclass.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionQualifiedWithKotlinSubclass.kt")
|
||||||
|
public void testStaticFunctionQualifiedWithKotlinSubclass() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithKotlinSubclass.kt");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Nested
|
@Nested
|
||||||
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext")
|
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
|||||||
+46
@@ -1271,6 +1271,52 @@ public class FirIdeNormalAnalysisSourceModuleReferenceResolveTestGenerated exten
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nested
|
||||||
|
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
public class JavaDeclarations {
|
||||||
|
@Test
|
||||||
|
public void testAllFilesPresentInJavaDeclarations() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFieldQualified.kt")
|
||||||
|
public void testStaticFieldQualified() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFieldQualified.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionFromBaseClass.kt")
|
||||||
|
public void testStaticFunctionFromBaseClass() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFromBaseClass.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionFullyQualified.kt")
|
||||||
|
public void testStaticFunctionFullyQualified() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFullyQualified.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionQualified.kt")
|
||||||
|
public void testStaticFunctionQualified() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualified.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionQualifiedWithJavaSubclass.kt")
|
||||||
|
public void testStaticFunctionQualifiedWithJavaSubclass() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithJavaSubclass.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionQualifiedWithKotlinSubclass.kt")
|
||||||
|
public void testStaticFunctionQualifiedWithKotlinSubclass() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithKotlinSubclass.kt");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Nested
|
@Nested
|
||||||
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext")
|
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
|||||||
+46
@@ -1271,6 +1271,52 @@ public class FirStandaloneNormalAnalysisSourceModuleReferenceResolveTestGenerate
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nested
|
||||||
|
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
public class JavaDeclarations {
|
||||||
|
@Test
|
||||||
|
public void testAllFilesPresentInJavaDeclarations() throws Exception {
|
||||||
|
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFieldQualified.kt")
|
||||||
|
public void testStaticFieldQualified() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFieldQualified.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionFromBaseClass.kt")
|
||||||
|
public void testStaticFunctionFromBaseClass() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFromBaseClass.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionFullyQualified.kt")
|
||||||
|
public void testStaticFunctionFullyQualified() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFullyQualified.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionQualified.kt")
|
||||||
|
public void testStaticFunctionQualified() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualified.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionQualifiedWithJavaSubclass.kt")
|
||||||
|
public void testStaticFunctionQualifiedWithJavaSubclass() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithJavaSubclass.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("StaticFunctionQualifiedWithKotlinSubclass.kt")
|
||||||
|
public void testStaticFunctionQualifiedWithKotlinSubclass() throws Exception {
|
||||||
|
runTest("analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionQualifiedWithKotlinSubclass.kt");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Nested
|
@Nested
|
||||||
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext")
|
@TestMetadata("analysis/analysis-api/testData/referenceResolve/kDoc/localContext")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
|||||||
Vendored
+14
@@ -0,0 +1,14 @@
|
|||||||
|
// FILE: main.kt
|
||||||
|
import dependency.JavaClass
|
||||||
|
|
||||||
|
/**
|
||||||
|
* [JavaClass.st<caret>aticField]
|
||||||
|
*/
|
||||||
|
fun test() {}
|
||||||
|
|
||||||
|
// FILE: dependency/JavaClass.java
|
||||||
|
package dependency;
|
||||||
|
|
||||||
|
public class JavaClass {
|
||||||
|
public static final int staticField = 0;
|
||||||
|
}
|
||||||
Vendored
+2
@@ -0,0 +1,2 @@
|
|||||||
|
Resolved to:
|
||||||
|
0: (in dependency.JavaClass) val staticField: kotlin.Int
|
||||||
analysis/analysis-api/testData/referenceResolve/kDoc/javaDeclarations/StaticFunctionFromBaseClass.kt
Vendored
+18
@@ -0,0 +1,18 @@
|
|||||||
|
// UNRESOLVED_REFERENCE
|
||||||
|
// FILE: main.kt
|
||||||
|
import dependency.JavaBase
|
||||||
|
|
||||||
|
class KotlinChild : JavaBase() {
|
||||||
|
/**
|
||||||
|
* [st<caret>aticFun]
|
||||||
|
*/
|
||||||
|
fun test() {}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: dependency/JavaBase.java
|
||||||
|
package dependency;
|
||||||
|
|
||||||
|
public class JavaBase {
|
||||||
|
public static void staticFun() {}
|
||||||
|
}
|
||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
// FILE: main.kt
|
||||||
|
/**
|
||||||
|
* [dependency.JavaClass.st<caret>aticFun]
|
||||||
|
*/
|
||||||
|
fun test() {}
|
||||||
|
|
||||||
|
// FILE: dependency/JavaClass.java
|
||||||
|
package dependency;
|
||||||
|
|
||||||
|
public class JavaClass {
|
||||||
|
public static void staticFun() {}
|
||||||
|
}
|
||||||
+2
@@ -0,0 +1,2 @@
|
|||||||
|
Resolved to:
|
||||||
|
0: (in dependency.JavaClass) open fun staticFun()
|
||||||
Vendored
+14
@@ -0,0 +1,14 @@
|
|||||||
|
// FILE: main.kt
|
||||||
|
import dependency.JavaClass
|
||||||
|
|
||||||
|
/**
|
||||||
|
* [JavaClass.st<caret>aticFun]
|
||||||
|
*/
|
||||||
|
fun test() {}
|
||||||
|
|
||||||
|
// FILE: dependency/JavaClass.java
|
||||||
|
package dependency;
|
||||||
|
|
||||||
|
public class JavaClass {
|
||||||
|
public static void staticFun() {}
|
||||||
|
}
|
||||||
Vendored
+2
@@ -0,0 +1,2 @@
|
|||||||
|
Resolved to:
|
||||||
|
0: (in dependency.JavaClass) open fun staticFun()
|
||||||
+20
@@ -0,0 +1,20 @@
|
|||||||
|
// FILE: main.kt
|
||||||
|
import dependency.JavaChild
|
||||||
|
|
||||||
|
/**
|
||||||
|
* [JavaChild.st<caret>aticFun]
|
||||||
|
*/
|
||||||
|
fun test() {}
|
||||||
|
|
||||||
|
// FILE: dependency/JavaBase.java
|
||||||
|
package dependency;
|
||||||
|
|
||||||
|
public class JavaBase {
|
||||||
|
public static void staticFun() {}
|
||||||
|
}
|
||||||
|
|
||||||
|
// FILE: dependency/JavaChild.java
|
||||||
|
package dependency;
|
||||||
|
|
||||||
|
public class JavaChild extends JavaBase {
|
||||||
|
}
|
||||||
+2
@@ -0,0 +1,2 @@
|
|||||||
|
Resolved to:
|
||||||
|
0: (in dependency.JavaBase) open fun staticFun()
|
||||||
+17
@@ -0,0 +1,17 @@
|
|||||||
|
// UNRESOLVED_REFERENCE
|
||||||
|
// FILE: main.kt
|
||||||
|
import dependency.JavaBase
|
||||||
|
|
||||||
|
class KotlinChild : JavaBase()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* [KotlinChild.st<caret>aticFun]
|
||||||
|
*/
|
||||||
|
fun test() {}
|
||||||
|
|
||||||
|
// FILE: dependency/JavaBase.java
|
||||||
|
package dependency;
|
||||||
|
|
||||||
|
public class JavaBase {
|
||||||
|
public static void staticFun() {}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user