@@ -339,10 +339,11 @@ End If
339339 var state = MockParser . CreateAndParse ( vbe . Object ) ;
340340 var tree = state . GetParseTree ( new QualifiedModuleName ( component ) ) ;
341341 var visitor = new IfStmtContextElementCollectorVisitor ( ) ;
342- var context = visitor . Visit ( tree ) . First ( ) ;
342+ var contexts = visitor . Visit ( tree ) ;
343343 var selection = new Selection ( 6 , 1 , 10 , 7 ) ;
344344
345- Assert . IsTrue ( context . Contains ( selection ) ) ;
345+ Assert . IsTrue ( contexts . ElementAt ( 0 ) . Contains ( selection ) ) ; // first If block
346+ Assert . IsFalse ( contexts . ElementAt ( 1 ) . Contains ( selection ) ) ; // second If block
346347 }
347348
348349 [ TestMethod ]
@@ -375,10 +376,11 @@ End If
375376 var state = MockParser . CreateAndParse ( vbe . Object ) ;
376377 var tree = state . GetParseTree ( new QualifiedModuleName ( component ) ) ;
377378 var visitor = new IfStmtContextElementCollectorVisitor ( ) ;
378- var context = visitor . Visit ( tree ) . Last ( ) ;
379+ var contexts = visitor . Visit ( tree ) ;
379380 var selection = new Selection ( 6 , 1 , 10 , 7 ) ;
380381
381- Assert . IsFalse ( context . Contains ( selection ) ) ;
382+ Assert . IsTrue ( contexts . ElementAt ( 0 ) . Contains ( selection ) ) ; // first If block
383+ Assert . IsFalse ( contexts . ElementAt ( 1 ) . Contains ( selection ) ) ; // second If block
382384 }
383385
384386 [ TestMethod ]
@@ -411,10 +413,11 @@ End If
411413 var state = MockParser . CreateAndParse ( vbe . Object ) ;
412414 var tree = state . GetParseTree ( new QualifiedModuleName ( component ) ) ;
413415 var visitor = new IfStmtContextElementCollectorVisitor ( ) ;
414- var context = visitor . Visit ( tree ) . Last ( ) ;
416+ var contexts = visitor . Visit ( tree ) ;
415417 var selection = new Selection ( 12 , 1 , 16 , 7 ) ;
416418
417- Assert . IsTrue ( context . Contains ( selection ) ) ;
419+ Assert . IsFalse ( contexts . ElementAt ( 0 ) . Contains ( selection ) ) ; // first If block
420+ Assert . IsTrue ( contexts . ElementAt ( 1 ) . Contains ( selection ) ) ; // second If block
418421 }
419422
420423 [ TestMethod ]
@@ -447,11 +450,13 @@ End If
447450 var state = MockParser . CreateAndParse ( vbe . Object ) ;
448451 var tree = state . GetParseTree ( new QualifiedModuleName ( component ) ) ;
449452 var visitor = new IfStmtContextElementCollectorVisitor ( ) ;
450- var context = visitor . Visit ( tree ) . Last ( ) ;
451- var token = context . Stop ;
453+ var contexts = visitor . Visit ( tree ) ;
454+ var token = contexts . ElementAt ( 1 ) . Stop ;
452455 var selection = new Selection ( 12 , 1 , 16 , 7 ) ;
453456
454- Assert . IsTrue ( selection . Contains ( token ) ) ;
457+ Assert . IsTrue ( selection . Contains ( token ) ) ; // last token in second If block
458+ Assert . IsFalse ( contexts . ElementAt ( 0 ) . Contains ( selection ) ) ; // first If block
459+ Assert . IsTrue ( contexts . ElementAt ( 1 ) . Contains ( selection ) ) ; // second If block
455460 }
456461
457462 [ TestMethod ]
@@ -494,7 +499,7 @@ End If
494499 [ TestMethod ]
495500 [ TestCategory ( "Grammar" ) ]
496501 [ TestCategory ( "Selection" ) ]
497- public void Selection__Contains_Only_Innermost_Nested_Context ( )
502+ public void Selection_Contains_Only_Innermost_Nested_Context ( )
498503 {
499504 const string inputCode = @"
500505Option Explicit
@@ -524,17 +529,20 @@ End If
524529 var state = MockParser . CreateAndParse ( vbe . Object ) ;
525530 var tree = state . GetParseTree ( new QualifiedModuleName ( component ) ) ;
526531 var visitor = new IfStmtContextElementCollectorVisitor ( ) ;
527- var context = visitor . Visit ( tree ) . First ( ) ; //returns innermost statement first then topmost consecutively
528- var token = context . Stop ;
532+ var contexts = visitor . Visit ( tree ) ;
533+ var token = contexts . ElementAt ( 0 ) . Stop ;
529534 var selection = new Selection ( 8 , 1 , 10 , 9 ) ;
530535
531- Assert . IsTrue ( selection . Contains ( token ) ) ;
536+ Assert . IsTrue ( selection . Contains ( token ) ) ; // last token in innermost If block
537+ Assert . IsTrue ( contexts . ElementAt ( 0 ) . Contains ( selection ) ) ; // innermost If block
538+ Assert . IsFalse ( contexts . ElementAt ( 1 ) . Contains ( selection ) ) ; // first outer If block
539+ Assert . IsFalse ( contexts . ElementAt ( 2 ) . Contains ( selection ) ) ; // second outer If block
532540 }
533541
534542 [ TestMethod ]
535543 [ TestCategory ( "Grammar" ) ]
536544 [ TestCategory ( "Selection" ) ]
537- public void Selection__Contains_Both_Nested_Context ( )
545+ public void Selection_Contains_Both_Nested_Context ( )
538546 {
539547 const string inputCode = @"
540548Option Explicit
@@ -564,11 +572,14 @@ End If
564572 var state = MockParser . CreateAndParse ( vbe . Object ) ;
565573 var tree = state . GetParseTree ( new QualifiedModuleName ( component ) ) ;
566574 var visitor = new IfStmtContextElementCollectorVisitor ( ) ;
567- var context = visitor . Visit ( tree ) . First ( ) ; //returns innermost statement first then topmost consecutively
568- var token = context . Stop ;
575+ var contexts = visitor . Visit ( tree ) ; //returns innermost statement first then topmost consecutively
576+ var token = contexts . ElementAt ( 0 ) . Stop ;
569577 var selection = new Selection ( 6 , 1 , 13 , 7 ) ;
570578
571- Assert . IsTrue ( selection . Contains ( token ) ) ;
579+ Assert . IsTrue ( selection . Contains ( token ) ) ; // last token in innermost If block
580+ Assert . IsTrue ( contexts . ElementAt ( 0 ) . Contains ( selection ) ) ; // innermost If block
581+ Assert . IsTrue ( contexts . ElementAt ( 1 ) . Contains ( selection ) ) ; // first outer If block
582+ Assert . IsFalse ( contexts . ElementAt ( 2 ) . Contains ( selection ) ) ; // second outer If block
572583 }
573584
574585 [ TestMethod ]
@@ -604,11 +615,14 @@ End If
604615 var state = MockParser . CreateAndParse ( vbe . Object ) ;
605616 var tree = state . GetParseTree ( new QualifiedModuleName ( component ) ) ;
606617 var visitor = new IfStmtContextElementCollectorVisitor ( ) ;
607- var context = visitor . Visit ( tree ) . First ( ) ; //returns innermost statement first then topmost consecutively
608- var token = context . Stop ;
618+ var contexts = visitor . Visit ( tree ) ; //returns innermost statement first then topmost consecutively
619+ var token = contexts . ElementAt ( 0 ) . Stop ;
609620 var selection = new Selection ( 15 , 1 , 19 , 7 ) ;
610621
611- Assert . IsFalse ( selection . Contains ( token ) ) ;
622+ Assert . IsFalse ( selection . Contains ( token ) ) ; // last token in innermost If block
623+ Assert . IsFalse ( contexts . ElementAt ( 0 ) . Contains ( selection ) ) ; // innermost If block
624+ Assert . IsFalse ( contexts . ElementAt ( 1 ) . Contains ( selection ) ) ; // first outer if block
625+ Assert . IsTrue ( contexts . ElementAt ( 2 ) . Contains ( selection ) ) ; // second outer If block
612626 }
613627 }
614628}
0 commit comments