@@ -82,6 +82,8 @@ private class ParameterImpl extends TParameterImpl {
82
82
result .getUserPath ( ) = this .getName ( ) and
83
83
result .getEnclosingScope ( ) = this .getEnclosingScope ( )
84
84
}
85
+
86
+ abstract predicate isPipeline ( ) ;
85
87
}
86
88
87
89
private class InternalParameter extends ParameterImpl , TInternalParameter {
@@ -108,6 +110,10 @@ private class InternalParameter extends ParameterImpl, TInternalParameter {
108
110
override Expr getDefaultValue ( ) { result = p .getDefaultValue ( ) }
109
111
110
112
override Attribute getAnAttribute ( ) { result = p .getAnAttribute ( ) }
113
+
114
+ override predicate isPipeline ( ) {
115
+ this .getAnAttribute ( ) .getANamedArgument ( ) instanceof ValueFromPipelineAttribute
116
+ }
111
117
}
112
118
113
119
/**
@@ -138,6 +144,10 @@ private class Underscore extends ParameterImpl, TUnderscore {
138
144
final override Scope getEnclosingScope ( ) { result = scope }
139
145
140
146
final override Attribute getAnAttribute ( ) { none ( ) }
147
+
148
+ final override predicate isPipeline ( ) { any ( ) }
149
+
150
+ final override predicate isFunctionParameter ( Function f , int i ) { f .getBody ( ) = scope and i = - 1 }
141
151
}
142
152
143
153
private class ThisParameter extends ParameterImpl , TThisParameter {
@@ -152,6 +162,8 @@ private class ThisParameter extends ParameterImpl, TThisParameter {
152
162
final override Scope getEnclosingScope ( ) { result = scope }
153
163
154
164
final override Attribute getAnAttribute ( ) { none ( ) }
165
+
166
+ final override predicate isPipeline ( ) { none ( ) }
155
167
}
156
168
157
169
private newtype TVariable =
@@ -265,9 +277,7 @@ class Parameter extends AbstractLocalScopeVariable, TParameter {
265
277
266
278
Attribute getAnAttribute ( ) { result = p .getAnAttribute ( ) }
267
279
268
- predicate isPipeline ( ) {
269
- this .getAnAttribute ( ) .getANamedArgument ( ) instanceof ValueFromPipelineAttribute
270
- }
280
+ predicate isPipeline ( ) { p .isPipeline ( ) }
271
281
}
272
282
273
283
class PipelineParameter extends Parameter {
@@ -276,7 +286,7 @@ class PipelineParameter extends Parameter {
276
286
277
287
/**
278
288
* The variable that represents the value of a pipeline during a process block.
279
- *
289
+ *
280
290
* That is, it is _not_ the pipeline variable, but the value that is obtained by reading
281
291
* from the pipeline.
282
292
*/
0 commit comments