Tests, messages and infra for deprecated symbol reporting
This commit is contained in:
@@ -217,6 +217,9 @@ public interface Errors {
|
||||
|
||||
DiagnosticFactory0<JetObjectDeclaration> DEPRECATED_CLASS_OBJECT_SYNTAX = DiagnosticFactory0.create(WARNING);
|
||||
|
||||
DiagnosticFactory1<PsiElement, DeclarationDescriptor> DEPRECATED_SYMBOL = DiagnosticFactory1.create(WARNING);
|
||||
DiagnosticFactory2<PsiElement, DeclarationDescriptor, String> DEPRECATED_SYMBOL_WITH_MESSAGE = DiagnosticFactory2.create(WARNING);
|
||||
|
||||
// Objects
|
||||
|
||||
DiagnosticFactory1<JetObjectDeclaration, ClassDescriptor> LOCAL_OBJECT_NOT_ALLOWED = DiagnosticFactory1.create(ERROR, DECLARATION_NAME);
|
||||
|
||||
+2
@@ -252,6 +252,8 @@ public class DefaultErrorMessages {
|
||||
MAP.put(COMPANION_OBJECT_NOT_ALLOWED, "A companion object is not allowed here");
|
||||
|
||||
MAP.put(DEPRECATED_CLASS_OBJECT_SYNTAX, "'class object' syntax for companion objects was deprecated. Use 'companion' modifier instead");
|
||||
MAP.put(DEPRECATED_SYMBOL, "''{0}'' is deprecated.", DEPRECATION);
|
||||
MAP.put(DEPRECATED_SYMBOL_WITH_MESSAGE, "''{0}'' is deprecated. {1}", DEPRECATION, STRING);
|
||||
|
||||
MAP.put(LOCAL_OBJECT_NOT_ALLOWED, "Named object ''{0}'' is a singleton and cannot be local. Try to use anonymous object instead", NAME);
|
||||
MAP.put(LOCAL_ENUM_NOT_ALLOWED, "Enum class ''{0}'' cannot be local", NAME);
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
deprecated("text")
|
||||
annotation class obsolete()
|
||||
|
||||
deprecated("text")
|
||||
annotation class obsoleteWithParam(val text: String)
|
||||
|
||||
<!DEPRECATED_SYMBOL_WITH_MESSAGE!>obsolete<!> class Obsolete
|
||||
|
||||
<!DEPRECATED_SYMBOL_WITH_MESSAGE!>obsoleteWithParam<!>("text") class Obsolete2
|
||||
@@ -0,0 +1,30 @@
|
||||
package
|
||||
|
||||
obsolete() internal final class Obsolete {
|
||||
public constructor Obsolete()
|
||||
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
|
||||
}
|
||||
|
||||
obsoleteWithParam(text = "text": kotlin.String) internal final class Obsolete2 {
|
||||
public constructor Obsolete2()
|
||||
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.deprecated(value = "text": kotlin.String) internal final annotation class obsolete : kotlin.Annotation {
|
||||
public constructor obsolete()
|
||||
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.deprecated(value = "text": kotlin.String) internal final annotation class obsoleteWithParam : kotlin.Annotation {
|
||||
public constructor obsoleteWithParam(/*0*/ text: kotlin.String)
|
||||
internal final val text: kotlin.String
|
||||
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
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
|
||||
class Data {
|
||||
deprecated("text")
|
||||
fun component1(): String = throw Exception()
|
||||
fun component2(): String = throw Exception()
|
||||
}
|
||||
|
||||
fun use() {
|
||||
val (<!DEPRECATED_SYMBOL_WITH_MESSAGE!>x<!>, y) = Data()
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package
|
||||
|
||||
internal fun use(): kotlin.Unit
|
||||
|
||||
internal final class Data {
|
||||
public constructor Data()
|
||||
kotlin.deprecated(value = "text": kotlin.String) internal final fun component1(): kotlin.String
|
||||
internal final fun component2(): kotlin.String
|
||||
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
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
// !DIAGNOSTICS: -UNUSED_EXPRESSION, -REFLECTION_TYPES_NOT_LOADED
|
||||
|
||||
class UsefulClass(val param: Int = 2) {
|
||||
fun get(instance: Any, property: PropertyMetadata) : Int = 1
|
||||
fun set(instance: Any, property: PropertyMetadata, value: Int) {}
|
||||
|
||||
deprecated("message")
|
||||
fun member() {}
|
||||
}
|
||||
|
||||
deprecated("message")
|
||||
fun Obsolete(param: Int = 1): UsefulClass = UsefulClass(param)
|
||||
|
||||
class Invocable {
|
||||
deprecated("message")
|
||||
fun invoke() {}
|
||||
}
|
||||
|
||||
object InvocableHolder {
|
||||
val invocable = Invocable()
|
||||
}
|
||||
|
||||
fun invoker() {
|
||||
val invocable = Invocable()
|
||||
<!DEPRECATED_SYMBOL_WITH_MESSAGE!>invocable<!>()
|
||||
InvocableHolder.<!DEPRECATED_SYMBOL_WITH_MESSAGE!>invocable<!>()
|
||||
}
|
||||
|
||||
fun block() {
|
||||
<!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>()
|
||||
<!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>(2)
|
||||
}
|
||||
|
||||
fun expression() = <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>()
|
||||
|
||||
fun reflection() = ::<!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>
|
||||
fun reflection2() = UsefulClass::<!DEPRECATED_SYMBOL_WITH_MESSAGE!>member<!>
|
||||
|
||||
class Initializer {
|
||||
val x = <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>()
|
||||
}
|
||||
|
||||
deprecated("does nothing good")
|
||||
fun Any.doNothing() = this.toString() // "this" should not be marked as deprecated despite it referes to deprecated function
|
||||
|
||||
class Delegation {
|
||||
val x by <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>()
|
||||
var y by <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>()
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package
|
||||
|
||||
kotlin.deprecated(value = "message": kotlin.String) internal fun Obsolete(/*0*/ param: kotlin.Int = ...): UsefulClass
|
||||
internal fun block(): kotlin.Unit
|
||||
internal fun expression(): UsefulClass
|
||||
internal fun invoker(): kotlin.Unit
|
||||
internal fun reflection(): [ERROR : Error function type]
|
||||
internal fun reflection2(): [ERROR : Error function type]
|
||||
kotlin.deprecated(value = "does nothing good": kotlin.String) internal fun kotlin.Any.doNothing(): kotlin.String
|
||||
|
||||
internal final class Delegation {
|
||||
public constructor Delegation()
|
||||
internal final val x: kotlin.Int
|
||||
internal final var y: kotlin.Int
|
||||
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 class Initializer {
|
||||
public constructor Initializer()
|
||||
internal final val x: UsefulClass
|
||||
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 class Invocable {
|
||||
public constructor Invocable()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
kotlin.deprecated(value = "message": kotlin.String) internal final fun invoke(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal object InvocableHolder {
|
||||
private constructor InvocableHolder()
|
||||
internal final val invocable: Invocable
|
||||
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 class UsefulClass {
|
||||
public constructor UsefulClass(/*0*/ param: kotlin.Int = ...)
|
||||
internal final val param: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
internal final fun get(/*0*/ instance: kotlin.Any, /*1*/ property: kotlin.PropertyMetadata): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
kotlin.deprecated(value = "message": kotlin.String) internal final fun member(): kotlin.Unit
|
||||
internal final fun set(/*0*/ instance: kotlin.Any, /*1*/ property: kotlin.PropertyMetadata, /*2*/ value: kotlin.Int): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import <!DEPRECATED_SYMBOL_WITH_MESSAGE!>C<!> as C2
|
||||
|
||||
deprecated("obsolete")
|
||||
class C {
|
||||
fun use() {}
|
||||
}
|
||||
|
||||
fun useAlias(c : <!DEPRECATED_SYMBOL_WITH_MESSAGE!>C2<!>) { c.use() }
|
||||
@@ -0,0 +1,11 @@
|
||||
package
|
||||
|
||||
internal fun useAlias(/*0*/ c: C): kotlin.Unit
|
||||
|
||||
kotlin.deprecated(value = "obsolete": kotlin.String) internal final class C {
|
||||
public constructor C()
|
||||
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 fun use(): kotlin.Unit
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
class Iter {
|
||||
deprecated("text")
|
||||
fun iterator() : IterIterator = throw Exception()
|
||||
|
||||
class IterIterator {
|
||||
fun hasNext(): Boolean = throw UnsupportedOperationException()
|
||||
fun next(): String = throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
|
||||
class Iter2 {
|
||||
fun iterator() : Iter2Iterator = throw Exception()
|
||||
class Iter2Iterator {
|
||||
deprecated("text")
|
||||
fun hasNext(): Boolean = throw UnsupportedOperationException()
|
||||
deprecated("text")
|
||||
fun next(): String = throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
|
||||
fun use() {
|
||||
for (x in <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Iter()<!>) {}
|
||||
for (x in <!DEPRECATED_SYMBOL_WITH_MESSAGE, DEPRECATED_SYMBOL_WITH_MESSAGE!>Iter2()<!>) {}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package
|
||||
|
||||
internal fun use(): kotlin.Unit
|
||||
|
||||
internal final class Iter {
|
||||
public constructor Iter()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
kotlin.deprecated(value = "text": kotlin.String) internal final fun iterator(): Iter.IterIterator
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
internal final class IterIterator {
|
||||
public constructor IterIterator()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
internal final fun hasNext(): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
internal final fun next(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
internal final class Iter2 {
|
||||
public constructor Iter2()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
internal final fun iterator(): Iter2.Iter2Iterator
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
internal final class Iter2Iterator {
|
||||
public constructor Iter2Iterator()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
kotlin.deprecated(value = "text": kotlin.String) internal final fun hasNext(): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
kotlin.deprecated(value = "text": kotlin.String) internal final fun next(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
// !DIAGNOSTICS: -NO_VALUE_FOR_PARAMETER
|
||||
// FILE: A.java
|
||||
|
||||
@Deprecated
|
||||
public class A {
|
||||
@Deprecated
|
||||
public String getFoo(String text) {
|
||||
return text;
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: B.kt
|
||||
|
||||
class B(private [deprecated] val foo: String) : <!DEPRECATED_SYMBOL_WITH_MESSAGE!>A<!>() {
|
||||
override fun getFoo(text: String): String = super.<!DEPRECATED_SYMBOL_WITH_MESSAGE!>getFoo<!>(text + <!DEPRECATED_SYMBOL!>foo<!>)
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package
|
||||
|
||||
kotlin.deprecated(value = "Deprecated in Java": kotlin.String) public open class A {
|
||||
public constructor A()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
kotlin.deprecated(value = "Deprecated in Java": kotlin.String) public open fun getFoo(/*0*/ text: kotlin.String!): kotlin.String!
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal final class B : A {
|
||||
public constructor B(/*0*/ kotlin.deprecated() foo: kotlin.String)
|
||||
kotlin.deprecated() private final val foo: kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ fun getFoo(/*0*/ text: kotlin.String): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
class TopLevel {
|
||||
deprecated("Nested")
|
||||
class Nested {
|
||||
companion object {
|
||||
fun use() {}
|
||||
|
||||
class CompanionNested2
|
||||
}
|
||||
|
||||
class Nested2
|
||||
}
|
||||
}
|
||||
|
||||
fun useNested() {
|
||||
val <!UNUSED_VARIABLE!>d<!> = TopLevel.<!DEPRECATED_SYMBOL_WITH_MESSAGE!>Nested<!>.use()
|
||||
TopLevel.<!DEPRECATED_SYMBOL_WITH_MESSAGE!>Nested<!>.Nested2()
|
||||
TopLevel.<!DEPRECATED_SYMBOL_WITH_MESSAGE!>Nested<!>.<!UNRESOLVED_REFERENCE!>CompanionNested2<!>()
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package
|
||||
|
||||
internal fun useNested(): kotlin.Unit
|
||||
|
||||
internal final class TopLevel {
|
||||
public constructor TopLevel()
|
||||
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.deprecated(value = "Nested": kotlin.String) internal final class Nested {
|
||||
public constructor Nested()
|
||||
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 companion object Companion {
|
||||
private constructor Companion()
|
||||
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 fun use(): kotlin.Unit
|
||||
|
||||
internal final class CompanionNested2 {
|
||||
public constructor CompanionNested2()
|
||||
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 class Nested2 {
|
||||
public constructor Nested2()
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
deprecated("Object")
|
||||
object Obsolete {
|
||||
fun use() {}
|
||||
}
|
||||
|
||||
class Another {
|
||||
deprecated("Object")
|
||||
companion object {
|
||||
fun use() {}
|
||||
}
|
||||
}
|
||||
|
||||
fun first() {
|
||||
<!DEPRECATED_SYMBOL_WITH_MESSAGE!>Another<!>.use()
|
||||
}
|
||||
|
||||
fun useObject() {
|
||||
<!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>.use()
|
||||
val <!UNUSED_VARIABLE!>x<!> = <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>
|
||||
}
|
||||
|
||||
fun useCompanion() {
|
||||
val <!UNUSED_VARIABLE!>d<!> = <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Another<!>
|
||||
val <!UNUSED_VARIABLE!>x<!> = Another.<!DEPRECATED_SYMBOL_WITH_MESSAGE!>Companion<!>
|
||||
Another.<!DEPRECATED_SYMBOL_WITH_MESSAGE!>Companion<!>.use()
|
||||
<!DEPRECATED_SYMBOL_WITH_MESSAGE!>Another<!>.use()
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package
|
||||
|
||||
internal fun first(): kotlin.Unit
|
||||
internal fun useCompanion(): kotlin.Unit
|
||||
internal fun useObject(): kotlin.Unit
|
||||
|
||||
internal final class Another {
|
||||
public constructor Another()
|
||||
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.deprecated(value = "Object": kotlin.String) internal companion object Companion {
|
||||
private constructor Companion()
|
||||
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 fun use(): kotlin.Unit
|
||||
}
|
||||
}
|
||||
|
||||
kotlin.deprecated(value = "Object": kotlin.String) internal object Obsolete {
|
||||
private constructor Obsolete()
|
||||
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 fun use(): kotlin.Unit
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
// !DIAGNOSTICS: -UNUSED_EXPRESSION, -REFLECTION_TYPES_NOT_LOADED
|
||||
|
||||
class Delegate() {
|
||||
deprecated("text")
|
||||
fun get(instance: Any, property: PropertyMetadata) : Int = 1
|
||||
|
||||
deprecated("text")
|
||||
fun set(instance: Any, property: PropertyMetadata, value: Int) {}
|
||||
}
|
||||
|
||||
class PropertyHolder {
|
||||
deprecated("text")
|
||||
val x = 1
|
||||
|
||||
deprecated("text")
|
||||
var name = "String"
|
||||
|
||||
val valDelegate <!DEPRECATED_SYMBOL_WITH_MESSAGE!>by<!> Delegate()
|
||||
var varDelegate <!DEPRECATED_SYMBOL_WITH_MESSAGE, DEPRECATED_SYMBOL_WITH_MESSAGE!>by<!> Delegate()
|
||||
|
||||
public val test1: String = ""
|
||||
[deprecated("val-getter")] get
|
||||
|
||||
public var test2: String = ""
|
||||
[deprecated("var-getter")] get
|
||||
[deprecated("var-setter")] set
|
||||
|
||||
public var test3: String = ""
|
||||
[deprecated("var-getter")] get
|
||||
set
|
||||
|
||||
public var test4: String = ""
|
||||
get
|
||||
[deprecated("var-setter")] set
|
||||
}
|
||||
|
||||
fun PropertyHolder.extFunction() {
|
||||
<!DEPRECATED_SYMBOL_WITH_MESSAGE!>test2<!> = "ext"
|
||||
<!DEPRECATED_SYMBOL_WITH_MESSAGE!>test1<!>
|
||||
}
|
||||
|
||||
fun fn() {
|
||||
PropertyHolder().<!DEPRECATED_SYMBOL_WITH_MESSAGE!>test1<!>
|
||||
PropertyHolder().<!DEPRECATED_SYMBOL_WITH_MESSAGE!>test2<!>
|
||||
PropertyHolder().<!DEPRECATED_SYMBOL_WITH_MESSAGE!>test2<!> = ""
|
||||
|
||||
PropertyHolder().<!DEPRECATED_SYMBOL_WITH_MESSAGE!>test3<!>
|
||||
PropertyHolder().test3 = ""
|
||||
|
||||
PropertyHolder().test4
|
||||
PropertyHolder().<!DEPRECATED_SYMBOL_WITH_MESSAGE!>test4<!> = ""
|
||||
|
||||
val <!UNUSED_VARIABLE!>a<!> = PropertyHolder().<!DEPRECATED_SYMBOL_WITH_MESSAGE!>x<!>
|
||||
val <!UNUSED_VARIABLE!>b<!> = PropertyHolder().<!DEPRECATED_SYMBOL_WITH_MESSAGE!>name<!>
|
||||
PropertyHolder().<!DEPRECATED_SYMBOL_WITH_MESSAGE!>name<!> = "value"
|
||||
|
||||
val <!UNUSED_VARIABLE!>d<!> = PropertyHolder().valDelegate
|
||||
PropertyHolder().varDelegate = 1
|
||||
}
|
||||
|
||||
fun literals() {
|
||||
PropertyHolder::test1
|
||||
PropertyHolder::<!DEPRECATED_SYMBOL_WITH_MESSAGE!>name<!>
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package
|
||||
|
||||
internal fun fn(): kotlin.Unit
|
||||
internal fun literals(): kotlin.Unit
|
||||
internal fun PropertyHolder.extFunction(): kotlin.Unit
|
||||
|
||||
internal final class Delegate {
|
||||
public constructor Delegate()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
kotlin.deprecated(value = "text": kotlin.String) internal final fun get(/*0*/ instance: kotlin.Any, /*1*/ property: kotlin.PropertyMetadata): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
kotlin.deprecated(value = "text": kotlin.String) internal final fun set(/*0*/ instance: kotlin.Any, /*1*/ property: kotlin.PropertyMetadata, /*2*/ value: kotlin.Int): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal final class PropertyHolder {
|
||||
public constructor PropertyHolder()
|
||||
kotlin.deprecated(value = "text": kotlin.String) internal final var name: kotlin.String
|
||||
public final val test1: kotlin.String = ""
|
||||
public final var test2: kotlin.String
|
||||
public final var test3: kotlin.String
|
||||
public final var test4: kotlin.String
|
||||
internal final val valDelegate: kotlin.Int
|
||||
internal final var varDelegate: kotlin.Int
|
||||
kotlin.deprecated(value = "text": kotlin.String) internal final val x: kotlin.Int = 1
|
||||
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
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
deprecated("Class")
|
||||
open class Obsolete {
|
||||
fun use() {}
|
||||
}
|
||||
|
||||
deprecated("Class")
|
||||
open class Obsolete2 [deprecated("Constructor")]() {
|
||||
fun use() {}
|
||||
}
|
||||
|
||||
trait Generic<T>
|
||||
|
||||
open class Derived() : <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>()
|
||||
|
||||
class Derived2() : Derived()
|
||||
|
||||
class TypeParam : Generic<<!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>>
|
||||
|
||||
object Object : <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>()
|
||||
|
||||
class Properties {
|
||||
val x : <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!> = <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>()
|
||||
var y : <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!> = <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>()
|
||||
|
||||
var n : <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>
|
||||
get() = <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>()
|
||||
set(value) {}
|
||||
}
|
||||
|
||||
fun param(param: <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>) { param.use() }
|
||||
|
||||
fun funcParamReceiver(param: <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>.()->Unit) { <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>().param() }
|
||||
fun funcParamParam(param: (<!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>)->Unit) { param(<!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>()) }
|
||||
fun funcParamRetVal(param: ()-><!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>) { param() }
|
||||
|
||||
fun constraint<T: <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>>() {}
|
||||
|
||||
fun <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>.receiver() {}
|
||||
|
||||
fun retVal(): <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!> = <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>()
|
||||
|
||||
fun nullableRetVal(): <!DEPRECATED_SYMBOL_WITH_MESSAGE!>Obsolete<!>? = null
|
||||
@@ -0,0 +1,73 @@
|
||||
package
|
||||
|
||||
internal fun </*0*/ T : Obsolete> constraint(): kotlin.Unit
|
||||
internal fun funcParamParam(/*0*/ param: (Obsolete) -> kotlin.Unit): kotlin.Unit
|
||||
internal fun funcParamReceiver(/*0*/ param: Obsolete.() -> kotlin.Unit): kotlin.Unit
|
||||
internal fun funcParamRetVal(/*0*/ param: () -> Obsolete): kotlin.Unit
|
||||
internal fun nullableRetVal(): Obsolete?
|
||||
internal fun param(/*0*/ param: Obsolete): kotlin.Unit
|
||||
internal fun retVal(): Obsolete
|
||||
internal fun Obsolete.receiver(): kotlin.Unit
|
||||
|
||||
internal open class Derived : Obsolete {
|
||||
public constructor Derived()
|
||||
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 override /*1*/ /*fake_override*/ fun use(): kotlin.Unit
|
||||
}
|
||||
|
||||
internal final class Derived2 : Derived {
|
||||
public constructor Derived2()
|
||||
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 override /*1*/ /*fake_override*/ fun use(): kotlin.Unit
|
||||
}
|
||||
|
||||
internal trait Generic</*0*/ T> {
|
||||
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 object Object : Obsolete {
|
||||
private constructor Object()
|
||||
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 override /*1*/ /*fake_override*/ fun use(): kotlin.Unit
|
||||
}
|
||||
|
||||
kotlin.deprecated(value = "Class": kotlin.String) internal open class Obsolete {
|
||||
public constructor Obsolete()
|
||||
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 fun use(): kotlin.Unit
|
||||
}
|
||||
|
||||
kotlin.deprecated(value = "Class": kotlin.String) internal open class Obsolete2 {
|
||||
kotlin.deprecated(value = "Constructor": kotlin.String) public constructor Obsolete2()
|
||||
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 fun use(): kotlin.Unit
|
||||
}
|
||||
|
||||
internal final class Properties {
|
||||
public constructor Properties()
|
||||
internal final var n: Obsolete
|
||||
internal final val x: Obsolete
|
||||
internal final var y: Obsolete
|
||||
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 class TypeParam : Generic<Obsolete> {
|
||||
public constructor TypeParam()
|
||||
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,5 +1,5 @@
|
||||
fun test(d: dynamic) {
|
||||
val a = array(1, 2, 3)
|
||||
val a = arrayOf(1, 2, 3)
|
||||
|
||||
d.foo(*d)
|
||||
d.foo(*a)
|
||||
|
||||
+10
-10
@@ -1,10 +1,10 @@
|
||||
annotation class Ann(val i: IntArray)
|
||||
|
||||
Ann(intArray(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>))
|
||||
Ann(intArray(i2))
|
||||
Ann(intArray(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
|
||||
Ann(intArray(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>, i2, <!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
|
||||
Ann(intArray(<!TYPE_MISMATCH!>intArray(i, i2, i3)<!>))
|
||||
Ann(intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>))
|
||||
Ann(intArrayOf(i2))
|
||||
Ann(intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
|
||||
Ann(intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>, i2, <!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
|
||||
Ann(intArrayOf(<!TYPE_MISMATCH!>intArrayOf(i, i2, i3)<!>))
|
||||
class Test
|
||||
|
||||
var i = 1
|
||||
@@ -14,13 +14,13 @@ val i3 = foo()
|
||||
fun foo(): Int = 1
|
||||
|
||||
annotation class AnnJC(val i: Array<Class<*>>)
|
||||
AnnJC(array(javaClass<Test>()))
|
||||
AnnJC(array(<!ANNOTATION_PARAMETER_MUST_BE_CLASS_LITERAL!>iJC<!>))
|
||||
AnnJC(arrayOf(javaClass<Test>()))
|
||||
AnnJC(arrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CLASS_LITERAL!>iJC<!>))
|
||||
class TestJC
|
||||
val iJC = javaClass<Test>()
|
||||
|
||||
annotation class AnnAnn(val i: Array<Ann>)
|
||||
AnnAnn(array(Ann(intArray(1))))
|
||||
AnnAnn(array(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>iAnn<!>))
|
||||
AnnAnn(arrayOf(Ann(intArrayOf(1))))
|
||||
AnnAnn(arrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>iAnn<!>))
|
||||
class TestAnn
|
||||
val iAnn = <!ANNOTATION_CLASS_CONSTRUCTOR_CALL!>Ann(intArray(1))<!>
|
||||
val iAnn = <!ANNOTATION_CLASS_CONSTRUCTOR_CALL!>Ann(intArrayOf(1))<!>
|
||||
+2
-2
@@ -21,7 +21,7 @@ class MyClass {
|
||||
val i = 1
|
||||
}
|
||||
|
||||
val ia: IntArray = intArray(1, 2)
|
||||
val sa: Array<String> = array("a", "b")
|
||||
val ia: IntArray = intArrayOf(1, 2)
|
||||
val sa: Array<String> = arrayOf("a", "b")
|
||||
|
||||
annotation class Ann2
|
||||
|
||||
+8
-8
@@ -4,10 +4,10 @@ Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>)
|
||||
Ann(i2)
|
||||
Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>)
|
||||
Ann(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>, i2, <!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>)
|
||||
Ann(*intArray(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>))
|
||||
Ann(*intArray(i2))
|
||||
Ann(*intArray(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
|
||||
Ann(*intArray(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>, i2, <!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
|
||||
Ann(*intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>))
|
||||
Ann(*intArrayOf(i2))
|
||||
Ann(*intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
|
||||
Ann(*intArrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>i<!>, i2, <!ANNOTATION_PARAMETER_MUST_BE_CONST!>i3<!>))
|
||||
class Test
|
||||
|
||||
var i = 1
|
||||
@@ -17,13 +17,13 @@ val i3 = foo()
|
||||
fun foo(): Int = 1
|
||||
|
||||
annotation class AnnJC(vararg val i: Class<*>)
|
||||
AnnJC(*array(javaClass<Test>()))
|
||||
AnnJC(*array(<!ANNOTATION_PARAMETER_MUST_BE_CLASS_LITERAL!>iJC<!>))
|
||||
AnnJC(*arrayOf(javaClass<Test>()))
|
||||
AnnJC(*arrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CLASS_LITERAL!>iJC<!>))
|
||||
class TestJC
|
||||
val iJC = javaClass<Test>()
|
||||
|
||||
annotation class AnnAnn(vararg val i: Ann)
|
||||
AnnAnn(*array(Ann(1)))
|
||||
AnnAnn(*array(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>iAnn<!>))
|
||||
AnnAnn(*arrayOf(Ann(1)))
|
||||
AnnAnn(*arrayOf(<!ANNOTATION_PARAMETER_MUST_BE_CONST!>iAnn<!>))
|
||||
class TestAnn
|
||||
val iAnn = <!ANNOTATION_CLASS_CONSTRUCTOR_CALL!>Ann(1)<!>
|
||||
+5
-5
@@ -7,20 +7,20 @@ public @interface A {
|
||||
// FILE: b.kt
|
||||
A(<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<Int>()<!>,
|
||||
<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<Any>()<!>,
|
||||
arg = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>array(javaClass<String>(), javaClass<Double>())<!>)
|
||||
arg = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>arrayOf(javaClass<String>(), javaClass<Double>())<!>)
|
||||
class MyClass1
|
||||
|
||||
A(<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<Int>()<!>, <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>javaClass<Any>()<!>)
|
||||
class MyClass2
|
||||
|
||||
A(arg = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>array(javaClass<String>(), javaClass<Double>())<!>)
|
||||
A(arg = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>arrayOf(javaClass<String>(), javaClass<Double>())<!>)
|
||||
class MyClass3
|
||||
|
||||
A class MyClass4
|
||||
|
||||
A(value = *<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>array(javaClass<Int>(), javaClass<Any>())<!>,
|
||||
arg = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>array(javaClass<String>(), javaClass<Double>())<!>)
|
||||
A(value = *<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>arrayOf(javaClass<Int>(), javaClass<Any>())<!>,
|
||||
arg = <!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>arrayOf(javaClass<String>(), javaClass<Double>())<!>)
|
||||
class MyClass5
|
||||
|
||||
A(value = *<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>array(javaClass<Int>(), javaClass<Any>())<!>)
|
||||
A(value = *<!JAVA_LANG_CLASS_ARGUMENT_IN_ANNOTATION!>arrayOf(javaClass<Int>(), javaClass<Any>())<!>)
|
||||
class MyClass6
|
||||
|
||||
+2
-2
@@ -10,13 +10,13 @@ public @interface A {
|
||||
|
||||
[A("4", y = 2)] fun test2() {}
|
||||
|
||||
[A(*array("5", "6"), "7", y = 3)] fun test3() {}
|
||||
[A(*arrayOf("5", "6"), "7", y = 3)] fun test3() {}
|
||||
|
||||
[A("1", "2", "3", x = String::class, y = 4)] fun test4() {}
|
||||
|
||||
[A("4", y = 5)] fun test5() {}
|
||||
|
||||
[A(*array("5", "6"), "7", x = Any::class, y = 6)] fun test6() {}
|
||||
[A(*arrayOf("5", "6"), "7", x = Any::class, y = 6)] fun test6() {}
|
||||
|
||||
[A(y = 7)] fun test7() {}
|
||||
|
||||
|
||||
+5
-5
@@ -10,18 +10,18 @@ public @interface A {
|
||||
|
||||
[A("4")] fun test2() {}
|
||||
|
||||
[A(*array("5", "6"), "7")] fun test3() {}
|
||||
[A(*arrayOf("5", "6"), "7")] fun test3() {}
|
||||
|
||||
[A("1", "2", "3", x = String::class)] fun test4() {}
|
||||
|
||||
[A("4", y = 2)] fun test5() {}
|
||||
|
||||
[A(*array("5", "6"), "7", x = Any::class, y = 3)] fun test6() {}
|
||||
[A(*arrayOf("5", "6"), "7", x = Any::class, y = 3)] fun test6() {}
|
||||
|
||||
[A()] fun test7() {}
|
||||
|
||||
[A] fun test8() {}
|
||||
|
||||
[A(x = Any::class, <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>*array("5", "6")<!>, <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>"7"<!>, y = 3)] fun test9() {}
|
||||
[A(x = Any::class, value = *array("5", "6"), <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>"7"<!>, y = 3)] fun test10() {}
|
||||
[A(x = Any::class, value = *array("5", "6", "7"), y = 3)] fun test11() {}
|
||||
[A(x = Any::class, <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>*arrayOf("5", "6")<!>, <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>"7"<!>, y = 3)] fun test9() {}
|
||||
[A(x = Any::class, value = *arrayOf("5", "6"), <!MIXING_NAMED_AND_POSITIONED_ARGUMENTS!>"7"<!>, y = 3)] fun test10() {}
|
||||
[A(x = Any::class, value = *arrayOf("5", "6", "7"), y = 3)] fun test11() {}
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ public @interface A {
|
||||
|
||||
[A("4")] fun test2() {}
|
||||
|
||||
[A(*array("5", "6"), "7")] fun test3() {}
|
||||
[A(*arrayOf("5", "6"), "7")] fun test3() {}
|
||||
|
||||
[A()] fun test4() {}
|
||||
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ public @interface A {
|
||||
|
||||
[A("4")] fun test2() {}
|
||||
|
||||
[A(*array("5", "6"), "7")] fun test3() {}
|
||||
[A(*arrayOf("5", "6"), "7")] fun test3() {}
|
||||
|
||||
[A()] fun test4() {}
|
||||
|
||||
|
||||
+1
-1
@@ -4,6 +4,6 @@ public @interface A {
|
||||
}
|
||||
|
||||
// FILE: b.kt
|
||||
[A(*<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH(kotlin.Array<out kotlin.String>; IGNORE)!>array<!>(1, "b"))]
|
||||
[A(*<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH(kotlin.Array<out kotlin.String>; IGNORE)!>arrayOf<!>(1, "b"))]
|
||||
fun test() {
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
annotation class B(vararg val args: String)
|
||||
|
||||
[B(*<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH(kotlin.Array<out kotlin.String>; IGNORE)!>array<!>(1, "b"))]
|
||||
[B(*<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH(kotlin.Array<out kotlin.String>; IGNORE)!>arrayOf<!>(1, "b"))]
|
||||
fun test() {
|
||||
}
|
||||
|
||||
+3
-3
@@ -6,7 +6,7 @@ public @interface A {
|
||||
|
||||
// FILE: b.kt
|
||||
|
||||
A(arg = array(javaClass<String>(), javaClass<Int>())) class MyClass1
|
||||
A(arg = arrayOf(javaClass<String>(), javaClass<Int>())) class MyClass1
|
||||
|
||||
A(arg = <!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(javaClass<String>(), Int::class)) class MyClass2
|
||||
A(arg = <!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(String::class, javaClass<Int>())) class MyClass3
|
||||
A(arg = <!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(javaClass<String>(), Int::class)) class MyClass2
|
||||
A(arg = <!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(String::class, javaClass<Int>())) class MyClass3
|
||||
|
||||
+2
-2
@@ -7,9 +7,9 @@ public @interface A {
|
||||
// FILE: b.kt
|
||||
A(javaClass<String>(), javaClass<Int>()) class MyClass1
|
||||
|
||||
A(*array(javaClass<String>(), javaClass<Int>())) class MyClass2
|
||||
A(*arrayOf(javaClass<String>(), javaClass<Int>())) class MyClass2
|
||||
|
||||
A(value = *array(javaClass<String>(), javaClass<Int>())) class MyClass3
|
||||
A(value = *arrayOf(javaClass<String>(), javaClass<Int>())) class MyClass3
|
||||
|
||||
A(<!TYPE_MISMATCH!>javaClass<String>()<!>, Int::class) class MyClass4
|
||||
A(String::class, <!TYPE_MISMATCH!>javaClass<Int>()<!>) class MyClass5
|
||||
|
||||
+1
-1
@@ -4,4 +4,4 @@ public @interface A {
|
||||
}
|
||||
|
||||
// FILE: b.kt
|
||||
A(arg = array(String::class, Int::class)) class MyClass
|
||||
A(arg = arrayOf(String::class, Int::class)) class MyClass
|
||||
|
||||
+2
-2
@@ -5,5 +5,5 @@ public @interface A {
|
||||
|
||||
// FILE: b.kt
|
||||
A(String::class, Int::class) class MyClass1
|
||||
A(*array(String::class, Int::class)) class MyClass2
|
||||
A(value = *array(String::class, Int::class)) class MyClass3
|
||||
A(*arrayOf(String::class, Int::class)) class MyClass2
|
||||
A(value = *arrayOf(String::class, Int::class)) class MyClass3
|
||||
|
||||
+6
-6
@@ -6,22 +6,22 @@ class B2 : A()
|
||||
|
||||
annotation class Ann1(val arg: Array<KClass<in A>>)
|
||||
|
||||
Ann1(array(A::class))
|
||||
Ann1(arrayOf(A::class))
|
||||
class MyClass1
|
||||
|
||||
Ann1(array(Any::class))
|
||||
Ann1(arrayOf(Any::class))
|
||||
class MyClass1a
|
||||
|
||||
Ann1(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(B1::class))
|
||||
Ann1(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(B1::class))
|
||||
class MyClass2
|
||||
|
||||
annotation class Ann2(val arg: Array<KClass<in B1>>)
|
||||
|
||||
Ann2(array(A::class))
|
||||
Ann2(arrayOf(A::class))
|
||||
class MyClass3
|
||||
|
||||
Ann2(array(B1::class))
|
||||
Ann2(arrayOf(B1::class))
|
||||
class MyClass4
|
||||
|
||||
Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(B2::class))
|
||||
Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(B2::class))
|
||||
class MyClass5
|
||||
|
||||
+6
-6
@@ -6,22 +6,22 @@ class B2 : A()
|
||||
|
||||
annotation class Ann1(val arg: Array<KClass<out A>>)
|
||||
|
||||
Ann1(array(A::class))
|
||||
Ann1(arrayOf(A::class))
|
||||
class MyClass1
|
||||
|
||||
Ann1(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(Any::class))
|
||||
Ann1(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(Any::class))
|
||||
class MyClass1a
|
||||
|
||||
Ann1(array(B1::class))
|
||||
Ann1(arrayOf(B1::class))
|
||||
class MyClass2
|
||||
|
||||
annotation class Ann2(val arg: Array<KClass<out B1>>)
|
||||
|
||||
Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(A::class))
|
||||
Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(A::class))
|
||||
class MyClass3
|
||||
|
||||
Ann2(array(B1::class))
|
||||
Ann2(arrayOf(B1::class))
|
||||
class MyClass4
|
||||
|
||||
Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>array<!>(B2::class))
|
||||
Ann2(<!TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>arrayOf<!>(B2::class))
|
||||
class MyClass5
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ class A2
|
||||
|
||||
Ann1(A1::class)
|
||||
Ann2(A1::class, A2::class)
|
||||
Ann3(array(A1::class, A2::class))
|
||||
Ann3(arrayOf(A1::class, A2::class))
|
||||
class MyClass1
|
||||
|
||||
Ann1(<!ANNOTATION_PARAMETER_MUST_BE_CONST!><!UNRESOLVED_REFERENCE!>A3<!>::class<!>)
|
||||
|
||||
@@ -14,7 +14,7 @@ ann3(a.b.c.A.IAnn())
|
||||
|
||||
annJavaClass(kotlin.javaClass<A>())
|
||||
|
||||
annArray(kotlin.array("a"))
|
||||
annArray(kotlin.arrayOf("a"))
|
||||
fun test() = 1
|
||||
|
||||
annotation class ann1(val p: deprecated = kotlin.deprecated("aaa"))
|
||||
@@ -23,7 +23,7 @@ annotation class ann3(val p: A.IAnn = A.IAnn(), val p2: A.IAnn = a.b.c.A.IAnn())
|
||||
|
||||
annotation class annJavaClass(val p: Class<*> = kotlin.javaClass<A>())
|
||||
|
||||
annotation class annArray(val p: Array<String> = kotlin.array("a"))
|
||||
annotation class annArray(val p: Array<String> = kotlin.arrayOf("a"))
|
||||
|
||||
class A {
|
||||
annotation class IAnn
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
import kotlin.reflect.*
|
||||
|
||||
val String.countCharacters: Int
|
||||
get() = length
|
||||
get() = length()
|
||||
|
||||
var Int.meaning: Long
|
||||
get() = 42L
|
||||
|
||||
@@ -8,10 +8,10 @@ fun <T> fail2(): Array<T> = ok1 { <!TYPE_PARAMETER_AS_REIFIED!>Array<!><T>(1) {
|
||||
fun <T> ok3(block: () -> Array<T>): Array<T> = ok1 { block() }
|
||||
inline fun <reified T> ok4(): Array<T> = ok1 { Array<T>(1) { null!! } }
|
||||
|
||||
fun <T> fail3(block: () -> T): Pair<Array<T>, Array<T>> = Pair(<!TYPE_PARAMETER_AS_REIFIED!>array<!>(
|
||||
block()), <!TYPE_PARAMETER_AS_REIFIED!>array<!>()
|
||||
fun <T> fail3(block: () -> T): Pair<Array<T>, Array<T>> = Pair(<!TYPE_PARAMETER_AS_REIFIED!>arrayOf<!>(
|
||||
block()), <!TYPE_PARAMETER_AS_REIFIED!>arrayOf<!>()
|
||||
)
|
||||
inline fun <reified T> ok5(block: () -> T): Pair<Array<T>, Array<T>> = Pair(
|
||||
array(block()), array()
|
||||
arrayOf(block()), arrayOf()
|
||||
)
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
class A<T>(val x: Array<T>) {
|
||||
val y: Int = x[0].toString().length
|
||||
val y: Int = x[0].toString().length()
|
||||
|
||||
fun foo(a: T) {
|
||||
x[0] = a
|
||||
}
|
||||
|
||||
fun <R> bar(a: Array<R>): Int = a[0].toString().length
|
||||
fun <R> bar(a: Array<R>): Int = a[0].toString().length()
|
||||
}
|
||||
|
||||
fun <T> baz(a: Array<T>): String = a[0].toString()
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
inline fun<reified T> foo(block: () -> T): String = block().toString()
|
||||
|
||||
fun box() {
|
||||
val a = <!REIFIED_TYPE_FORBIDDEN_SUBSTITUTION!>array<!>(null!!)
|
||||
val a = <!REIFIED_TYPE_FORBIDDEN_SUBSTITUTION!>arrayOf<!>(null!!)
|
||||
val b = <!REIFIED_TYPE_FORBIDDEN_SUBSTITUTION!>Array<!><Nothing?>(5) { null!! }
|
||||
val c = <!REIFIED_TYPE_FORBIDDEN_SUBSTITUTION!>foo<!>() { null!! }
|
||||
val d = foo<Any> { null!! }
|
||||
|
||||
@@ -5,5 +5,5 @@ public class A {
|
||||
|
||||
// FILE: 1.kt
|
||||
fun main(args: Array<String>) {
|
||||
A.main(array())
|
||||
A.main(arrayOf())
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
fun test() {
|
||||
val p: Array<String> = array("a")
|
||||
val p: Array<String> = arrayOf("a")
|
||||
foo(*p)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package hello
|
||||
|
||||
fun main(args : Array<String>) {
|
||||
for (s in arrayList("a"))
|
||||
for (s in arrayListOf("a"))
|
||||
println("Hello, $s!")
|
||||
val java: String = j.Java().f()
|
||||
val hello: String = j.Java().f2()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package hello
|
||||
|
||||
fun main(args : Array<String>) {
|
||||
for (s in arrayList("a"))
|
||||
for (s in arrayListOf("a"))
|
||||
println("Hello, $s!")
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package hello
|
||||
|
||||
fun main(args : Array<String>) {
|
||||
for (s in arrayList("a"))
|
||||
for (s in arrayListOf("a"))
|
||||
println("Hello, $s!")
|
||||
j.Java().f();
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package hello
|
||||
|
||||
fun main(args : Array<String>) {
|
||||
for (s in arrayList("a"))
|
||||
for (s in arrayListOf("a"))
|
||||
println("Hello, $s!")
|
||||
val java: String = j.Java().f()
|
||||
val hello: String = j.Java().f2()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package hello
|
||||
|
||||
fun main(args : Array<String>) {
|
||||
for (s in arrayList("a"))
|
||||
for (s in arrayListOf("a"))
|
||||
println("Hello, $s!")
|
||||
foo()
|
||||
}
|
||||
|
||||
@@ -3490,6 +3490,75 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/deprecated")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
public static class Deprecated extends AbstractJetDiagnosticsTest {
|
||||
public void testAllFilesPresentInDeprecated() throws Exception {
|
||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/deprecated"), Pattern.compile("^(.+)\\.kt$"), true);
|
||||
}
|
||||
|
||||
@TestMetadata("annotationUsage.kt")
|
||||
public void testAnnotationUsage() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/deprecated/annotationUsage.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("componentUsage.kt")
|
||||
public void testComponentUsage() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/deprecated/componentUsage.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("functionUsage.kt")
|
||||
public void testFunctionUsage() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/deprecated/functionUsage.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("imports.kt")
|
||||
public void testImports() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/deprecated/imports.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("iteratorUsage.kt")
|
||||
public void testIteratorUsage() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/deprecated/iteratorUsage.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("javaDeprecated.kt")
|
||||
public void testJavaDeprecated() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/deprecated/javaDeprecated.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("nestedTypesUsage.kt")
|
||||
public void testNestedTypesUsage() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/deprecated/nestedTypesUsage.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("objectUsage.kt")
|
||||
public void testObjectUsage() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/deprecated/objectUsage.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("propertyUsage.kt")
|
||||
public void testPropertyUsage() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/deprecated/propertyUsage.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("typeUsage.kt")
|
||||
public void testTypeUsage() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/deprecated/typeUsage.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/diagnostics/tests/duplicateJvmSignature")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
@RunWith(JUnit3RunnerWithInners.class)
|
||||
|
||||
@@ -91,6 +91,19 @@ public interface DescriptorRenderer extends Renderer<DeclarationDescriptor> {
|
||||
.setNameShortness(NameShortness.SHORT)
|
||||
.setTextFormat(TextFormat.HTML).build();
|
||||
|
||||
DescriptorRenderer DEPRECATION = new DescriptorRendererBuilder()
|
||||
.setWithDefinedIn(false)
|
||||
.setModifiers()
|
||||
.setNameShortness(NameShortness.SHORT)
|
||||
.setWithoutTypeParameters(false)
|
||||
.setParameterNameRenderingPolicy(ParameterNameRenderingPolicy.NONE)
|
||||
.setReceiverAfterName(false)
|
||||
.setRenderCompanionObjectName(true)
|
||||
.setRenderAccessors(true)
|
||||
.setWithoutSuperTypes(true)
|
||||
.setRenderDefaultValues(false)
|
||||
.setStartFromName(true).build();
|
||||
|
||||
@NotNull
|
||||
String renderType(@NotNull JetType type);
|
||||
|
||||
|
||||
@@ -35,18 +35,18 @@ import org.jetbrains.kotlin.diagnostics.Diagnostic
|
||||
import org.jetbrains.kotlin.diagnostics.Errors
|
||||
import org.jetbrains.kotlin.diagnostics.Severity
|
||||
import org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages
|
||||
import org.jetbrains.kotlin.idea.actions.internal.KotlinInternalMode
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.analyzeFullyAndGetResult
|
||||
import org.jetbrains.kotlin.idea.kdoc.KDocHighlightingVisitor
|
||||
import org.jetbrains.kotlin.idea.quickfix.QuickFixes
|
||||
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
|
||||
import org.jetbrains.kotlin.psi.JetCodeFragment
|
||||
import org.jetbrains.kotlin.psi.JetFile
|
||||
import org.jetbrains.kotlin.psi.JetParameter
|
||||
import org.jetbrains.kotlin.psi.JetReferenceExpression
|
||||
import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
|
||||
import org.jetbrains.kotlin.idea.util.ProjectRootsUtil
|
||||
import org.jetbrains.kotlin.idea.actions.internal.KotlinInternalMode
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.*
|
||||
import org.jetbrains.kotlin.idea.quickfix.QuickFixes
|
||||
import kotlin.platform.platformStatic
|
||||
import org.jetbrains.kotlin.idea.kdoc.KDocHighlightingVisitor
|
||||
import org.jetbrains.kotlin.psi.JetParameter
|
||||
|
||||
public open class JetPsiChecker : Annotator, HighlightRangeExtension {
|
||||
|
||||
@@ -149,7 +149,12 @@ public open class JetPsiChecker : Annotator, HighlightRangeExtension {
|
||||
for (textRange in textRanges) {
|
||||
val annotation = holder.createWarningAnnotation(textRange, getDefaultMessage(diagnostic))
|
||||
|
||||
if (factory == Errors.DEPRECATED_CLASS_OBJECT_SYNTAX) annotation.setTextAttributes(CodeInsightColors.DEPRECATED_ATTRIBUTES)
|
||||
when (factory) {
|
||||
Errors.DEPRECATED_CLASS_OBJECT_SYNTAX,
|
||||
Errors.DEPRECATED_SYMBOL,
|
||||
Errors.DEPRECATED_SYMBOL_WITH_MESSAGE
|
||||
-> annotation.setTextAttributes(CodeInsightColors.DEPRECATED_ATTRIBUTES)
|
||||
}
|
||||
|
||||
setUpAnnotation(diagnostic, annotation, if (factory in Errors.UNUSED_ELEMENT_DIAGNOSTICS)
|
||||
ProblemHighlightType.LIKE_UNUSED_SYMBOL
|
||||
@@ -242,8 +247,8 @@ public open class JetPsiChecker : Annotator, HighlightRangeExtension {
|
||||
PropertiesHighlightingVisitor(holder, bindingContext),
|
||||
FunctionsHighlightingVisitor(holder, bindingContext),
|
||||
VariablesHighlightingVisitor(holder, bindingContext),
|
||||
TypeKindHighlightingVisitor(holder, bindingContext),
|
||||
DeprecatedAnnotationVisitor(holder, bindingContext)
|
||||
TypeKindHighlightingVisitor(holder, bindingContext)//,
|
||||
//DeprecatedAnnotationVisitor(holder, bindingContext)
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user