mirror of
https://github.com/github/codeql.git
synced 2026-04-28 10:15:14 +02:00
Merge pull request #11310 from tamasvajk/kotlin-dead-code
Kotlin: Exclude .kt files from dead code queries
This commit is contained in:
@@ -14,6 +14,8 @@ import semmle.code.java.deadcode.DeadCode
|
||||
|
||||
from DeadClass c, Element origin, string reason
|
||||
where
|
||||
not c.getFile().isKotlinSourceFile() and
|
||||
not origin.getFile().isKotlinSourceFile() and
|
||||
if exists(DeadRoot root | root = c.getADeadRoot() | not root = c.getACallable())
|
||||
then (
|
||||
// Report a list of the dead roots.
|
||||
|
||||
@@ -15,6 +15,8 @@ import semmle.code.java.deadcode.DeadCode
|
||||
|
||||
from DeadField f, Element origin, string reason
|
||||
where
|
||||
not f.getFile().isKotlinSourceFile() and
|
||||
not origin.getFile().isKotlinSourceFile() and
|
||||
not f.isInDeadScope() and
|
||||
if f.getAnAccess() instanceof FieldRead
|
||||
then (
|
||||
|
||||
@@ -15,6 +15,8 @@ import semmle.code.java.deadcode.DeadCode
|
||||
|
||||
from DeadMethod c, Callable origin, string reason
|
||||
where
|
||||
not c.getFile().isKotlinSourceFile() and
|
||||
not origin.getFile().isKotlinSourceFile() and
|
||||
not c.isInDeadScope() and
|
||||
if exists(DeadRoot deadRoot | deadRoot = getADeadRoot(c) | deadRoot.getSourceDeclaration() != c)
|
||||
then (
|
||||
|
||||
1
java/ql/test/kotlin/query-tests/DeadCode/DeadClass.qlref
Normal file
1
java/ql/test/kotlin/query-tests/DeadCode/DeadClass.qlref
Normal file
@@ -0,0 +1 @@
|
||||
DeadCode/DeadClass.ql
|
||||
@@ -0,0 +1 @@
|
||||
DeadCode/DeadMethod.ql
|
||||
31
java/ql/test/kotlin/query-tests/DeadCode/Test.kt
Normal file
31
java/ql/test/kotlin/query-tests/DeadCode/Test.kt
Normal file
@@ -0,0 +1,31 @@
|
||||
sealed interface DbAddexpr
|
||||
|
||||
class Label<T> {
|
||||
}
|
||||
|
||||
fun <T> getFreshIdLabel(): Label<T> {
|
||||
return Label()
|
||||
}
|
||||
|
||||
fun foo(): Label<DbAddexpr> {
|
||||
val x = getFreshIdLabel<DbAddexpr>()
|
||||
return x
|
||||
}
|
||||
|
||||
fun main1() {
|
||||
print(foo())
|
||||
}
|
||||
|
||||
class Foo {
|
||||
data class DC(val x: Int, val y: Int)
|
||||
|
||||
fun foo() {
|
||||
val dc = DC(3, 4)
|
||||
print(dc.x)
|
||||
print(dc.y)
|
||||
}
|
||||
}
|
||||
|
||||
fun main2() {
|
||||
Foo().foo()
|
||||
}
|
||||
Reference in New Issue
Block a user