Fix for KT-14774: Incorrect inner class modifier generated for sealed inner classes
#KT-14774 Fixed
This commit is contained in:
@@ -307,10 +307,11 @@ public class AsmUtil {
|
||||
case ANNOTATION_CLASS:
|
||||
return ACC_ABSTRACT | ACC_ANNOTATION | ACC_INTERFACE;
|
||||
default:
|
||||
if (innerClass.getModality() == Modality.FINAL) {
|
||||
Modality modality = innerClass.getModality();
|
||||
if (modality == Modality.FINAL) {
|
||||
return ACC_FINAL;
|
||||
}
|
||||
else if (innerClass.getModality() == Modality.ABSTRACT) {
|
||||
else if (modality == Modality.ABSTRACT || modality == Modality.SEALED) {
|
||||
return ACC_ABSTRACT;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
class Foo {
|
||||
sealed class Bar
|
||||
}
|
||||
|
||||
// TESTED_OBJECT_KIND: class
|
||||
// TESTED_OBJECTS: Foo$Bar
|
||||
// FLAGS: ACC_PUBLIC, ACC_ABSTRACT, ACC_SUPER
|
||||
|
||||
// TESTED_OBJECT_KIND: innerClass
|
||||
// TESTED_OBJECTS: Foo, Bar
|
||||
// FLAGS: ACC_PUBLIC, ACC_ABSTRACT, ACC_STATIC
|
||||
@@ -100,6 +100,12 @@ public class WriteFlagsTestGenerated extends AbstractWriteFlagsTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("innerSealed.kt")
|
||||
public void testInnerSealed() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/writeFlags/class/accessFlags/innerSealed.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("mappingWhen.kt")
|
||||
public void testMappingWhen() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/writeFlags/class/accessFlags/mappingWhen.kt");
|
||||
|
||||
Reference in New Issue
Block a user