[AA] Fix processing of declared constructors in enhancement scope

^KTIJ-24948 Fixed
This commit is contained in:
aleksandrina-streltsova
2023-03-16 09:25:11 +02:00
committed by Space Team
parent 46db4b4e6d
commit f39d5d57e1
6 changed files with 71 additions and 4 deletions
@@ -64,10 +64,8 @@ internal class JavaClassDeclaredMembersEnhancementScope(
} }
override fun processDeclaredConstructors(processor: (FirConstructorSymbol) -> Unit) { override fun processDeclaredConstructors(processor: (FirConstructorSymbol) -> Unit) {
owner.declarations.filterIsInstance<FirConstructor>().forEach { constructor -> useSiteMemberEnhancementScope.processDeclaredConstructors { symbol ->
useSiteMemberEnhancementScope.processDeclaredConstructors { processor(symbol)
processor(constructor.symbol)
}
} }
} }
@@ -57,4 +57,10 @@ public class FirIdeNormalAnalysisSourceModuleDeclaredMemberScopeTestGenerated ex
public void testJavaDeclaredInheritList() throws Exception { public void testJavaDeclaredInheritList() throws Exception {
runTest("analysis/analysis-api/testData/scopes/declaredMemberScope/javaDeclaredInheritList.kt"); runTest("analysis/analysis-api/testData/scopes/declaredMemberScope/javaDeclaredInheritList.kt");
} }
@Test
@TestMetadata("javaInnerClassConstructor.kt")
public void testJavaInnerClassConstructor() throws Exception {
runTest("analysis/analysis-api/testData/scopes/declaredMemberScope/javaInnerClassConstructor.kt");
}
} }
@@ -57,4 +57,10 @@ public class FirStandaloneNormalAnalysisSourceModuleDeclaredMemberScopeTestGener
public void testJavaDeclaredInheritList() throws Exception { public void testJavaDeclaredInheritList() throws Exception {
runTest("analysis/analysis-api/testData/scopes/declaredMemberScope/javaDeclaredInheritList.kt"); runTest("analysis/analysis-api/testData/scopes/declaredMemberScope/javaDeclaredInheritList.kt");
} }
@Test
@TestMetadata("javaInnerClassConstructor.kt")
public void testJavaInnerClassConstructor() throws Exception {
runTest("analysis/analysis-api/testData/scopes/declaredMemberScope/javaInnerClassConstructor.kt");
}
} }
@@ -0,0 +1,10 @@
// RUNTIME
// class: JavaClass.InnerClass
// FILE: main.kt
// FILE: JavaClass.java
public class JavaClass {
class InnerClass {
InnerClass(JavaClass other) {}
}
}
@@ -0,0 +1 @@
constructor(other: JavaClass!)
@@ -0,0 +1,46 @@
KtConstructorSymbol:
annotationsList: []
callableIdIfNonLocal: null
containingClassIdIfNonLocal: JavaClass.InnerClass
contextReceivers: []
hasStableParameterNames: false
isExtension: false
isPrimary: false
origin: JAVA
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: JavaClass.InnerClass
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: [
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: other
origin: JAVA
receiverParameter: null
returnType: KtFlexibleType:
annotationsList: []
type: JavaClass!
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
]
visibility: PackageVisibility
getDispatchReceiver(): KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: JavaClass
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null