@@ -82,6 +82,8 @@ private class ParameterImpl extends TParameterImpl {
8282 result .getUserPath ( ) = this .getName ( ) and
8383 result .getEnclosingScope ( ) = this .getEnclosingScope ( )
8484 }
85+
86+ abstract predicate isPipeline ( ) ;
8587}
8688
8789private class InternalParameter extends ParameterImpl , TInternalParameter {
@@ -108,6 +110,10 @@ private class InternalParameter extends ParameterImpl, TInternalParameter {
108110 override Expr getDefaultValue ( ) { result = p .getDefaultValue ( ) }
109111
110112 override Attribute getAnAttribute ( ) { result = p .getAnAttribute ( ) }
113+
114+ override predicate isPipeline ( ) {
115+ this .getAnAttribute ( ) .getANamedArgument ( ) instanceof ValueFromPipelineAttribute
116+ }
111117}
112118
113119/**
@@ -138,6 +144,10 @@ private class Underscore extends ParameterImpl, TUnderscore {
138144 final override Scope getEnclosingScope ( ) { result = scope }
139145
140146 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 }
141151}
142152
143153private class ThisParameter extends ParameterImpl , TThisParameter {
@@ -152,6 +162,8 @@ private class ThisParameter extends ParameterImpl, TThisParameter {
152162 final override Scope getEnclosingScope ( ) { result = scope }
153163
154164 final override Attribute getAnAttribute ( ) { none ( ) }
165+
166+ final override predicate isPipeline ( ) { none ( ) }
155167}
156168
157169private newtype TVariable =
@@ -265,9 +277,7 @@ class Parameter extends AbstractLocalScopeVariable, TParameter {
265277
266278 Attribute getAnAttribute ( ) { result = p .getAnAttribute ( ) }
267279
268- predicate isPipeline ( ) {
269- this .getAnAttribute ( ) .getANamedArgument ( ) instanceof ValueFromPipelineAttribute
270- }
280+ predicate isPipeline ( ) { p .isPipeline ( ) }
271281}
272282
273283class PipelineParameter extends Parameter {
@@ -276,7 +286,7 @@ class PipelineParameter extends Parameter {
276286
277287/**
278288 * The variable that represents the value of a pipeline during a process block.
279- *
289+ *
280290 * That is, it is _not_ the pipeline variable, but the value that is obtained by reading
281291 * from the pipeline.
282292 */
0 commit comments