@@ -3729,7 +3729,7 @@ public void isStartOfChain() {
3729
3729
// `expr?.prop`
3730
3730
Node optChainGet = IR .startOptChainGetprop (IR .name ("expr" ), IR .string ("prop" ));
3731
3731
3732
- assertThat (NodeUtil .getStartOfOptChain (optChainGet )).isEqualTo (optChainGet );
3732
+ assertThat (NodeUtil .getStartOfOptChainSegment (optChainGet )).isEqualTo (optChainGet );
3733
3733
}
3734
3734
3735
3735
@ Test
@@ -3738,7 +3738,7 @@ public void shortChain() {
3738
3738
Node innerGetProp = IR .startOptChainGetprop (IR .name ("expr" ), IR .string ("pro1" ));
3739
3739
Node outterGetProp = IR .continueOptChainGetprop (innerGetProp , IR .string ("prop2" ));
3740
3740
3741
- assertThat (NodeUtil .getStartOfOptChain (outterGetProp )).isEqualTo (innerGetProp );
3741
+ assertThat (NodeUtil .getStartOfOptChainSegment (outterGetProp )).isEqualTo (innerGetProp );
3742
3742
}
3743
3743
3744
3744
@ Test
@@ -3750,8 +3750,8 @@ public void mixedChain() {
3750
3750
Node optCall = IR .continueOptChainCall (optGetProp );
3751
3751
Node optGetElem = IR .continueOptChainGetelem (optCall , IR .name ("prop3" ));
3752
3752
3753
- assertThat (NodeUtil .getStartOfOptChain (optGetElem )).isEqualTo (optGetProp );
3754
- assertThat (NodeUtil .getStartOfOptChain (optCall )).isEqualTo (optGetProp );
3753
+ assertThat (NodeUtil .getStartOfOptChainSegment (optGetElem )).isEqualTo (optGetProp );
3754
+ assertThat (NodeUtil .getStartOfOptChainSegment (optCall )).isEqualTo (optGetProp );
3755
3755
}
3756
3756
}
3757
3757
@@ -3763,7 +3763,7 @@ public void isEndOfChain() {
3763
3763
// `expr?.prop`
3764
3764
Node optChainGet = IR .startOptChainGetprop (IR .name ("expr" ), IR .string ("prop" ));
3765
3765
3766
- assertThat (NodeUtil .getEndOfOptChain (optChainGet )).isEqualTo (optChainGet );
3766
+ assertThat (NodeUtil .getEndOfOptChainSegment (optChainGet )).isEqualTo (optChainGet );
3767
3767
}
3768
3768
3769
3769
@ Test
@@ -3775,27 +3775,32 @@ public void isEndOfChain_call_innerChain() {
3775
3775
Node innerOptChain = optChainCall .getLastChild (); // `x?.y`
3776
3776
assertThat (innerOptChain .isOptChainGetProp ()).isTrue ();
3777
3777
assertThat (innerOptChain .isOptionalChainStart ()).isTrue ();
3778
- assertThat (NodeUtil .isEndOfOptChain (innerOptChain )).isTrue ();
3778
+ assertThat (NodeUtil .isEndOfOptChainSegment (innerOptChain )).isTrue ();
3779
+ assertThat (NodeUtil .isEndOfFullOptChain (innerOptChain )).isTrue ();
3779
3780
}
3780
3781
3781
3782
@ Test
3782
3783
public void isEndOfChain_getProp_innerChain () {
3783
3784
Node optChainGetProp = parseExpr ("a?.b.x?.y" );
3784
3785
assertThat (optChainGetProp .isOptChainGetProp ()).isTrue ();
3785
3786
assertThat (optChainGetProp .isOptionalChainStart ()).isTrue ();
3786
- assertThat (NodeUtil .isEndOfOptChain (optChainGetProp )).isTrue ();
3787
+ assertThat (NodeUtil .isEndOfOptChainSegment (optChainGetProp )).isTrue ();
3788
+ assertThat (NodeUtil .isEndOfFullOptChain (optChainGetProp )).isTrue ();
3787
3789
3788
- // Check that `a?.b.x` is not the start of optChain, but it ends the chain `a?.b`.
3790
+ // Check that `a?.b.x` is not the start of the optional chain, but it ends the segment that
3791
+ // starts with `a?.b`.
3789
3792
Node innerOptChain = optChainGetProp .getFirstChild (); // `a?.b.x`
3790
3793
assertThat (innerOptChain .isOptChainGetProp ()).isTrue ();
3791
3794
assertThat (innerOptChain .isOptionalChainStart ()).isFalse ();
3792
- assertThat (NodeUtil .isEndOfOptChain (innerOptChain )).isTrue ();
3795
+ assertThat (NodeUtil .isEndOfOptChainSegment (innerOptChain )).isTrue ();
3796
+ assertThat (NodeUtil .isEndOfFullOptChain (innerOptChain )).isFalse ();
3793
3797
3794
3798
// Check that `a?.b` is the start of optChain but not the end
3795
3799
Node innerMostOptChain = innerOptChain .getFirstChild (); // `a?.b`
3796
3800
assertThat (innerMostOptChain .isOptChainGetProp ()).isTrue ();
3797
3801
assertThat (innerMostOptChain .isOptionalChainStart ()).isTrue ();
3798
- assertThat (NodeUtil .isEndOfOptChain (innerMostOptChain )).isFalse ();
3802
+ assertThat (NodeUtil .isEndOfOptChainSegment (innerMostOptChain )).isFalse ();
3803
+ assertThat (NodeUtil .isEndOfFullOptChain (innerMostOptChain )).isFalse ();
3799
3804
}
3800
3805
3801
3806
@ Test
@@ -3808,7 +3813,8 @@ public void isEndOfChain_call_innerChain2() {
3808
3813
Node innerOptChain = optChainCall .getLastChild ();
3809
3814
assertThat (innerOptChain .isOptChainGetProp ()).isTrue ();
3810
3815
assertThat (innerOptChain .isOptionalChainStart ()).isTrue ();
3811
- assertThat (NodeUtil .isEndOfOptChain (innerOptChain )).isTrue ();
3816
+ assertThat (NodeUtil .isEndOfOptChainSegment (innerOptChain )).isTrue ();
3817
+ assertThat (NodeUtil .isEndOfFullOptChain (innerOptChain )).isTrue ();
3812
3818
}
3813
3819
3814
3820
@ Test
@@ -3821,13 +3827,15 @@ public void isEndOfChain_callAndGetProp_innerChain() {
3821
3827
Node optChainCall = optChainGetProp .getFirstChild ();
3822
3828
assertThat (optChainCall .isOptChainCall ()).isTrue ();
3823
3829
assertThat (optChainCall .isOptionalChainStart ()).isFalse ();
3824
- assertThat (NodeUtil .isEndOfOptChain (optChainCall )).isFalse ();
3830
+ assertThat (NodeUtil .isEndOfOptChainSegment (optChainCall )).isFalse ();
3831
+ assertThat (NodeUtil .isEndOfFullOptChain (optChainCall )).isFalse ();
3825
3832
3826
3833
// Check that `x?.y` is the start and end of the chain
3827
3834
Node innerOptChain = optChainCall .getLastChild ();
3828
3835
assertThat (innerOptChain .isOptChainGetProp ()).isTrue ();
3829
3836
assertThat (innerOptChain .isOptionalChainStart ()).isTrue ();
3830
- assertThat (NodeUtil .isEndOfOptChain (innerOptChain )).isTrue ();
3837
+ assertThat (NodeUtil .isEndOfOptChainSegment (innerOptChain )).isTrue ();
3838
+ assertThat (NodeUtil .isEndOfFullOptChain (innerOptChain )).isTrue ();
3831
3839
}
3832
3840
3833
3841
@ Test
@@ -3840,13 +3848,15 @@ public void isEndOfChain_callAndGetProp_innerChain_multipleInnerArgs() {
3840
3848
Node optChainCall = optChainGetProp .getFirstChild ();
3841
3849
assertThat (optChainCall .isOptChainCall ()).isTrue ();
3842
3850
assertThat (optChainCall .isOptionalChainStart ()).isFalse ();
3843
- assertThat (NodeUtil .isEndOfOptChain (optChainCall )).isFalse ();
3851
+ assertThat (NodeUtil .isEndOfOptChainSegment (optChainCall )).isFalse ();
3852
+ assertThat (NodeUtil .isEndOfFullOptChain (optChainCall )).isFalse ();
3844
3853
3845
3854
// Check that `x?.y` is the start and end of its chain
3846
3855
Node innerOptChain = optChainCall .getSecondChild ();
3847
3856
assertThat (innerOptChain .isOptChainGetProp ()).isTrue ();
3848
3857
assertThat (innerOptChain .isOptionalChainStart ()).isTrue ();
3849
- assertThat (NodeUtil .isEndOfOptChain (innerOptChain )).isTrue ();
3858
+ assertThat (NodeUtil .isEndOfOptChainSegment (innerOptChain )).isTrue ();
3859
+ assertThat (NodeUtil .isEndOfFullOptChain (innerOptChain )).isTrue ();
3850
3860
}
3851
3861
3852
3862
@ Test
@@ -3855,7 +3865,7 @@ public void shortChain() {
3855
3865
Node innerGetProp = IR .startOptChainGetprop (IR .name ("expr" ), IR .string ("pro1" ));
3856
3866
Node outerGetProp = IR .continueOptChainGetprop (innerGetProp , IR .string ("prop2" ));
3857
3867
3858
- assertThat (NodeUtil .getEndOfOptChain (innerGetProp )).isEqualTo (outerGetProp );
3868
+ assertThat (NodeUtil .getEndOfOptChainSegment (innerGetProp )).isEqualTo (outerGetProp );
3859
3869
}
3860
3870
3861
3871
@ Test
@@ -3867,7 +3877,7 @@ public void twoChains() {
3867
3877
Node optCall = IR .continueOptChainCall (optGetProp );
3868
3878
IR .startOptChainGetelem (optCall , IR .name ("prop3" ));
3869
3879
3870
- assertThat (NodeUtil .getEndOfOptChain (startOptGetProp )).isEqualTo (optCall );
3880
+ assertThat (NodeUtil .getEndOfOptChainSegment (startOptGetProp )).isEqualTo (optCall );
3871
3881
}
3872
3882
3873
3883
@ Test
@@ -3877,7 +3887,7 @@ public void breakingOutOfOptChain() {
3877
3887
Node optGetProp = IR .continueOptChainGetprop (startOptGetProp , IR .string ("prop2" ));
3878
3888
IR .getprop (optGetProp , IR .string ("prop3" ));
3879
3889
3880
- assertThat (NodeUtil .getEndOfOptChain (startOptGetProp )).isEqualTo (optGetProp );
3890
+ assertThat (NodeUtil .getEndOfOptChainSegment (startOptGetProp )).isEqualTo (optGetProp );
3881
3891
}
3882
3892
}
3883
3893
0 commit comments