FIR: refactoring, move class Java class building to separate fun
This commit is contained in:
@@ -186,7 +186,33 @@ class JavaSymbolProvider(
|
||||
javaTypeParameterStack.addStack(parentStack)
|
||||
}
|
||||
}
|
||||
val firJavaClass = buildJavaClass {
|
||||
parentClassTypeParameterStackCache[classSymbol] = javaTypeParameterStack
|
||||
val firJavaClass = createFirJavaClass(javaClass, classSymbol, outerClassId, parentClassSymbol, classId, javaTypeParameterStack)
|
||||
parentClassTypeParameterStackCache.remove(classSymbol)
|
||||
firJavaClass.convertSuperTypes(javaClass, javaTypeParameterStack)
|
||||
firJavaClass.addAnnotationsFrom(this@JavaSymbolProvider.session, javaClass, javaTypeParameterStack)
|
||||
return firJavaClass
|
||||
}
|
||||
|
||||
private fun FirJavaClass.convertSuperTypes(
|
||||
javaClass: JavaClass,
|
||||
javaTypeParameterStack: JavaTypeParameterStack
|
||||
) {
|
||||
replaceSuperTypeRefs(
|
||||
javaClass.supertypes.map { supertype ->
|
||||
supertype.toFirResolvedTypeRef(session, javaTypeParameterStack, isForSupertypes = true, forTypeParameterBounds = false)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
private fun createFirJavaClass(
|
||||
javaClass: JavaClass,
|
||||
classSymbol: FirRegularClassSymbol,
|
||||
outerClassId: ClassId?,
|
||||
parentClassSymbol: FirRegularClassSymbol?,
|
||||
classId: ClassId,
|
||||
javaTypeParameterStack: JavaTypeParameterStack,
|
||||
): FirJavaClass = buildJavaClass {
|
||||
source = (javaClass as? JavaElementImpl<*>)?.psi?.toFirPsiSourceElement()
|
||||
session = this@JavaSymbolProvider.session
|
||||
symbol = classSymbol
|
||||
@@ -197,7 +223,6 @@ class JavaSymbolProvider(
|
||||
this.isTopLevel = outerClassId == null
|
||||
isStatic = javaClass.isStatic
|
||||
this.javaTypeParameterStack = javaTypeParameterStack
|
||||
parentClassTypeParameterStackCache[classSymbol] = javaTypeParameterStack
|
||||
existingNestedClassifierNames += javaClass.innerClassNames
|
||||
scopeProvider = this@JavaSymbolProvider.scopeProvider
|
||||
val classTypeParameters = javaClass.typeParameters.convertTypeParameters(javaTypeParameterStack)
|
||||
@@ -278,17 +303,6 @@ class JavaSymbolProvider(
|
||||
declarations +=
|
||||
buildConstructorForAnnotationClass(constructorId, this, valueParametersForAnnotationConstructor)
|
||||
}
|
||||
parentClassTypeParameterStackCache.remove(classSymbol)
|
||||
}
|
||||
firJavaClass.replaceSuperTypeRefs(
|
||||
javaClass.supertypes.map { supertype ->
|
||||
supertype.toFirResolvedTypeRef(
|
||||
this@JavaSymbolProvider.session, javaTypeParameterStack, isForSupertypes = true, forTypeParameterBounds = false
|
||||
)
|
||||
}
|
||||
)
|
||||
firJavaClass.addAnnotationsFrom(this@JavaSymbolProvider.session, javaClass, javaTypeParameterStack)
|
||||
return firJavaClass
|
||||
}
|
||||
|
||||
private fun convertJavaFieldToFir(
|
||||
|
||||
Reference in New Issue
Block a user