Compare inner class access flags in bytecode listing tests
This commit is contained in:
+18
-9
@@ -146,6 +146,9 @@ class BytecodeListingTextCollectingVisitor(val filter: Filter, val withSignature
|
||||
}
|
||||
}
|
||||
|
||||
private fun getModifiers(target: ModifierTarget, access: Int) =
|
||||
MODIFIERS.filter { it.hasModifier(access, target) }.joinToString(separator = " ") { it.text }
|
||||
|
||||
private fun classOrInterface(access: Int): String {
|
||||
return when {
|
||||
access and ACC_ANNOTATION != 0 -> "annotation class"
|
||||
@@ -266,15 +269,21 @@ class BytecodeListingTextCollectingVisitor(val filter: Filter, val withSignature
|
||||
if (!filter.shouldWriteInnerClass(name)) {
|
||||
return
|
||||
}
|
||||
if (innerName == null) {
|
||||
assertNull(outerName, "Anonymous classes should have neither innerName nor outerName. Name=$name, outerName=$outerName")
|
||||
declarationsInsideClass.add(Declaration("inner (anonymous) class $name"))
|
||||
} else if (outerName == null) {
|
||||
declarationsInsideClass.add(Declaration("inner (local) class $name $innerName"))
|
||||
} else if (name == "$outerName$$innerName") {
|
||||
declarationsInsideClass.add(Declaration("inner class $name"))
|
||||
} else {
|
||||
declarationsInsideClass.add(Declaration("inner (unrecognized) class $name $outerName $innerName"))
|
||||
|
||||
when {
|
||||
innerName == null -> {
|
||||
assertNull(outerName, "Anonymous classes should have neither innerName nor outerName. Name=$name, outerName=$outerName")
|
||||
declarationsInsideClass.add(Declaration("inner (anonymous) class $name"))
|
||||
}
|
||||
outerName == null -> {
|
||||
declarationsInsideClass.add(Declaration("inner (local) class $name $innerName"))
|
||||
}
|
||||
name == "$outerName$$innerName" -> {
|
||||
declarationsInsideClass.add(Declaration("${getModifiers(ModifierTarget.CLASS, access)} inner class $name"))
|
||||
}
|
||||
else -> {
|
||||
declarationsInsideClass.add(Declaration("inner (unrecognized) class $name $outerName $innerName"))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user