Drop obsolete TODO during FIR building
This commit is contained in:
+1
@@ -89,6 +89,7 @@ inline fun isClassLocal(classNode: LighterASTNode, getParent: LighterASTNode.()
|
|||||||
parent?.tokenType == KT_FILE -> return true
|
parent?.tokenType == KT_FILE -> return true
|
||||||
parent?.tokenType == CLASS_BODY && !(grandParent?.tokenType == OBJECT_DECLARATION && grandParent?.getParent()?.tokenType == OBJECT_LITERAL) -> return true
|
parent?.tokenType == CLASS_BODY && !(grandParent?.tokenType == OBJECT_DECLARATION && grandParent?.getParent()?.tokenType == OBJECT_LITERAL) -> return true
|
||||||
parent?.tokenType == BLOCK && grandParent?.tokenType == SCRIPT -> return true
|
parent?.tokenType == BLOCK && grandParent?.tokenType == SCRIPT -> return true
|
||||||
|
// NB: enum entry nested classes are considered local by FIR design (see discussion in KT-45115)
|
||||||
parent?.tokenType == ENUM_ENTRY -> return true
|
parent?.tokenType == ENUM_ENTRY -> return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -793,11 +793,8 @@ class RawFirBuilder(
|
|||||||
override fun visitClassOrObject(classOrObject: KtClassOrObject, data: Unit): FirElement {
|
override fun visitClassOrObject(classOrObject: KtClassOrObject, data: Unit): FirElement {
|
||||||
return withChildClassName(
|
return withChildClassName(
|
||||||
classOrObject.nameAsSafeName,
|
classOrObject.nameAsSafeName,
|
||||||
classOrObject.isLocal
|
// NB: enum entry nested classes are considered local by FIR design (see discussion in KT-45115)
|
||||||
// TODO: currently enum entry initializer is represented in FIR as an FirAnonymousObject. Because of this, all
|
isLocal = classOrObject.isLocal || classOrObject.getStrictParentOfType<KtEnumEntry>() != null
|
||||||
// nested declarations are now marked local. This causes the FirNestedClassChecker to ignore some invalid programs.
|
|
||||||
// See KT-45115
|
|
||||||
|| classOrObject.getStrictParentOfType<KtEnumEntry>() != null
|
|
||||||
) {
|
) {
|
||||||
val classKind = when (classOrObject) {
|
val classKind = when (classOrObject) {
|
||||||
is KtObjectDeclaration -> ClassKind.OBJECT
|
is KtObjectDeclaration -> ClassKind.OBJECT
|
||||||
|
|||||||
Reference in New Issue
Block a user