diff --git a/utbot-framework/src/main/kotlin/org/utbot/framework/codegen/model/util/ClassIdUtil.kt b/utbot-framework/src/main/kotlin/org/utbot/framework/codegen/model/util/ClassIdUtil.kt index 6203ed01c7..54bbbf53f1 100644 --- a/utbot-framework/src/main/kotlin/org/utbot/framework/codegen/model/util/ClassIdUtil.kt +++ b/utbot-framework/src/main/kotlin/org/utbot/framework/codegen/model/util/ClassIdUtil.kt @@ -2,6 +2,7 @@ package org.utbot.framework.codegen.model.util import org.utbot.framework.plugin.api.ClassId import org.utbot.framework.plugin.api.util.id +import org.utbot.framework.plugin.api.util.isArray /** * For now we will count class accessible if it is: @@ -13,13 +14,19 @@ import org.utbot.framework.plugin.api.util.id * @param packageName name of the package we check accessibility from */ infix fun ClassId.isAccessibleFrom(packageName: String): Boolean { - val isOuterClassAccessible = if (isNested) { - outerClass!!.id.isAccessibleFrom(packageName) - } else { - true + + if (this.isLocal || this.isSynthetic) { + return false } - val isAccessibleFromPackageByModifiers = isPublic || (this.packageName == packageName && (isPackagePrivate || isProtected)) + val outerClassId = outerClass?.id + if (outerClassId != null && !outerClassId.isAccessibleFrom(packageName)) { + return false + } - return isOuterClassAccessible && isAccessibleFromPackageByModifiers && !isLocal && !isSynthetic + return if (this.isArray) { + elementClassId!!.isAccessibleFrom(packageName) + } else { + isPublic || (this.packageName == packageName && (isPackagePrivate || isProtected)) + } } \ No newline at end of file