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

Skip to content

Commit e8a079b

Browse files
tamasvajkigfoo
authored andcommitted
Extract all external class declarations (without members)
1 parent 1cc1daa commit e8a079b

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

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

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -309,17 +309,19 @@ class KotlinFileExtractor(val logger: FileLogger, val tw: FileTrapWriter, val fi
309309

310310
fun useClass(c: IrClass): Label<out DbClassorinterface> {
311311
// todo: fix this
312-
if (c.origin == IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB) {
312+
if (c.origin == IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB ||
313+
c.origin == IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB) {
313314
if(tw.getExistingLabelFor<DbClass>(getClassLabel(c)) == null) {
314-
return extractClass(c)
315+
return extractExternalClass(c)
315316
}
316317
}
317318
return addClassLabel(c)
318319
}
319320

320-
fun extractClass(c: IrClass): Label<out DbClassorinterface> {
321+
fun extractExternalClass(c: IrClass): Label<out DbClassorinterface> {
322+
// todo: fix this.
323+
// temporarily only extract the class or interface without any members.
321324
val id = addClassLabel(c)
322-
val locId = tw.getLocation(c)
323325
val pkg = c.packageFqName?.asString() ?: ""
324326
val cls = c.name.asString()
325327
val pkgId = extractPackage(pkg)
@@ -332,6 +334,12 @@ class KotlinFileExtractor(val logger: FileLogger, val tw: FileTrapWriter, val fi
332334
val classId = id as Label<out DbClass>
333335
tw.writeClasses(classId, cls, pkgId, classId)
334336
}
337+
return id
338+
}
339+
340+
fun extractClass(c: IrClass): Label<out DbClassorinterface> {
341+
val id = extractExternalClass(c)
342+
val locId = tw.getLocation(c)
335343
tw.writeHasLocation(id, locId)
336344
for(t in c.superTypes) {
337345
when(t) {

0 commit comments

Comments
 (0)