Skip to content

Commit c85accc

Browse files
authored
Stricter check for enum classes in EnumModelProvider #558 (#559)
Co-author: volivan239 Anonymous inner classes declared for enum constants are not enums themselves, as the necessary condition for being enums is that their direct supertype is `java.lang.Enum` (see the JavaDoc and comments of `java.lang.Class#isEnum` method). For these classes, `getEnumConstants` method returns `null`.
1 parent 2fc63ac commit c85accc

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

utbot-fuzzers/src/main/kotlin/org/utbot/fuzzer/providers/EnumModelProvider.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ object EnumModelProvider : ModelProvider {
1313
override fun generate(description: FuzzedMethodDescription): Sequence<FuzzedParameter> = sequence {
1414
description.parametersMap
1515
.asSequence()
16-
.filter { (classId, _) -> classId.isSubtypeOf(Enum::class.java.id) }
16+
.filter { (classId, _) -> classId.jClass.isEnum }
1717
.forEach { (classId, indices) ->
1818
yieldAllValues(indices, classId.jClass.enumConstants.filterIsInstance<Enum<*>>().map {
1919
UtEnumConstantModel(classId, it).fuzzed { summary = "%var% = ${it.name}" }

0 commit comments

Comments
 (0)