[FIR] Don't copy VP default values for fake overrides
In general, overrides should not contain default values, and it's better to make fake overrides be close to proper overrides as much as possible. It will be important when we begin running `FirOverrideChecker` for fake overrides. ^KT-63879 Fixed ^KT-65534
This commit is contained in:
committed by
Space Team
parent
249886fb13
commit
3b5fff5473
+1
-3
@@ -19,7 +19,6 @@ import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||
import org.jetbrains.kotlin.fir.declarations.getSingleMatchedExpectForActualOrNull
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.superConeTypes
|
||||
import org.jetbrains.kotlin.fir.isSubstitutionOrIntersectionOverride
|
||||
import org.jetbrains.kotlin.fir.scopes.processAllFunctions
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol
|
||||
@@ -63,8 +62,7 @@ sealed class FirMultipleDefaultsInheritedFromSupertypesChecker(mppKind: MppCheck
|
||||
function.processOverriddenFunctions(context) { overridden ->
|
||||
// default values of actual functions are located in corresponding expect functions
|
||||
val overriddenWithDefaults = overridden.getSingleMatchedExpectForActualOrNull() as? FirNamedFunctionSymbol ?: overridden
|
||||
// Substitution overrides copy default values from originals
|
||||
if (!overriddenWithDefaults.isSubstitutionOrIntersectionOverride && overriddenWithDefaults.valueParameterSymbols.any { it.hasDefaultValue }) {
|
||||
if (overriddenWithDefaults.valueParameterSymbols.any { it.hasDefaultValue }) {
|
||||
overriddenFunctions += overriddenWithDefaults
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user