@@ -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
@@ -2223,14 +2222,22 @@ class UtBotSymbolicEngine(
2223
2222
}
2224
2223
2225
2224
// See docs/SpeculativeFieldNonNullability.md for details
2226
- if (field.isFinal && field.declaringClass.isLibraryClass && ! checkNpeForFinalFields) {
2227
- markAsSpeculativelyNotNull(createdField.addr)
2228
- }
2225
+ checkAndMarkLibraryFieldSpeculativelyNotNull(field, createdField)
2229
2226
}
2230
2227
2231
2228
return createdField
2232
2229
}
2233
2230
2231
+ private fun checkAndMarkLibraryFieldSpeculativelyNotNull (field : SootField , createdField : SymbolicValue ) {
2232
+ if (maximizeCoverageUsingReflection || ! field.declaringClass.isLibraryClass) {
2233
+ return
2234
+ }
2235
+
2236
+ if (field.isFinal || ! field.isPublic) {
2237
+ markAsSpeculativelyNotNull(createdField.addr)
2238
+ }
2239
+ }
2240
+
2234
2241
private fun createArray (pName : String , type : ArrayType ): ArrayValue {
2235
2242
val addr = UtAddrExpression (mkBVConst(pName, UtIntSort ))
2236
2243
return createArray(addr, type, useConcreteType = false )
0 commit comments