Multi declaration is now a separate target in KotlinTarget
This commit is contained in:
@@ -171,6 +171,7 @@ public class AnnotationChecker(private val additionalCheckers: Iterable<Addition
|
||||
is JetTypeProjection ->
|
||||
if (annotated.projectionKind == JetProjectionKind.STAR) TargetLists.T_STAR_PROJECTION else TargetLists.T_TYPE_PROJECTION
|
||||
is JetClassInitializer -> TargetLists.T_INITIALIZER
|
||||
is JetMultiDeclaration -> TargetLists.T_MULTI_DECLARATION
|
||||
else -> TargetLists.EMPTY
|
||||
}
|
||||
}
|
||||
@@ -182,6 +183,8 @@ public class AnnotationChecker(private val additionalCheckers: Iterable<Addition
|
||||
onlyWithUseSiteTarget(PROPERTY, FIELD, PROPERTY_GETTER, PROPERTY_SETTER, VALUE_PARAMETER)
|
||||
}
|
||||
|
||||
val T_MULTI_DECLARATION = targetList(MULTI_DECLARATION)
|
||||
|
||||
val T_MEMBER_PROPERTY = targetList(MEMBER_PROPERTY, PROPERTY) {
|
||||
extraTargets(FIELD)
|
||||
onlyWithUseSiteTarget(VALUE_PARAMETER, PROPERTY_GETTER, PROPERTY_SETTER)
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
annotation class Ann
|
||||
|
||||
data class Pair(val x: Int, val y: Int)
|
||||
|
||||
fun foo(): Int {
|
||||
<!WRONG_ANNOTATION_TARGET!>@Ann<!> val (a, b) = Pair(12, 34)
|
||||
<!UNRESOLVED_REFERENCE!>@Err<!> val (c, d) = Pair(56, 78)
|
||||
return a + b + c + d
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package
|
||||
|
||||
public fun foo(): kotlin.Int
|
||||
|
||||
@kotlin.annotation.annotation() public final class Ann : kotlin.Annotation {
|
||||
public constructor Ann()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
@kotlin.data() public final class Pair {
|
||||
public constructor Pair(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.Int)
|
||||
public final val x: kotlin.Int
|
||||
public final val y: kotlin.Int
|
||||
public final /*synthesized*/ fun component1(): kotlin.Int
|
||||
public final /*synthesized*/ fun component2(): kotlin.Int
|
||||
public final /*synthesized*/ fun copy(/*0*/ x: kotlin.Int = ..., /*1*/ y: kotlin.Int = ...): Pair
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
+1
-1
@@ -10,5 +10,5 @@ fun foo() {
|
||||
|
||||
for (<!WRONG_ANNOTATION_TARGET!>@Ann(3)<!> (x, @Ann(4) y) in bar()) {}
|
||||
|
||||
for (<!UNRESOLVED_REFERENCE, WRONG_ANNOTATION_TARGET!>@Err<!> (x,y) in bar()) {}
|
||||
for (<!UNRESOLVED_REFERENCE!>@Err<!> (x,y) in bar()) {}
|
||||
}
|
||||
@@ -813,6 +813,12 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("MultiDeclaration.kt")
|
||||
public void testMultiDeclaration() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/MultiDeclaration.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("MutuallyRecursivelyAnnotatedGlobalFunction.kt")
|
||||
public void testMutuallyRecursivelyAnnotatedGlobalFunction() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/MutuallyRecursivelyAnnotatedGlobalFunction.kt");
|
||||
|
||||
@@ -59,7 +59,8 @@ public enum class KotlinTarget(val description: String, val isDefault: Boolean =
|
||||
MEMBER_PROPERTY("member property", false), // includes PROPERTY_PARAMETER
|
||||
TOP_LEVEL_PROPERTY("top level property", false),
|
||||
|
||||
INITIALIZER("initializer", false)
|
||||
INITIALIZER("initializer", false),
|
||||
MULTI_DECLARATION("multi declaration", false)
|
||||
;
|
||||
|
||||
companion object {
|
||||
|
||||
Reference in New Issue
Block a user