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 ->
|
is JetTypeProjection ->
|
||||||
if (annotated.projectionKind == JetProjectionKind.STAR) TargetLists.T_STAR_PROJECTION else TargetLists.T_TYPE_PROJECTION
|
if (annotated.projectionKind == JetProjectionKind.STAR) TargetLists.T_STAR_PROJECTION else TargetLists.T_TYPE_PROJECTION
|
||||||
is JetClassInitializer -> TargetLists.T_INITIALIZER
|
is JetClassInitializer -> TargetLists.T_INITIALIZER
|
||||||
|
is JetMultiDeclaration -> TargetLists.T_MULTI_DECLARATION
|
||||||
else -> TargetLists.EMPTY
|
else -> TargetLists.EMPTY
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -182,6 +183,8 @@ public class AnnotationChecker(private val additionalCheckers: Iterable<Addition
|
|||||||
onlyWithUseSiteTarget(PROPERTY, FIELD, PROPERTY_GETTER, PROPERTY_SETTER, VALUE_PARAMETER)
|
onlyWithUseSiteTarget(PROPERTY, FIELD, PROPERTY_GETTER, PROPERTY_SETTER, VALUE_PARAMETER)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val T_MULTI_DECLARATION = targetList(MULTI_DECLARATION)
|
||||||
|
|
||||||
val T_MEMBER_PROPERTY = targetList(MEMBER_PROPERTY, PROPERTY) {
|
val T_MEMBER_PROPERTY = targetList(MEMBER_PROPERTY, PROPERTY) {
|
||||||
extraTargets(FIELD)
|
extraTargets(FIELD)
|
||||||
onlyWithUseSiteTarget(VALUE_PARAMETER, PROPERTY_GETTER, PROPERTY_SETTER)
|
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 (<!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);
|
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")
|
@TestMetadata("MutuallyRecursivelyAnnotatedGlobalFunction.kt")
|
||||||
public void testMutuallyRecursivelyAnnotatedGlobalFunction() throws Exception {
|
public void testMutuallyRecursivelyAnnotatedGlobalFunction() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/annotations/MutuallyRecursivelyAnnotatedGlobalFunction.kt");
|
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
|
MEMBER_PROPERTY("member property", false), // includes PROPERTY_PARAMETER
|
||||||
TOP_LEVEL_PROPERTY("top level property", false),
|
TOP_LEVEL_PROPERTY("top level property", false),
|
||||||
|
|
||||||
INITIALIZER("initializer", false)
|
INITIALIZER("initializer", false),
|
||||||
|
MULTI_DECLARATION("multi declaration", false)
|
||||||
;
|
;
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|||||||
Reference in New Issue
Block a user