From d08e4af9ba267504fd146001295c75d80a96b893 Mon Sep 17 00:00:00 2001 From: Dmitrii Timofeev Date: Tue, 19 Jul 2022 19:39:15 +0300 Subject: [PATCH] Stricter check for enum classes in EnumModelProvider #558 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`. --- .../main/kotlin/org/utbot/fuzzer/providers/EnumModelProvider.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utbot-fuzzers/src/main/kotlin/org/utbot/fuzzer/providers/EnumModelProvider.kt b/utbot-fuzzers/src/main/kotlin/org/utbot/fuzzer/providers/EnumModelProvider.kt index ed472ff9ca..42540ee9b5 100644 --- a/utbot-fuzzers/src/main/kotlin/org/utbot/fuzzer/providers/EnumModelProvider.kt +++ b/utbot-fuzzers/src/main/kotlin/org/utbot/fuzzer/providers/EnumModelProvider.kt @@ -13,7 +13,7 @@ object EnumModelProvider : ModelProvider { override fun generate(description: FuzzedMethodDescription): Sequence = sequence { description.parametersMap .asSequence() - .filter { (classId, _) -> classId.isSubtypeOf(Enum::class.java.id) } + .filter { (classId, _) -> classId.jClass.isEnum } .forEach { (classId, indices) -> yieldAllValues(indices, classId.jClass.enumConstants.filterIsInstance>().map { UtEnumConstantModel(classId, it).fuzzed { summary = "%var% = ${it.name}" }