@@ -261,33 +261,30 @@ class InheritanceReachabilityTest {
261
261
262
262
// Test ConcreteA.process() method directly
263
263
val concreteAMethods = scene.projectClasses
264
- .find { it.name.contains(" ConcreteA" ) }
265
- ?.methods?.filter { it.name == " process" }
266
-
267
- if (! concreteAMethods.isNullOrEmpty()) {
268
- val method = concreteAMethods.first()
269
- val initialTarget = TsReachabilityTarget .InitialPoint (method.cfg.stmts.first())
270
- var target: TsTarget = initialTarget
271
-
272
- // if (this.value > 10)
273
- val valueCheck = method.cfg.stmts.filterIsInstance<EtsIfStmt >()[0 ]
274
- target = target.addChild(TsReachabilityTarget .IntermediatePoint (valueCheck))
275
-
276
- // return this.commonMethod() or similar
277
- val returnStmt = method.cfg.stmts.filterIsInstance<EtsReturnStmt >()[0 ]
278
- target.addChild(TsReachabilityTarget .FinalPoint (returnStmt))
279
-
280
- val results = machine.analyze(listOf (method), listOf (initialTarget))
281
- assertTrue(
282
- results.isNotEmpty(),
283
- " Expected at least one result for abstract method implementation reachability"
284
- )
285
-
286
- val reachedStatements = results.flatMap { it.pathNode.allStatements }.toSet()
287
- assertTrue(
288
- returnStmt in reachedStatements,
289
- " Expected return statement to be reached when value > 10"
290
- )
291
- }
264
+ .first { it.name.contains(" ConcreteA" ) }
265
+ .methods.filter { it.name == " process" }
266
+
267
+ val method = concreteAMethods.first()
268
+ val target = TsReachabilityTarget .InitialPoint (method.cfg.stmts.first())
269
+
270
+ // if (this.value > 10)
271
+ // return this.commonMethod() or similar
272
+ val ifStmt = method.cfg.stmts.filterIsInstance<EtsIfStmt >()[0 ]
273
+ val returnStmt = method.cfg.stmts.filterIsInstance<EtsReturnStmt >()[0 ]
274
+ target
275
+ .addChild(TsReachabilityTarget .IntermediatePoint (ifStmt))
276
+ .addChild(TsReachabilityTarget .FinalPoint (returnStmt))
277
+
278
+ val results = machine.analyze(listOf (method), listOf (target))
279
+ assertTrue(
280
+ results.isNotEmpty(),
281
+ " Expected at least one result for abstract method implementation reachability"
282
+ )
283
+
284
+ val reachedStatements = results.flatMap { it.pathNode.allStatements }.toSet()
285
+ assertTrue(
286
+ returnStmt in reachedStatements,
287
+ " Expected return statement to be reached when value > 10"
288
+ )
292
289
}
293
290
}
0 commit comments