Synthesized 'copy' in data classes cannot override anything since 1.3

Synthesized 'copy' introduces default values for parameters, which is
prohibited for regular overrides.
Report warning in language version 1.2-, error in 1.3+.
This commit is contained in:
Dmitry Petrov
2017-09-12 15:10:03 +03:00
parent 9ae6feb2c5
commit 4c2cfd3ea9
17 changed files with 226 additions and 1 deletions
@@ -4828,12 +4828,42 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest {
doTest(fileName);
}
@TestMetadata("dataClassExplicitlyOverridingCopyNoDefaults.kt")
public void testDataClassExplicitlyOverridingCopyNoDefaults() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dataClasses/dataClassExplicitlyOverridingCopyNoDefaults.kt");
doTest(fileName);
}
@TestMetadata("dataClassExplicitlyOverridingCopyWithDefaults.kt")
public void testDataClassExplicitlyOverridingCopyWithDefaults() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dataClasses/dataClassExplicitlyOverridingCopyWithDefaults.kt");
doTest(fileName);
}
@TestMetadata("dataClassNoName.kt")
public void testDataClassNoName() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dataClasses/dataClassNoName.kt");
doTest(fileName);
}
@TestMetadata("dataClassNotOverridingCopy.kt")
public void testDataClassNotOverridingCopy() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dataClasses/dataClassNotOverridingCopy.kt");
doTest(fileName);
}
@TestMetadata("dataClassOverridingCopy_lv12.kt")
public void testDataClassOverridingCopy_lv12() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dataClasses/dataClassOverridingCopy_lv12.kt");
doTest(fileName);
}
@TestMetadata("dataClassOverridingCopy_lv13.kt")
public void testDataClassOverridingCopy_lv13() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dataClasses/dataClassOverridingCopy_lv13.kt");
doTest(fileName);
}
@TestMetadata("dataClassVarargParam.kt")
public void testDataClassVarargParam() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dataClasses/dataClassVarargParam.kt");
@@ -4828,12 +4828,42 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing
doTest(fileName);
}
@TestMetadata("dataClassExplicitlyOverridingCopyNoDefaults.kt")
public void testDataClassExplicitlyOverridingCopyNoDefaults() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dataClasses/dataClassExplicitlyOverridingCopyNoDefaults.kt");
doTest(fileName);
}
@TestMetadata("dataClassExplicitlyOverridingCopyWithDefaults.kt")
public void testDataClassExplicitlyOverridingCopyWithDefaults() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dataClasses/dataClassExplicitlyOverridingCopyWithDefaults.kt");
doTest(fileName);
}
@TestMetadata("dataClassNoName.kt")
public void testDataClassNoName() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dataClasses/dataClassNoName.kt");
doTest(fileName);
}
@TestMetadata("dataClassNotOverridingCopy.kt")
public void testDataClassNotOverridingCopy() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dataClasses/dataClassNotOverridingCopy.kt");
doTest(fileName);
}
@TestMetadata("dataClassOverridingCopy_lv12.kt")
public void testDataClassOverridingCopy_lv12() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dataClasses/dataClassOverridingCopy_lv12.kt");
doTest(fileName);
}
@TestMetadata("dataClassOverridingCopy_lv13.kt")
public void testDataClassOverridingCopy_lv13() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dataClasses/dataClassOverridingCopy_lv13.kt");
doTest(fileName);
}
@TestMetadata("dataClassVarargParam.kt")
public void testDataClassVarargParam() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dataClasses/dataClassVarargParam.kt");