@@ -134,7 +134,7 @@ open class KotlinFileExtractor(
134
134
is IrProperty -> {
135
135
val parentId = useDeclarationParent(declaration.parent, false )?.cast<DbReftype >()
136
136
if (parentId != null ) {
137
- extractProperty(declaration, parentId, extractBackingField = true , extractFunctionBodies = extractFunctionBodies, null , listOf ())
137
+ extractProperty(declaration, parentId, extractBackingField = true , extractFunctionBodies = extractFunctionBodies, extractPrivateMembers = extractPrivateMembers, null , listOf ())
138
138
}
139
139
Unit
140
140
}
@@ -364,7 +364,7 @@ open class KotlinFileExtractor(
364
364
if (shouldExtractDecl(it, false )) {
365
365
when (it) {
366
366
is IrFunction -> extractFunction(it, id, extractBody = false , extractMethodAndParameterTypeAccesses = false , typeParamSubstitution, argsIncludingOuterClasses)
367
- is IrProperty -> extractProperty(it, id, extractBackingField = false , extractFunctionBodies = false , typeParamSubstitution, argsIncludingOuterClasses)
367
+ is IrProperty -> extractProperty(it, id, extractBackingField = false , extractFunctionBodies = false , extractPrivateMembers = false , typeParamSubstitution, argsIncludingOuterClasses)
368
368
else -> {}
369
369
}
370
370
}
@@ -955,7 +955,7 @@ open class KotlinFileExtractor(
955
955
return id
956
956
}
957
957
958
- private fun extractProperty (p : IrProperty , parentId : Label <out DbReftype >, extractBackingField : Boolean , extractFunctionBodies : Boolean , typeSubstitution : TypeSubstitution ? , classTypeArgsIncludingOuterClasses : List <IrTypeArgument >? ) {
958
+ private fun extractProperty (p : IrProperty , parentId : Label <out DbReftype >, extractBackingField : Boolean , extractFunctionBodies : Boolean , extractPrivateMembers : Boolean , typeSubstitution : TypeSubstitution ? , classTypeArgsIncludingOuterClasses : List <IrTypeArgument >? ) {
959
959
with (" property" , p) {
960
960
if (isFake(p)) return
961
961
@@ -970,21 +970,25 @@ open class KotlinFileExtractor(
970
970
val getter = p.getter
971
971
val setter = p.setter
972
972
973
- if (getter != null ) {
973
+ if (getter == null ) {
974
+ if (p.modality != Modality .FINAL || ! isExternalDeclaration(p)) {
975
+ logger.warnElement(" IrProperty without a getter" , p)
976
+ }
977
+ } else if (shouldExtractDecl(getter, extractPrivateMembers)) {
974
978
val getterId = extractFunction(getter, parentId, extractBody = extractFunctionBodies, extractMethodAndParameterTypeAccesses = extractFunctionBodies, typeSubstitution, classTypeArgsIncludingOuterClasses)?.cast<DbMethod >()
975
979
if (getterId != null ) {
976
980
tw.writeKtPropertyGetters(id, getterId)
977
981
if (getter.origin == IrDeclarationOrigin .DELEGATED_PROPERTY_ACCESSOR ) {
978
982
tw.writeCompiler_generated(getterId, CompilerGeneratedKinds .DELEGATED_PROPERTY_GETTER .kind)
979
983
}
980
984
}
981
- } else {
982
- if (p.modality != Modality .FINAL || ! isExternalDeclaration(p)) {
983
- logger.warnElement(" IrProperty without a getter" , p)
984
- }
985
985
}
986
986
987
- if (setter != null ) {
987
+ if (setter == null ) {
988
+ if (p.isVar && ! isExternalDeclaration(p)) {
989
+ logger.warnElement(" isVar property without a setter" , p)
990
+ }
991
+ } else if (shouldExtractDecl(setter, extractPrivateMembers)) {
988
992
if (! p.isVar) {
989
993
logger.warnElement(" !isVar property with a setter" , p)
990
994
}
@@ -995,10 +999,6 @@ open class KotlinFileExtractor(
995
999
tw.writeCompiler_generated(setterId, CompilerGeneratedKinds .DELEGATED_PROPERTY_SETTER .kind)
996
1000
}
997
1001
}
998
- } else {
999
- if (p.isVar && ! isExternalDeclaration(p)) {
1000
- logger.warnElement(" isVar property without a setter" , p)
1001
- }
1002
1002
}
1003
1003
1004
1004
if (bf != null && extractBackingField) {
0 commit comments