@@ -288,6 +288,40 @@ void testInnerLoops() {
288
288
assertThat (walker .getCurrentNode ()).isInstanceOf (ExitVertex .class );
289
289
}
290
290
291
+ @ Test
292
+ void testLoopWithNullCodeBlock () {
293
+ var code = """
294
+ Для х = 1 По 10 Цикл
295
+ КонецЦикла;""" ;
296
+
297
+ var parseTree = parse (code );
298
+
299
+ // Force null code block by removing the CodeBlock child
300
+ var forStatement = parseTree .statement (0 ).compoundStatement ().forStatement ();
301
+ var children = forStatement .children ;
302
+
303
+ // Find and remove the CodeBlockContext child
304
+ for (int i = 0 ; i < children .size (); i ++) {
305
+ if (children .get (i ) instanceof BSLParser .CodeBlockContext ) {
306
+ children .remove (i );
307
+ break ;
308
+ }
309
+ }
310
+
311
+ var builder = new CfgBuildingParseTreeVisitor ();
312
+ var graph = builder .buildGraph (parseTree );
313
+
314
+ // Check if graph was built successfully
315
+ assertThat (graph ).isNotNull ();
316
+ assertThat (graph .vertexSet ()).isNotEmpty ();
317
+
318
+ // Verify basic structure - should at least have loop vertex and exit
319
+ var vertices = traverseToOrderedList (graph );
320
+ assertThat (vertices )
321
+ .hasAtLeastOneElementOfType (ForLoopVertex .class )
322
+ .hasAtLeastOneElementOfType (ExitVertex .class );
323
+ }
324
+
291
325
@ Test
292
326
void tryHandlerFlowTest () {
293
327
var code = """
@@ -451,41 +485,6 @@ void preprocessorIfWithElseBranching() {
451
485
assertThat (walker .getCurrentNode ()).isSameAs (lastStatement );
452
486
}
453
487
454
- @ Test
455
- void testLoopWithNullCodeBlock () {
456
- var code = """
457
- Для х = 1 По 10 Цикл
458
- А = 1;
459
- КонецЦикла;""" ;
460
-
461
- var parseTree = parse (code );
462
-
463
- // Force null code block by removing the CodeBlock child
464
- var forStatement = parseTree .statement (0 ).compoundStatement ().forStatement ();
465
- var children = forStatement .children ;
466
-
467
- // Find and remove the CodeBlockContext child
468
- for (int i = 0 ; i < children .size (); i ++) {
469
- if (children .get (i ) instanceof BSLParser .CodeBlockContext ) {
470
- children .remove (i );
471
- break ;
472
- }
473
- }
474
-
475
- var builder = new CfgBuildingParseTreeVisitor ();
476
- var graph = builder .buildGraph (parseTree );
477
-
478
- // Check if graph was built successfully
479
- assertThat (graph ).isNotNull ();
480
- assertThat (graph .vertexSet ()).isNotEmpty ();
481
-
482
- // Verify basic structure - should at least have loop vertex and exit
483
- var vertices = traverseToOrderedList (graph );
484
- assertThat (vertices )
485
- .hasAtLeastOneElementOfType (ForLoopVertex .class )
486
- .hasAtLeastOneElementOfType (ExitVertex .class );
487
- }
488
-
489
488
@ Test
490
489
void preprocessorIfWithElseIfBranching () {
491
490
var code = """
0 commit comments