mirror of
https://github.com/github/codeql.git
synced 2025-12-20 02:44:30 +01:00
38 lines
1.1 KiB
Plaintext
38 lines
1.1 KiB
Plaintext
import java
|
|
|
|
private string getLambdaBody(LambdaExpr le) {
|
|
le.hasExprBody() and result = "expr body"
|
|
or
|
|
le.hasStmtBody() and result = "stmt body"
|
|
}
|
|
|
|
query predicate lambdaExpr(LambdaExpr le, string body, Method m, string signature, AnonymousClass an) {
|
|
getLambdaBody(le) = body and
|
|
le.asMethod() = m and
|
|
signature = m.getSignature() and
|
|
le.getAnonymousClass() = an
|
|
}
|
|
|
|
query predicate memberRefExprs(MemberRefExpr e, Method m, string signature, AnonymousClass an) {
|
|
e.asMethod() = m and
|
|
signature = m.getSignature() and
|
|
e.getAnonymousClass() = an
|
|
}
|
|
|
|
query predicate modifiers(LambdaExpr le, Method m, string modifier) {
|
|
le.getAnonymousClass().getAMethod() = m and
|
|
m.hasModifier(modifier)
|
|
}
|
|
|
|
query predicate nonOverrideInvoke(LambdaExpr le, Method m, int pCount) {
|
|
le.getAnonymousClass().getAMethod() = m and
|
|
not m.hasModifier("override") and
|
|
m.getName() = "invoke" and
|
|
pCount = m.getNumberOfParameters() and
|
|
exists(Method mOtherInvoke |
|
|
le.getAnonymousClass().getAMethod() = mOtherInvoke and
|
|
mOtherInvoke.hasModifier("override") and
|
|
mOtherInvoke.getName() = "invoke"
|
|
)
|
|
}
|