KT-2829 Local variables used only in multi-declaration are marked as unused
#KT-2829 fixed
This commit is contained in:
@@ -700,7 +700,7 @@ public class JetControlFlowProcessor {
|
||||
public void visitMultiDeclaration(JetMultiDeclaration declaration) {
|
||||
JetExpression initializer = declaration.getInitializer();
|
||||
if (initializer != null) {
|
||||
builder.read(initializer);
|
||||
value(initializer, false);
|
||||
}
|
||||
List<JetMultiDeclarationEntry> entries = declaration.getEntries();
|
||||
for (JetMultiDeclarationEntry entry : entries) {
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package test
|
||||
|
||||
fun a(s: String) { // <- ERROR
|
||||
val (x, y) = Pair("", s)
|
||||
println(x + y)
|
||||
}
|
||||
|
||||
fun b(s: String) {
|
||||
val x = Pair("", s)
|
||||
println(x)
|
||||
}
|
||||
|
||||
//from library
|
||||
data class Pair<A, B>(val a: A, val b: B)
|
||||
|
||||
fun println(a: Any?) = a
|
||||
@@ -1336,6 +1336,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
|
||||
doTest("compiler/testData/diagnostics/tests/declarationChecks/multiDeclarations/ForWithExplicitTypes.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("kt2829.kt")
|
||||
public void testKt2829() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/declarationChecks/multiDeclarations/kt2829.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("RedeclarationInForLoop.kt")
|
||||
public void testRedeclarationInForLoop() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/declarationChecks/multiDeclarations/RedeclarationInForLoop.kt");
|
||||
|
||||
Reference in New Issue
Block a user