Check componentN functions for override conflicts

Check if newly generated component functions happen to override something
which they're not supposed to.
Create new slice to store mapping from annotation descriptors to
corresponding PSI elements, which is used by override checker to report
errors in data classes on.
This commit is contained in:
Alexander Udalov
2012-08-31 20:47:17 +04:00
parent c29312043c
commit fbeaaf5fbb
9 changed files with 112 additions and 4 deletions
@@ -977,6 +977,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
doTest("compiler/testData/diagnostics/tests/dataClasses/componentNamedComponent1.kt");
}
@TestMetadata("dataClassOverrideConflict.kt")
public void testDataClassOverrideConflict() throws Exception {
doTest("compiler/testData/diagnostics/tests/dataClasses/dataClassOverrideConflict.kt");
}
@TestMetadata("emptyConstructor.kt")
public void testEmptyConstructor() throws Exception {
doTest("compiler/testData/diagnostics/tests/dataClasses/emptyConstructor.kt");
@@ -992,6 +997,16 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
doTest("compiler/testData/diagnostics/tests/dataClasses/firstParamIsVar.kt");
}
@TestMetadata("implementTraitWhichHasComponent1.kt")
public void testImplementTraitWhichHasComponent1() throws Exception {
doTest("compiler/testData/diagnostics/tests/dataClasses/implementTraitWhichHasComponent1.kt");
}
@TestMetadata("implementTraitWhichHasFinalComponent1.kt")
public void testImplementTraitWhichHasFinalComponent1() throws Exception {
doTest("compiler/testData/diagnostics/tests/dataClasses/implementTraitWhichHasFinalComponent1.kt");
}
@TestMetadata("multiDeclaration.kt")
public void testMultiDeclaration() throws Exception {
doTest("compiler/testData/diagnostics/tests/dataClasses/multiDeclaration.kt");
@@ -1012,6 +1027,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
doTest("compiler/testData/diagnostics/tests/dataClasses/oneValParam.kt");
}
@TestMetadata("overrideInvisibleMember.kt")
public void testOverrideInvisibleMember() throws Exception {
doTest("compiler/testData/diagnostics/tests/dataClasses/overrideInvisibleMember.kt");
}
@TestMetadata("secondParamIsVal.kt")
public void testSecondParamIsVal() throws Exception {
doTest("compiler/testData/diagnostics/tests/dataClasses/secondParamIsVal.kt");