@@ -2538,6 +2538,18 @@ private class NoOptArg extends AnnotationArg {
2538
2538
NoOptArg ( ) { this .getValue ( ) = "noopt" }
2539
2539
}
2540
2540
2541
+ private class CallerArg extends AnnotationArg {
2542
+ CallerArg ( ) { this .getValue ( ) = "caller" }
2543
+ }
2544
+
2545
+ private class LocalArg extends AnnotationArg {
2546
+ LocalArg ( ) { this .getValue ( ) = "local" }
2547
+ }
2548
+
2549
+ private class LocalQArg extends AnnotationArg {
2550
+ LocalQArg ( ) { this .getValue ( ) = "local?" }
2551
+ }
2552
+
2541
2553
private class MonotonicAggregatesArg extends AnnotationArg {
2542
2554
MonotonicAggregatesArg ( ) { this .getValue ( ) = "monotonicAggregates" }
2543
2555
}
@@ -2597,6 +2609,27 @@ class NoOpt extends Annotation {
2597
2609
override string toString ( ) { result = "noopt" }
2598
2610
}
2599
2611
2612
+ /** An `overlay[caller]` annotation. */
2613
+ class OverlayCaller extends Annotation {
2614
+ OverlayCaller ( ) { this .getName ( ) = "overlay" and this .getArgs ( 0 ) instanceof CallerArg }
2615
+
2616
+ override string toString ( ) { result = "caller" }
2617
+ }
2618
+
2619
+ /** An `overlay[local]` annotation. */
2620
+ class OverlayLocal extends Annotation {
2621
+ OverlayLocal ( ) { this .getName ( ) = "overlay" and this .getArgs ( 0 ) instanceof LocalArg }
2622
+
2623
+ override string toString ( ) { result = "local" }
2624
+ }
2625
+
2626
+ /** An `overlay[local?]` annotation. */
2627
+ class OverlayLocalQ extends Annotation {
2628
+ OverlayLocalQ ( ) { this .getName ( ) = "overlay" and this .getArgs ( 0 ) instanceof LocalQArg }
2629
+
2630
+ override string toString ( ) { result = "local?" }
2631
+ }
2632
+
2600
2633
/** A `language[monotonicAggregates]` annotation. */
2601
2634
class MonotonicAggregates extends Annotation {
2602
2635
MonotonicAggregates ( ) { this .getArgs ( 0 ) instanceof MonotonicAggregatesArg }
0 commit comments