K2 Scripting, Fir2Ir: allow out of order supertypes declaration
fix script declarations registration logic in Fir2Ir to allow supertypes of a class to be defined later than the class itself. #KT-64534 fixed
This commit is contained in:
committed by
Space Team
parent
f18aa5e70f
commit
0df3a37303
@@ -528,10 +528,12 @@ class Fir2IrConverter(
|
||||
addDeclarationToParentIfNeeded(irScript)
|
||||
declarationStorage.withScope(irScript.symbol) {
|
||||
irScript.parent = parent
|
||||
for (scriptDeclaration in declaration.declarations.filterIsInstance<FirRegularClass>()) {
|
||||
registerClassAndNestedClasses(scriptDeclaration, irScript)
|
||||
}
|
||||
for (scriptDeclaration in declaration.declarations) {
|
||||
when (scriptDeclaration) {
|
||||
is FirRegularClass -> {
|
||||
registerClassAndNestedClasses(scriptDeclaration, irScript)
|
||||
processClassAndNestedClassHeaders(scriptDeclaration)
|
||||
}
|
||||
is FirTypeAlias -> classifierStorage.createAndCacheIrTypeAlias(scriptDeclaration, irScript)
|
||||
|
||||
+6
@@ -54575,6 +54575,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo
|
||||
runTest("compiler/testData/codegen/box/script/localCaptureTestsK2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("outOuOrderDecls.kt")
|
||||
public void testOutOuOrderDecls() {
|
||||
runTest("compiler/testData/codegen/box/script/outOuOrderDecls.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("scripInstance.kt")
|
||||
public void testScripInstance() {
|
||||
|
||||
Reference in New Issue
Block a user