@@ -107,7 +107,6 @@ import org.utbot.engine.symbolic.asSoftConstraint
107
107
import org.utbot.engine.symbolic.asAssumption
108
108
import org.utbot.engine.symbolic.asUpdate
109
109
import org.utbot.engine.util.mockListeners.MockListener
110
- import org.utbot.engine.util.mockListeners.MockListenerController
111
110
import org.utbot.engine.util.statics.concrete.associateEnumSootFieldsWithConcreteValues
112
111
import org.utbot.engine.util.statics.concrete.isEnumAffectingExternalStatics
113
112
import org.utbot.engine.util.statics.concrete.isEnumValuesFieldName
@@ -116,7 +115,7 @@ import org.utbot.engine.util.statics.concrete.makeEnumStaticFieldsUpdates
116
115
import org.utbot.engine.util.statics.concrete.makeSymbolicValuesFromEnumConcreteValues
117
116
import org.utbot.framework.PathSelectorType
118
117
import org.utbot.framework.UtSettings
119
- import org.utbot.framework.UtSettings.checkNpeForFinalFields
118
+ import org.utbot.framework.UtSettings.maximizeCoverageUsingReflection
120
119
import org.utbot.framework.UtSettings.checkSolverTimeoutMillis
121
120
import org.utbot.framework.UtSettings.enableFeatureProcess
122
121
import org.utbot.framework.UtSettings.pathSelectorStepsLimit
@@ -339,7 +338,7 @@ class UtBotSymbolicEngine(
339
338
340
339
private val classUnderTest: ClassId = methodUnderTest.clazz.id
341
340
342
- private val mocker: Mocker = Mocker (mockStrategy, classUnderTest, hierarchy, chosenClassesToMockAlways, MockListenerController (controller) )
341
+ private val mocker: Mocker = Mocker (mockStrategy, classUnderTest, hierarchy, chosenClassesToMockAlways)
343
342
344
343
private val statesForConcreteExecution: MutableList <ExecutionState > = mutableListOf ()
345
344
@@ -2233,14 +2232,22 @@ class UtBotSymbolicEngine(
2233
2232
}
2234
2233
2235
2234
// See docs/SpeculativeFieldNonNullability.md for details
2236
- if (field.isFinal && field.declaringClass.isLibraryClass && ! checkNpeForFinalFields) {
2237
- markAsSpeculativelyNotNull(createdField.addr)
2238
- }
2235
+ checkAndMarkLibraryFieldSpeculativelyNotNull(field, createdField)
2239
2236
}
2240
2237
2241
2238
return createdField
2242
2239
}
2243
2240
2241
+ private fun checkAndMarkLibraryFieldSpeculativelyNotNull (field : SootField , createdField : SymbolicValue ) {
2242
+ if (maximizeCoverageUsingReflection || ! field.declaringClass.isLibraryClass) {
2243
+ return
2244
+ }
2245
+
2246
+ if (field.isFinal || ! field.isPublic) {
2247
+ markAsSpeculativelyNotNull(createdField.addr)
2248
+ }
2249
+ }
2250
+
2244
2251
private fun createArray (pName : String , type : ArrayType ): ArrayValue {
2245
2252
val addr = UtAddrExpression (mkBVConst(pName, UtIntSort ))
2246
2253
return createArray(addr, type, useConcreteType = false )
0 commit comments