Forbid default inline/crossinline suspend parameters
This commit is contained in:
@@ -18,6 +18,8 @@ package org.jetbrains.kotlin.resolve.inline
|
||||
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.coroutines.hasSuspendFunctionType
|
||||
import org.jetbrains.kotlin.coroutines.isSuspendLambda
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.descriptors.annotations.isInlineOnlyOrReifiable
|
||||
import org.jetbrains.kotlin.diagnostics.Errors
|
||||
@@ -109,6 +111,18 @@ class InlineAnalyzerExtension(
|
||||
checkDefaultValue(trace, parameter, ktParameter)
|
||||
}
|
||||
}
|
||||
// Report unsupported error on inline/crossinline suspend lambdas with default values.
|
||||
if (functionDescriptor.isSuspend &&
|
||||
InlineUtil.isInlineParameterExceptNullability(parameter) &&
|
||||
parameter.hasSuspendFunctionType
|
||||
) {
|
||||
trace.report(
|
||||
Errors.NOT_YET_SUPPORTED_IN_INLINE.on(
|
||||
ktParameter,
|
||||
"Suspend functional parameters with default values"
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user