Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 25fce5f

Browse files
tamasvajksmowton
authored andcommitted
Identify data classes during extraction
1 parent 1e78f28 commit 25fce5f

5 files changed

Lines changed: 21 additions & 0 deletions

File tree

java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,10 @@ open class KotlinFileExtractor(
386386
} else if (kind != ClassKind.CLASS && kind != ClassKind.OBJECT) {
387387
logger.warnElement("Unrecognised class kind $kind", c)
388388
}
389+
390+
if (c.isData) {
391+
tw.writeKtDataClasses(classId)
392+
}
389393
}
390394

391395
val locId = tw.getLocation(c)

java/ql/lib/config/semmlecode.dbscheme

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1232,3 +1232,7 @@ ktFunctionOriginalNames(
12321232
unique int id: @method ref,
12331233
string name: string ref
12341234
)
1235+
1236+
ktDataClasses(
1237+
unique int id: @class ref
1238+
)

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -714,6 +714,13 @@ class CompanionObject extends Class {
714714
Field getInstance() { type_companion_object(_, result, this) }
715715
}
716716

717+
/**
718+
* A Kotlin data class declaration.
719+
*/
720+
class DataClass extends Class {
721+
DataClass() { ktDataClasses(this) }
722+
}
723+
717724
/**
718725
* A record declaration.
719726
*/
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
| dc.kt:1:1:1:71 | ProtoMapValue |
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import java
2+
3+
from DataClass c
4+
where c.fromSource()
5+
select c

0 commit comments

Comments
 (0)