mirror of
https://github.com/github/codeql.git
synced 2025-12-17 17:23:36 +01:00
21 lines
661 B
Plaintext
21 lines
661 B
Plaintext
import csharp
|
|
|
|
predicate getConversion(Expr expr, Expr unconvertedExpr) {
|
|
unconvertedExpr = expr.(Cast).getExpr()
|
|
or
|
|
unconvertedExpr = expr.(OperatorCall).getArgument(0) and
|
|
expr.(OperatorCall).getTarget() instanceof ConversionOperator
|
|
}
|
|
|
|
Expr stripConversions(Expr expr) {
|
|
if getConversion(expr, _) then getConversion(expr, result) else result = expr
|
|
}
|
|
|
|
query predicate indexes(IndexExpr e, Expr c) { c = e.getExpr() }
|
|
|
|
query predicate ranges(RangeExpr e) { any() }
|
|
|
|
query predicate rangeStart(RangeExpr e, Expr start) { start = stripConversions(e.getStart()) }
|
|
|
|
query predicate rangeEnd(RangeExpr e, Expr end) { end = stripConversions(e.getEnd()) }
|