Tests, messages and infra for deprecated symbol reporting

This commit is contained in:
Ilya Ryzhenkov
2015-03-16 23:04:37 +03:00
parent c8920b8158
commit 288e1baa87
55 changed files with 773 additions and 83 deletions
@@ -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);
@@ -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)
@@ -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))<!>
@@ -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
@@ -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)<!>
@@ -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
@@ -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() {}
@@ -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() {}
@@ -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() {}
@@ -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() {}
@@ -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,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() {
}
@@ -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
@@ -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
@@ -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
@@ -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,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,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
@@ -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,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)
)
}