@@ -2860,7 +2860,8 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
28602860
28612861 bindingset [ c, tail]
28622862 Ap apCons ( Content c , Ap tail ) {
2863- exists ( boolean isSingleton | result .getAHead ( isSingleton ) = c |
2863+ exists ( boolean isSingleton |
2864+ result .getAHead ( isSingleton ) = c and
28642865 if tail instanceof ApNil then isSingleton = true else isSingleton = false
28652866 )
28662867 }
@@ -3200,7 +3201,10 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
32003201 override predicate isCons ( Content head , AccessPathApprox tail ) {
32013202 head = c and
32023203 (
3203- exists ( Content c2 | Stage4:: consCand ( c , TFrontHead ( c2 , _) ) |
3204+ exists ( Content c2 , boolean isSingleton |
3205+ Stage4:: consCand ( c , TFrontHead ( c2 , isSingleton ) ) and
3206+ if len > 2 then isSingleton = false else isSingleton = true
3207+ |
32043208 tail = TConsCons ( c2 , _, len - 1 )
32053209 or
32063210 len = 2 and
@@ -3543,7 +3547,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
35433547 override predicate isCons ( Content head , AccessPath tail ) { head = head_ and tail = tail_ }
35443548
35453549 override AccessPathFrontHead getFront ( ) {
3546- if tail_ .length ( ) = 0
3550+ if this .length ( ) = 1
35473551 then result = TFrontHead ( head_ , true )
35483552 else result = TFrontHead ( head_ , false )
35493553 }
0 commit comments