[FIR] Do not allow vararg function to be used as synthetic setter

^KT-63172 Fixed
This commit is contained in:
Brian Norman
2023-11-07 10:40:53 -06:00
committed by Space Team
parent dbaf4a2d5e
commit ad4d075125
2 changed files with 3 additions and 2 deletions
@@ -133,8 +133,9 @@ class FirSyntheticPropertiesScope private constructor(
if (matchingSetter != null) return
val setter = setterSymbol.fir
val parameter = setter.valueParameters.singleOrNull() ?: return
if (setter.typeParameters.isNotEmpty() || setter.isStatic) return
val parameter = setter.valueParameters.singleOrNull() ?: return
if (parameter.isVararg) return
val parameterType = (parameter.returnTypeRef as? FirResolvedTypeRef)?.type ?: return
if (!setterTypeIsConsistentWithGetterType(propertyName, getterSymbol, setterSymbol, parameterType)) return
matchingSetter = setterSymbol.fir
@@ -4,7 +4,7 @@ fun foo(javaClass: JavaClass) {
javaClass.<!VAL_REASSIGNMENT!>something2<!>++
javaClass.<!VAL_REASSIGNMENT!>something3<!>++
javaClass.<!VAL_REASSIGNMENT!>something4<!>++
javaClass.something5 = null
javaClass.<!VAL_REASSIGNMENT!>something5<!> = null
}
// FILE: JavaClass.java