Introduce language feature DestructuringLambdaParameters

#KT-5828 Fixed
This commit is contained in:
Denis Zharkov
2016-09-16 16:42:52 +03:00
parent e75efc88ff
commit 72d027d968
5 changed files with 41 additions and 1 deletions
@@ -27,7 +27,8 @@ enum class LanguageFeature(val sinceVersion: LanguageVersion) {
Coroutines(KOTLIN_1_1),
AdditionalBuiltInsMembers(KOTLIN_1_1),
DataClassInheritance(KOTLIN_1_1),
InlineProperties(KOTLIN_1_1)
InlineProperties(KOTLIN_1_1),
DestructuringLambdaParameters(KOTLIN_1_1),
;
companion object {
@@ -291,6 +291,10 @@ public class DescriptorResolver {
List<VariableDescriptor> destructuringVariables;
if (destructuringDeclaration != null) {
if (!languageVersionSettings.supportsFeature(LanguageFeature.DestructuringLambdaParameters)) {
trace.report(Errors.UNSUPPORTED_FEATURE.on(valueParameter, LanguageFeature.DestructuringLambdaParameters));
}
destructuringVariables = destructuringDeclarationResolver.resolveLocalVariablesFromDestructuringDeclaration(
scope, destructuringDeclaration, new TransientReceiver(type), /* initializer = */ null,
ExpressionTypingContext.newContext(trace, scope, DataFlowInfoFactory.EMPTY, TypeUtils.NO_EXPECTED_TYPE)