@@ -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