Skip to content

Commit 6e9771f

Browse files
committed
QL: make FieldAccess::getDeclaration return a FieldDecl
1 parent 708c18d commit 6e9771f

File tree

7 files changed

+12
-12
lines changed

7 files changed

+12
-12
lines changed

ql/ql/src/codeql/GlobalValueNumbering.qll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ private import codeql_ql.ast.internal.Builtins
55

66
private newtype TValueNumber =
77
TVariableValueNumber(VarDecl var) { variableAccessValueNumber(_, var) } or
8-
TFieldValueNumber(VarDecl var) { fieldAccessValueNumber(_, var) } or
8+
TFieldValueNumber(FieldDecl var) { fieldAccessValueNumber(_, var) } or
99
TThisValueNumber(Predicate pred) { thisAccessValueNumber(_, pred) } or
1010
TPredicateValueNumber(PredicateOrBuiltin pred, ValueNumberArgumentList args) {
1111
predicateCallValueNumber(_, pred, args)
@@ -103,7 +103,7 @@ private predicate variableAccessValueNumber(VarAccess access, VarDef var) {
103103
access.getDeclaration() = var
104104
}
105105

106-
private predicate fieldAccessValueNumber(FieldAccess access, VarDef var) {
106+
private predicate fieldAccessValueNumber(FieldAccess access, FieldDecl var) {
107107
access.getDeclaration() = var
108108
}
109109

@@ -179,7 +179,7 @@ private TValueNumber nonUniqueValueNumber(Expr e) {
179179
result = TVariableValueNumber(var)
180180
)
181181
or
182-
exists(VarDecl var |
182+
exists(FieldDecl var |
183183
fieldAccessValueNumber(e, var) and
184184
result = TFieldValueNumber(var)
185185
)

ql/ql/src/codeql_ql/ast/Ast.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1754,11 +1754,11 @@ class FieldAccess extends Identifier {
17541754
FieldAccess() { resolveField(this, decl) }
17551755

17561756
/** Gets the accessed field. */
1757-
VarDecl getDeclaration() { result = decl }
1757+
FieldDecl getDeclaration() { result.getVarDecl() = decl }
17581758

17591759
override string getName() { result = id.getChild().(QL::VarName).getChild().getValue() }
17601760

1761-
override Type getType() { result = this.getDeclaration().getType() }
1761+
override Type getType() { result = decl.getType() }
17621762

17631763
override string getAPrimaryQlClass() { result = "FieldAccess" }
17641764
}

ql/ql/src/codeql_ql/ast/internal/Variable.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ module VarConsistency {
8585
strictcount(v.getDeclaration()) > 1
8686
}
8787

88-
query predicate multipleFieldDefs(FieldAccess f, VarDef decl) {
88+
query predicate multipleFieldDefs(FieldAccess f, FieldDecl decl) {
8989
decl = f.getDeclaration() and
9090
strictcount(f.getDeclaration()) > 1
9191
}

ql/ql/src/codeql_ql/style/UseInstanceofExtensionQuery.qll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ InlineCast getAThisCast(Class c, Type type) {
4040
)
4141
}
4242

43-
predicate usesFieldBasedInstanceof(Class c, TypeExpr type, VarDecl field, ComparisonFormula comp) {
43+
predicate usesFieldBasedInstanceof(Class c, TypeExpr type, FieldDecl field, ComparisonFormula comp) {
4444
exists(FieldAccess fieldAccess |
4545
c.getCharPred().getBody() = comp or
4646
c.getCharPred().getBody().(Conjunction).getAnOperand() = comp
@@ -50,7 +50,7 @@ predicate usesFieldBasedInstanceof(Class c, TypeExpr type, VarDecl field, Compar
5050
comp.getAnOperand() instanceof ThisAccess and
5151
comp.getAnOperand() = fieldAccess and
5252
fieldAccess.getDeclaration() = field and
53-
field.getTypeExpr() = type
53+
field.getVarDecl().getTypeExpr() = type
5454
) and
5555
// require that there is a call to the range field that matches the name of the enclosing predicate
5656
exists(FieldAccess access, MemberCall call |
@@ -60,7 +60,7 @@ predicate usesFieldBasedInstanceof(Class c, TypeExpr type, VarDecl field, Compar
6060
)
6161
}
6262

63-
FieldAccess getARangeFieldAccess(Class c, VarDecl field, string name) {
63+
FieldAccess getARangeFieldAccess(Class c, FieldDecl field, string name) {
6464
exists(MemberCall call |
6565
result = call.getBase() and
6666
result.getDeclaration() = field and

ql/ql/src/codeql_ql/style/UseSetLiteralQuery.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ class DisjunctionEqualsLiteral extends DisjunctionChain {
6868
)
6969
or
7070
// FieldAccess on the same variable
71-
exists(VarDecl v |
71+
exists(FieldDecl v |
7272
forex(Formula f | f = getOperand(_) |
7373
f.(EqualsLiteral).getAnOperand().(FieldAccess).getDeclaration() = v
7474
) and

ql/ql/src/ide-contextual-queries/Definitions.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ private predicate resolveVar(VarAccess va, VarDecl decl, string kind) {
4848
kind = "variable"
4949
}
5050

51-
private predicate resolveField(FieldAccess va, VarDecl decl, string kind) {
51+
private predicate resolveField(FieldAccess va, FieldDecl decl, string kind) {
5252
decl = va.getDeclaration() and
5353
kind = "field"
5454
}

ql/ql/src/queries/style/FieldOnlyUsedInCharPred.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import ql
1313
from Class c, FieldDecl f
1414
where
1515
c.getAField() = f and
16-
forex(FieldAccess access | access.getDeclaration() = f.getVarDecl() |
16+
forex(FieldAccess access | access.getDeclaration() = f |
1717
access.getEnclosingPredicate() = c.getCharPred()
1818
) and
1919
not f.getVarDecl().overrides(_)

0 commit comments

Comments
 (0)