[FIR] Validate generated member declarations
This commit is contained in:
committed by
TeamCityServer
parent
7f836ee6c3
commit
fce6efe412
+8
-3
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.caches.getValue
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
import org.jetbrains.kotlin.fir.declarations.FirClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.classId
|
import org.jetbrains.kotlin.fir.declarations.utils.classId
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.validate
|
||||||
import org.jetbrains.kotlin.fir.extensions.FirDeclarationGenerationExtension
|
import org.jetbrains.kotlin.fir.extensions.FirDeclarationGenerationExtension
|
||||||
import org.jetbrains.kotlin.fir.extensions.declarationGenerators
|
import org.jetbrains.kotlin.fir.extensions.declarationGenerators
|
||||||
import org.jetbrains.kotlin.fir.extensions.extensionService
|
import org.jetbrains.kotlin.fir.extensions.extensionService
|
||||||
@@ -56,11 +57,15 @@ class FirGeneratedClassDeclaredMemberScope(
|
|||||||
// ------------------------------------------ generators ------------------------------------------
|
// ------------------------------------------ generators ------------------------------------------
|
||||||
|
|
||||||
private fun generateMemberFunctions(name: Name): List<FirNamedFunctionSymbol> {
|
private fun generateMemberFunctions(name: Name): List<FirNamedFunctionSymbol> {
|
||||||
return extensions.flatMap { it.generateFunctions(CallableId(firClass.classId, name), firClass.symbol) }
|
return extensions
|
||||||
|
.flatMap { it.generateFunctions(CallableId(firClass.classId, name), firClass.symbol) }
|
||||||
|
.onEach { it.fir.validate() }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun generateMemberProperties(name: Name): List<FirPropertySymbol> {
|
private fun generateMemberProperties(name: Name): List<FirPropertySymbol> {
|
||||||
return extensions.flatMap { it.generateProperties(CallableId(firClass.classId, name), firClass.symbol) }
|
return extensions
|
||||||
|
.flatMap { it.generateProperties(CallableId(firClass.classId, name), firClass.symbol) }
|
||||||
|
.onEach { it.fir.validate() }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun generateConstructors(): List<FirConstructorSymbol> {
|
private fun generateConstructors(): List<FirConstructorSymbol> {
|
||||||
@@ -70,7 +75,7 @@ class FirGeneratedClassDeclaredMemberScope(
|
|||||||
} else {
|
} else {
|
||||||
CallableId(classId.asSingleFqName().parent(), classId.shortClassName)
|
CallableId(classId.asSingleFqName().parent(), classId.shortClassName)
|
||||||
}
|
}
|
||||||
return extensions.flatMap { it.generateConstructors(callableId) }
|
return extensions.flatMap { it.generateConstructors(callableId) }.onEach { }
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------ scope methods ------------------------------------------
|
// ------------------------------------------ scope methods ------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user