Skip to content

Commit f51c13f

Browse files
committed
Kotlin: Recognize generated files
1 parent 0e6735b commit f51c13f

File tree

7 files changed

+23
-2
lines changed

7 files changed

+23
-2
lines changed

java/ql/lib/semmle/code/java/GeneratedFiles.qll

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ library class MarkerCommentGeneratedFile extends GeneratedFile {
5151
/**
5252
* A marker comment that indicates that it is in a generated file.
5353
*/
54-
private class GeneratedFileMarker extends Top instanceof JavadocElement {
54+
private class GeneratedFileMarker extends Top {
5555
GeneratedFileMarker() {
56-
exists(string msg | msg = this.getText() |
56+
exists(string msg | msg = this.(JavadocElement).getText() or msg = this.(KtComment).getText() |
5757
msg.regexpMatch("(?i).*\\bGenerated By\\b.*\\bDo not edit\\b.*") or
5858
msg.regexpMatch("(?i).*\\bThis (file|class|interface|art[ei]fact) (was|is|(has been)) (?:auto[ -]?)?gener(e?)ated.*") or
5959
msg.regexpMatch("(?i).*\\bAny modifications to this file will be lost\\b.*") or
@@ -65,3 +65,10 @@ private class GeneratedFileMarker extends Top instanceof JavadocElement {
6565
)
6666
}
6767
}
68+
69+
/**
70+
* A file detected as generated by the Kotlin Annotation Processing Tool (kapt). Detection is based on file path.
71+
*/
72+
private class KaptFile extends GeneratedFile {
73+
KaptFile() { this.getRelativePath().matches("%/generated/source/kapt%") }
74+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
| Generated.kt:0:0:0:0 | Generated |
2+
| generated/source/kapt/Generated.kt:0:0:0:0 | Generated |
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
// This file was auto generated by me
2+
3+
class B
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import java
2+
3+
from GeneratedFile f
4+
select f
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
// This file was not generated
2+
3+
class A
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
class D
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
class C

0 commit comments

Comments
 (0)