mirror of
https://github.com/github/codeql.git
synced 2025-12-23 04:06:37 +01:00
Add missing type access expression for static field accesses
This commit is contained in:
@@ -2486,9 +2486,9 @@ open class KotlinFileExtractor(
|
|||||||
val receiver = e.receiver
|
val receiver = e.receiver
|
||||||
if (receiver != null) {
|
if (receiver != null) {
|
||||||
extractExpressionExpr(receiver, callable, id, -1, exprParent.enclosingStmt)
|
extractExpressionExpr(receiver, callable, id, -1, exprParent.enclosingStmt)
|
||||||
|
} else if (owner.isStatic) {
|
||||||
|
extractTypeAccessRecursive(owner.parentAsClass.toRawType(), locId, id, -1, callable, exprParent.enclosingStmt)
|
||||||
}
|
}
|
||||||
|
|
||||||
// todo: do we need to extract a type access expression for static fields?
|
|
||||||
}
|
}
|
||||||
is IrGetEnumValue -> {
|
is IrGetEnumValue -> {
|
||||||
val exprParent = parent.expr(e, callable)
|
val exprParent = parent.expr(e, callable)
|
||||||
@@ -2575,6 +2575,8 @@ open class KotlinFileExtractor(
|
|||||||
val receiver = e.receiver
|
val receiver = e.receiver
|
||||||
if (receiver != null) {
|
if (receiver != null) {
|
||||||
extractExpressionExpr(receiver, callable, lhsId, -1, exprParent.enclosingStmt)
|
extractExpressionExpr(receiver, callable, lhsId, -1, exprParent.enclosingStmt)
|
||||||
|
} else if (realField.isStatic) {
|
||||||
|
extractTypeAccessRecursive(realField.parentAsClass.toRawType(), lhsLocId, lhsId, -1, callable, exprParent.enclosingStmt)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
|
|||||||
@@ -71,7 +71,8 @@ A.kt:
|
|||||||
# 19| 0: [VarAccess] Enu.A
|
# 19| 0: [VarAccess] Enu.A
|
||||||
# 19| -1: [TypeAccess] Enu
|
# 19| -1: [TypeAccess] Enu
|
||||||
# 20| 2: [ReturnStmt] return ...
|
# 20| 2: [ReturnStmt] return ...
|
||||||
# 20| 0: [VarAccess] x
|
# 20| 0: [VarAccess] B.x
|
||||||
|
# 20| -1: [TypeAccess] B
|
||||||
# 23| 11: [Class] Enu
|
# 23| 11: [Class] Enu
|
||||||
# 0| 1: [Method] values
|
# 0| 1: [Method] values
|
||||||
# 0| 3: [TypeAccess] Enu[]
|
# 0| 3: [TypeAccess] Enu[]
|
||||||
|
|||||||
Reference in New Issue
Block a user