KT-16553 Underscore variable values shall not be evaluated

Do not generate 'componentN' calls for '_' in destructuring assignment.
This commit is contained in:
Dmitry Petrov
2017-02-28 17:55:48 +03:00
parent 63b16e14d8
commit dd61a5b2c6
4 changed files with 57 additions and 0 deletions
@@ -114,6 +114,10 @@ class StatementGenerator(
componentSubstitutedCall.setExplicitReceiverValue(containerValue)
val componentVariable = getOrFail(BindingContext.VARIABLE, ktEntry)
// componentN for '_' SHOULD NOT be evaluated
if (componentVariable.name.isSpecial) continue
val irComponentCall = callGenerator.generateCall(ktEntry.startOffset, ktEntry.endOffset, componentSubstitutedCall,
IrStatementOrigin.COMPONENT_N.withIndex(index + 1))
val irComponentVar = IrVariableImpl(ktEntry.startOffset, ktEntry.endOffset, IrDeclarationOrigin.DEFINED,