Skip to content

Commit ec6422c

Browse files
committed
PS: Add a concept of a local scope variable (which includes both parameters and local variables).
1 parent dfeb667 commit ec6422c

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

powershell/ql/lib/semmle/code/powershell/Variable.qll

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,13 @@ private class AbstractVariable extends TVariable {
111111
}
112112
}
113113

114-
class LocalVariable extends AbstractVariable, TLocalVariable {
114+
final class Variable = AbstractVariable;
115+
116+
abstract class AbstractLocalScopeVariable extends AbstractVariable { }
117+
118+
final class LocalScopeVariable = AbstractLocalScopeVariable;
119+
120+
class LocalVariable extends AbstractLocalScopeVariable, TLocalVariable {
115121
string name;
116122
Scope scope;
117123

@@ -135,7 +141,7 @@ class LocalVariable extends AbstractVariable, TLocalVariable {
135141
final override Scope getDeclaringScope() { result = scope }
136142
}
137143

138-
class Parameter extends AbstractVariable, TParameter {
144+
class Parameter extends AbstractLocalScopeVariable, TParameter {
139145
ParameterImpl p;
140146

141147
Parameter() { this = TParameter(p) }
@@ -156,5 +162,3 @@ class Parameter extends AbstractVariable, TParameter {
156162

157163
int getIndex() { this.isFunctionParameter(_, result) }
158164
}
159-
160-
final class Variable = AbstractVariable;

0 commit comments

Comments
 (0)