@@ -538,23 +538,26 @@ module Unification {
538
538
*
539
539
* Note: This predicate is inlined.
540
540
*/
541
- bindingset [ t]
541
+ bindingset [ this ]
542
+ pragma [ inline_late]
542
543
predicate unifiable ( Type t ) { none ( ) }
543
544
544
545
/**
545
546
* Holds if this type parameter subsumes type `t`
546
547
*
547
548
* Note: This predicate is inlined.
548
549
*/
549
- bindingset [ t]
550
+ bindingset [ this ]
551
+ pragma [ inline_late]
550
552
predicate subsumes ( Type t ) { none ( ) }
551
553
}
552
554
553
555
/** A type parameter that has a single constraint. */
554
556
private class SingleConstraintTypeParameter extends ConstrainedTypeParameter {
555
557
SingleConstraintTypeParameter ( ) { constraintCount = 1 }
556
558
557
- bindingset [ t]
559
+ bindingset [ this ]
560
+ pragma [ inline_late]
558
561
override predicate unifiable ( Type t ) {
559
562
exists ( TTypeParameterConstraint ttc | ttc = getATypeConstraint ( this ) |
560
563
ttc = TRefTypeConstraint ( ) and
@@ -567,7 +570,8 @@ module Unification {
567
570
)
568
571
}
569
572
570
- bindingset [ t]
573
+ bindingset [ this ]
574
+ pragma [ inline_late]
571
575
override predicate subsumes ( Type t ) {
572
576
exists ( TTypeParameterConstraint ttc | ttc = getATypeConstraint ( this ) |
573
577
ttc = TRefTypeConstraint ( ) and
@@ -585,9 +589,13 @@ module Unification {
585
589
private class MultiConstraintTypeParameter extends ConstrainedTypeParameter {
586
590
MultiConstraintTypeParameter ( ) { constraintCount > 1 }
587
591
588
- bindingset [ t]
592
+ pragma [ nomagic]
593
+ TTypeParameterConstraint getATypeConstraint ( ) { result = getATypeConstraint ( this ) }
594
+
595
+ bindingset [ this ]
596
+ pragma [ inline_late]
589
597
override predicate unifiable ( Type t ) {
590
- forex ( TTypeParameterConstraint ttc | ttc = getATypeConstraint ( this ) |
598
+ forex ( TTypeParameterConstraint ttc | ttc = this . getATypeConstraint ( ) |
591
599
ttc = TRefTypeConstraint ( ) and
592
600
t .isRefType ( )
593
601
or
@@ -598,9 +606,10 @@ module Unification {
598
606
)
599
607
}
600
608
601
- bindingset [ t]
609
+ bindingset [ this ]
610
+ pragma [ inline_late]
602
611
override predicate subsumes ( Type t ) {
603
- forex ( TTypeParameterConstraint ttc | ttc = getATypeConstraint ( this ) |
612
+ forex ( TTypeParameterConstraint ttc | ttc = this . getATypeConstraint ( ) |
604
613
ttc = TRefTypeConstraint ( ) and
605
614
t .isRefType ( )
606
615
or
0 commit comments