Prohibit incorrect annotations with use-site targets more precisely

#KT-21696 Fixed

The problem is coming from the fact that `AnnotationTarget.VALUE_PARAMETER` is mapped to receiver parameter and to value parameter, but annotation with use-site target `receiver` can be used only on type reference of receiver parameter
This commit is contained in:
Mikhail Zarechenskiy
2018-03-12 10:29:45 +03:00
parent 6007559af1
commit effdfe8ec0
12 changed files with 114 additions and 102 deletions
@@ -1678,6 +1678,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest {
doTest(fileName);
}
@TestMetadata("receiverUseSiteTargetOnExtensionFunction.kt")
public void testReceiverUseSiteTargetOnExtensionFunction() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/receiverUseSiteTargetOnExtensionFunction.kt");
doTest(fileName);
}
@TestMetadata("repeatable.kt")
public void testRepeatable() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/withUseSiteTarget/repeatable.kt");