diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index bc768c5ff60..2d1b3cce89a 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -830,6 +830,15 @@ open class KotlinFileExtractor( tw.writeFieldsKotlinType(id, type.kotlinResult.id) val locId = tw.getLocation(ee) tw.writeHasLocation(id, locId) + + if (!isExternalDeclaration(ee)) { + val fieldDeclarationId = tw.getFreshIdLabel() + tw.writeFielddecls(fieldDeclarationId, parentId) + tw.writeFieldDeclaredIn(id, fieldDeclarationId, 0) + tw.writeHasLocation(fieldDeclarationId, locId) + + extractTypeAccess(type, locId, fieldDeclarationId, 0) + } } } } diff --git a/java/ql/test/kotlin/library-tests/exprs_typeaccess/PrintAst.expected b/java/ql/test/kotlin/library-tests/exprs_typeaccess/PrintAst.expected index 49342a2a363..4d7cad5ad36 100644 --- a/java/ql/test/kotlin/library-tests/exprs_typeaccess/PrintAst.expected +++ b/java/ql/test/kotlin/library-tests/exprs_typeaccess/PrintAst.expected @@ -87,6 +87,12 @@ A.kt: # 23| -3: [TypeAccess] Unit # 23| 0: [TypeAccess] Enu # 23| 1: [BlockStmt] { ... } +# 24| 4: [FieldDeclaration] Enu A; +# 24| -1: [TypeAccess] Enu +# 24| 5: [FieldDeclaration] Enu B; +# 24| -1: [TypeAccess] Enu +# 24| 6: [FieldDeclaration] Enu C; +# 24| -1: [TypeAccess] Enu B.java: # 0| [CompilationUnit] B # 1| 1: [Class] B