Report obsolete labels syntax deprecation on objects

#KT-7771 Fixed
This commit is contained in:
Denis Zharkov
2015-05-19 12:12:45 +03:00
parent 5297b4974f
commit aa1548a83b
4 changed files with 34 additions and 2 deletions
@@ -234,6 +234,7 @@ public class DeclarationsChecker {
}
}
private void checkObject(JetObjectDeclaration declaration, ClassDescriptor classDescriptor) {
AnnotationResolver.reportDeprecatedAnnotationSyntax(declaration.getAnnotations(), trace);
reportErrorIfHasIllegalModifier(declaration);
if (declaration.isLocal() && !declaration.isCompanion() && !declaration.isObjectLiteral()) {
trace.report(LOCAL_OBJECT_NOT_ALLOWED.on(declaration, classDescriptor));
@@ -23,10 +23,20 @@ fun bar2(): Array<Q> = null!!
fun x(): <!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> String {
<!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> val x: <!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> String = ""
val localVal = <!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> object {}
return ""
}
<!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> object O1 {}
<!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> companion object O2 {
}
}
<!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> object O3 {}
val y: Array<[<!DEBUG_INFO_MISSING_UNRESOLVED!>Ann<!>] String?> = arrayOfNulls(1)
val block: ([<!DEBUG_INFO_MISSING_UNRESOLVED!>Ann<!>] x: <!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> String) -> <!DEPRECATED_ANNOTATION_SYNTAX!>[Ann]<!> String = { "" }
interface B
@@ -14,6 +14,20 @@ Ann() Ann() internal final class A {
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
internal final fun x(): @[Ann()] kotlin.String
Ann() internal object O1 {
private constructor O1()
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
}
Ann() internal companion object O2 {
private constructor O2()
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
}
}
internal final annotation class Ann : kotlin.Annotation {
@@ -43,6 +57,13 @@ Ann() internal final class MyClass {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
Ann() internal object O3 {
private constructor O3()
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() internal final class Q {
public constructor Q(/*0*/ x: kotlin.Int, /*1*/ y: kotlin.Int)
internal final val x: kotlin.Int
@@ -1,6 +1,6 @@
class Test {
[ClassObjectAnnotation]
[NestedAnnotation]
@ClassObjectAnnotation
@NestedAnnotation
companion object {
annotation class ClassObjectAnnotation
}