Skip to content

Commit c4444b7

Browse files
committed
tmp
1 parent 8c75cac commit c4444b7

File tree

2 files changed

+9
-14
lines changed

2 files changed

+9
-14
lines changed

utbot-framework/src/main/kotlin/org/utbot/framework/assemble/AssembleModelGenerator.kt

+5-8
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,7 @@ class AssembleModelGenerator(private val basePackageName: String) {
445445

446446
return allModificatorsOfClass
447447
.mapNotNull { (fieldId, possibleModificators) ->
448-
chooseModificator(fieldId, possibleModificators, classId)?.let { fieldId to it }
448+
chooseModificator(fieldId, possibleModificators)?.let { fieldId to it }
449449
}
450450
.toMap()
451451
}
@@ -458,15 +458,10 @@ class AssembleModelGenerator(private val basePackageName: String) {
458458
private fun chooseModificator(
459459
fieldId: FieldId,
460460
settersAndDirectAccessors: Set<StatementId>,
461-
acceptorClassId: ClassId
462461
): StatementId? {
463462
val directAccessors = settersAndDirectAccessors
464463
.filterIsInstance<DirectFieldAccessId>()
465-
.filter {
466-
it.fieldId.isPublic ||
467-
it.fieldId.isPackagePrivate && it.fieldId.declaringClass.packageName == basePackageName ||
468-
it.fieldId.isProtected && (it.fieldId.declaringClass.packageName == basePackageName || acceptorClassId.isSubtypeOf(it.fieldId.declaringClass))
469-
}
464+
.filter {it.fieldId.isAccessibleFrom(basePackageName) }
470465

471466
if (directAccessors.any()) {
472467
return directAccessors.singleOrNull()
@@ -476,7 +471,9 @@ class AssembleModelGenerator(private val basePackageName: String) {
476471
}
477472

478473
if (settersAndDirectAccessors.any()) {
479-
return settersAndDirectAccessors.singleOrNull()
474+
return settersAndDirectAccessors
475+
.filterIsInstance<ExecutableId>()
476+
.singleOrNull { it.isAccessibleFrom(basePackageName) }
480477
?: throw AssembleException(
481478
"Field $fieldId has more than one setter: ${settersAndDirectAccessors.joinToString(" ")}"
482479
)

utbot-framework/src/main/kotlin/org/utbot/framework/codegen/model/util/FieldIdUtil.kt

+4-6
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,7 @@ import org.utbot.framework.plugin.api.util.voidClassId
1313
*
1414
* @param context context in which code is generated (it is needed because the method needs to know package and language)
1515
*/
16-
// TODO: change parameter from packageName: String to context: CgContext in ClassId.isAccessibleFrom and ExecutableId.isAccessibleFrom ?
17-
private fun FieldId.isAccessibleFrom(context: CgContext): Boolean {
18-
val packageName = context.testClassPackageName
16+
fun FieldId.isAccessibleFrom(packageName: String): Boolean {
1917
val isClassAccessible = declaringClass.isAccessibleFrom(packageName)
2018
val isAccessibleByVisibility = isPublic || (declaringClass.packageName == packageName && (isPackagePrivate || isProtected))
2119
val isAccessibleFromPackageByModifiers = isAccessibleByVisibility && !isSynthetic
@@ -36,7 +34,7 @@ internal infix fun FieldId.canBeReadFrom(context: CgContext): Boolean {
3634
return true
3735
}
3836

39-
return isAccessibleFrom(context)
37+
return isAccessibleFrom(context.testClassPackageName)
4038
}
4139

4240
private fun FieldId.canBeSetViaSetterFrom(context: CgContext): Boolean =
@@ -49,12 +47,12 @@ internal fun FieldId.canBeSetFrom(context: CgContext): Boolean {
4947
if (context.codegenLanguage == CodegenLanguage.KOTLIN) {
5048
// Kotlin will allow direct write access if both getter and setter is defined
5149
// !isAccessibleFrom(context) is important here because above rule applies to final fields only if they are not accessible in Java terms
52-
if (!isAccessibleFrom(context) && !isStatic && canBeReadViaGetterFrom(context) && canBeSetViaSetterFrom(context)) {
50+
if (!isAccessibleFrom(context.testClassPackageName) && !isStatic && canBeReadViaGetterFrom(context) && canBeSetViaSetterFrom(context)) {
5351
return true
5452
}
5553
}
5654

57-
return isAccessibleFrom(context) && !isFinal
55+
return isAccessibleFrom(context.testClassPackageName) && !isFinal
5856
}
5957

6058
/**

0 commit comments

Comments
 (0)