[FIR] Do not allow vararg function to be used as synthetic setter
^KT-63172 Fixed
This commit is contained in:
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user