Deprecate JVM platform annotations in favor of capitilized themselves

This commit is contained in:
Denis Zharkov
2015-09-04 14:46:46 +03:00
parent 5471a1d18a
commit 952d45dc8b
107 changed files with 290 additions and 266 deletions
@@ -20,13 +20,13 @@ import org.jetbrains.kotlin.codegen.binding.CodegenBinding
import org.jetbrains.kotlin.codegen.context.CodegenContext
import org.jetbrains.kotlin.codegen.state.GenerationState
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.JetClass
import org.jetbrains.kotlin.psi.JetClassOrObject
import org.jetbrains.kotlin.psi.JetElement
import org.jetbrains.kotlin.resolve.descriptorUtil.hasDefaultValue
import org.jetbrains.kotlin.resolve.jvm.AsmTypes
import org.jetbrains.kotlin.resolve.jvm.diagnostics.OtherOrigin
import org.jetbrains.kotlin.resolve.jvm.annotations.hasJvmOverloadsAnnotation
import org.jetbrains.org.objectweb.asm.Opcodes
import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter
@@ -75,7 +75,7 @@ public class DefaultParameterValueSubstitutor(val state: GenerationState) {
delegateFunctionDescriptor: FunctionDescriptor,
owner: CodegenContext<*>,
classBuilder: ClassBuilder): Boolean {
if (functionDescriptor.getAnnotations().findAnnotation(FqName("kotlin.jvm.jvmOverloads")) == null) {
if (!functionDescriptor.hasJvmOverloadsAnnotation()) {
return false
}
@@ -0,0 +1,24 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.resolve.jvm.annotations
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.name.FqName
public fun DeclarationDescriptor.hasJvmOverloadsAnnotation(): Boolean {
return getAnnotations().findAnnotation(FqName("kotlin.jvm.JvmOverloads")) != null
}
@@ -47,12 +47,12 @@ public class DefaultErrorMessagesJvm implements DefaultErrorMessages.Extension {
static {
MAP.put(ErrorsJvm.CONFLICTING_JVM_DECLARATIONS, "Platform declaration clash: {0}", CONFLICTING_JVM_DECLARATIONS_DATA);
MAP.put(ErrorsJvm.ACCIDENTAL_OVERRIDE, "Accidental override: {0}", CONFLICTING_JVM_DECLARATIONS_DATA);
MAP.put(ErrorsJvm.JVM_STATIC_NOT_IN_OBJECT, "Only functions in named objects and companion objects of classes can be annotated with 'jvmStatic'");
MAP.put(ErrorsJvm.OVERRIDE_CANNOT_BE_STATIC, "Override member cannot be 'jvmStatic' in object");
MAP.put(ErrorsJvm.OVERLOADS_WITHOUT_DEFAULT_ARGUMENTS, "''jvmOverloads'' annotation has no effect for methods without default arguments");
MAP.put(ErrorsJvm.OVERLOADS_ABSTRACT, "''jvmOverloads'' annotation cannot be used on abstract methods");
MAP.put(ErrorsJvm.OVERLOADS_PRIVATE, "''jvmOverloads'' annotation has no effect on private and local declarations");
MAP.put(ErrorsJvm.INAPPLICABLE_JVM_NAME, "''jvmName'' annotation is not applicable to this declaration");
MAP.put(ErrorsJvm.JVM_STATIC_NOT_IN_OBJECT, "Only functions in named objects and companion objects of classes can be annotated with 'JvmStatic'");
MAP.put(ErrorsJvm.OVERRIDE_CANNOT_BE_STATIC, "Override member cannot be 'JvmStatic' in object");
MAP.put(ErrorsJvm.OVERLOADS_WITHOUT_DEFAULT_ARGUMENTS, "''JvmOverloads'' annotation has no effect for methods without default arguments");
MAP.put(ErrorsJvm.OVERLOADS_ABSTRACT, "''JvmOverloads'' annotation cannot be used on abstract methods");
MAP.put(ErrorsJvm.OVERLOADS_PRIVATE, "''JvmOverloads'' annotation has no effect on private and local declarations");
MAP.put(ErrorsJvm.INAPPLICABLE_JVM_NAME, "''JvmName'' annotation is not applicable to this declaration");
MAP.put(ErrorsJvm.ILLEGAL_JVM_NAME, "Illegal JVM name: ''{0}''", STRING);
MAP.put(ErrorsJvm.EXTERNAL_DECLARATION_CANNOT_BE_ABSTRACT, "External declaration can not be abstract");
MAP.put(ErrorsJvm.EXTERNAL_DECLARATION_CANNOT_HAVE_BODY, "External declaration can not have a body");
@@ -34,7 +34,6 @@ import org.jetbrains.kotlin.load.java.lazy.types.isMarkedNullable
import org.jetbrains.kotlin.load.kotlin.JavaAnnotationCallChecker
import org.jetbrains.kotlin.load.kotlin.JavaAnnotationMethodCallChecker
import org.jetbrains.kotlin.load.kotlin.nativeDeclarations.NativeFunChecker
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.resolve.*
@@ -51,6 +50,7 @@ import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValueFactory
import org.jetbrains.kotlin.resolve.calls.smartcasts.Nullability
import org.jetbrains.kotlin.resolve.descriptorUtil.getAnnotationRetention
import org.jetbrains.kotlin.resolve.descriptorUtil.isRepeatableAnnotation
import org.jetbrains.kotlin.resolve.jvm.annotations.hasJvmOverloadsAnnotation
import org.jetbrains.kotlin.resolve.jvm.calls.checkers.JavaClassOnCompanionChecker
import org.jetbrains.kotlin.resolve.jvm.calls.checkers.NeedSyntheticChecker
import org.jetbrains.kotlin.resolve.jvm.calls.checkers.ReflectionAPICallChecker
@@ -226,7 +226,7 @@ public class OverloadsAnnotationChecker: DeclarationChecker {
diagnosticHolder: DiagnosticSink,
bindingContext: BindingContext
) {
if (descriptor.getAnnotations().findAnnotation(FqName("kotlin.jvm.jvmOverloads")) != null) {
if (descriptor.hasJvmOverloadsAnnotation()) {
checkDeclaration(declaration, descriptor, diagnosticHolder)
}
}
@@ -29,7 +29,7 @@ public fun DeclarationDescriptor.hasInlineAnnotation(): Boolean {
public fun DeclarationDescriptor.hasPlatformStaticAnnotation(): Boolean {
return getAnnotations().findAnnotation(FqName("kotlin.platform.platformStatic")) != null ||
getAnnotations().findAnnotation(FqName("kotlin.jvm.jvmStatic")) != null
getAnnotations().findAnnotation(FqName("kotlin.jvm.JvmStatic")) != null
}
public fun DeclarationDescriptor.findPublicFieldAnnotation(): AnnotationDescriptor? {
@@ -1,13 +1,13 @@
public final class C {
@kotlin.jvm.jvmOverloads
@kotlin.jvm.JvmOverloads
@org.jetbrains.annotations.NotNull
public final java.lang.String foo(@org.jetbrains.annotations.NotNull java.lang.String o, @org.jetbrains.annotations.NotNull java.lang.String s1, @org.jetbrains.annotations.NotNull java.lang.String k, @org.jetbrains.annotations.Nullable java.lang.String s2) { /* compiled code */ }
@kotlin.jvm.jvmOverloads
@kotlin.jvm.JvmOverloads
@org.jetbrains.annotations.NotNull
public java.lang.String foo(@org.jetbrains.annotations.NotNull java.lang.String p, @org.jetbrains.annotations.NotNull java.lang.String p1, @org.jetbrains.annotations.Nullable java.lang.String p2) { /* compiled code */ }
@kotlin.jvm.jvmOverloads
@kotlin.jvm.JvmOverloads
@org.jetbrains.annotations.NotNull
public java.lang.String foo(@org.jetbrains.annotations.NotNull java.lang.String p, @org.jetbrains.annotations.Nullable java.lang.String p1) { /* compiled code */ }
@@ -1,7 +1,7 @@
// C
class C {
@[kotlin.jvm.jvmOverloads] public fun foo(o: String = "O", s1: String, k: String = "K", s2: String?): String {
@[kotlin.jvm.JvmOverloads] public fun foo(o: String = "O", s1: String, k: String = "K", s2: String?): String {
return o + k
}
}
@@ -1,5 +1,5 @@
class C<T> {
@kotlin.jvm.jvmOverloads public fun foo(o: T, k: String = "K"): String = o.toString() + k
@kotlin.jvm.JvmOverloads public fun foo(o: T, k: String = "K"): String = o.toString() + k
}
fun box(): String {
@@ -1,5 +1,5 @@
class C {
@kotlin.jvm.jvmOverloads public fun foo(o: String = "O", k: String = "K"): String = o + k
@kotlin.jvm.JvmOverloads public fun foo(o: String = "O", k: String = "K"): String = o + k
}
fun box(): String {
@@ -1,7 +1,7 @@
import kotlin.jvm.jvmName;
import kotlin.jvm.JvmName;
public class FakePlatformName {
@jvmName(name = "fake")
@JvmName(name = "fake")
public String foo() {
return "foo";
}
@@ -1,4 +1,4 @@
import kotlin.jvm.jvmStatic
import kotlin.jvm.JvmStatic
annotation(retention = AnnotationRetention.RUNTIME) class testAnnotation
@@ -7,14 +7,14 @@ class A {
companion object {
val b: String = "OK"
jvmStatic testAnnotation fun test1() = b
JvmStatic testAnnotation fun test1() = b
}
}
object B {
val b: String = "OK"
jvmStatic testAnnotation fun test1() = b
JvmStatic testAnnotation fun test1() = b
}
fun box(): String {
@@ -1,17 +1,17 @@
import kotlin.jvm.jvmStatic
import kotlin.jvm.JvmStatic
class A {
companion object {
val b: String = "OK"
jvmStatic val c: String = "OK"
JvmStatic val c: String = "OK"
jvmStatic fun test1() = b
JvmStatic fun test1() = b
jvmStatic fun test2() = b
JvmStatic fun test2() = b
jvmStatic fun String.test3() = this + b
JvmStatic fun String.test3() = this + b
}
}
@@ -1,13 +1,13 @@
import kotlin.jvm.jvmStatic
import kotlin.jvm.JvmStatic
enum class A {
;
companion object {
val foo: String = "OK"
jvmStatic val bar: String = "OK"
JvmStatic val bar: String = "OK"
jvmStatic fun baz() = foo
JvmStatic fun baz() = foo
}
}
@@ -1,16 +1,16 @@
import kotlin.jvm.jvmStatic
import kotlin.jvm.JvmStatic
object A {
val b: String = "OK"
jvmStatic val c: String = "OK"
JvmStatic val c: String = "OK"
jvmStatic fun test1() = b
JvmStatic fun test1() = b
jvmStatic fun test2() = b
JvmStatic fun test2() = b
jvmStatic fun String.test3() = this + b
JvmStatic fun String.test3() = this + b
}
fun box(): String {
@@ -1,6 +1,6 @@
class C {
companion object {
@kotlin.platform.platformStatic @kotlin.jvm.jvmOverloads public fun foo(o: String, k: String = "K"): String {
@kotlin.platform.platformStatic @kotlin.jvm.JvmOverloads public fun foo(o: String, k: String = "K"): String {
return o + k
}
}
@@ -1,5 +1,5 @@
class C {
@kotlin.jvm.jvmOverloads public fun foo(o: String = "O", i1: Int, k: String = "K", i2: Int): String {
@kotlin.jvm.JvmOverloads public fun foo(o: String = "O", i1: Int, k: String = "K", i2: Int): String {
return o + k
}
}
@@ -1,5 +1,5 @@
class C {
@kotlin.jvm.jvmOverloads public fun foo(d1: Double, d2: Double, status: String = "OK"): String {
@kotlin.jvm.JvmOverloads public fun foo(d1: Double, d2: Double, status: String = "OK"): String {
return if (d1 + d2 == 3.0) status else "fail"
}
}
@@ -1,7 +1,7 @@
class C {
}
@kotlin.jvm.jvmOverloads fun C.foo(o: String, k: String = "K"): String {
@kotlin.jvm.JvmOverloads fun C.foo(o: String, k: String = "K"): String {
return o + k
}
@@ -1,5 +1,5 @@
class C {
@kotlin.jvm.jvmOverloads public fun foo(o: String = "O", k: String = "K"): String {
@kotlin.jvm.JvmOverloads public fun foo(o: String = "O", k: String = "K"): String {
return o + k
}
}
@@ -1,5 +1,5 @@
class C {
@kotlin.jvm.jvmOverloads public fun foo(o: String, k: String = "K"): String {
@kotlin.jvm.JvmOverloads public fun foo(o: String, k: String = "K"): String {
return o + k
}
}
@@ -1,4 +1,4 @@
class C @kotlin.jvm.jvmOverloads constructor(s1: String, s2: String = "K") {
class C @kotlin.jvm.JvmOverloads constructor(s1: String, s2: String = "K") {
public val status: String = s1 + s2
}
@@ -1,7 +1,7 @@
class C(val i: Int) {
var status = "fail"
@kotlin.jvm.jvmOverloads constructor(o: String, k: String = "K"): this(-1) {
@kotlin.jvm.JvmOverloads constructor(o: String, k: String = "K"): this(-1) {
status = o + k
}
}
@@ -1,5 +1,5 @@
class C {
@kotlin.jvm.jvmOverloads public fun foo(s: String = "OK"): String {
@kotlin.jvm.JvmOverloads public fun foo(s: String = "OK"): String {
return s
}
}
@@ -1,4 +1,4 @@
@jvmName("Fail")
@JvmName("Fail")
fun OK() {}
fun box() = ::OK.name
@@ -21,7 +21,7 @@ fun box(): String {
val staticMethod = javaClass<C>().getDeclaredMethod("foo", javaClass<String>())
val k2 = staticMethod.kotlinFunction ?:
return "Fail: no Kotlin function found for static bridge for @jvmStatic method in companion object C::foo"
return "Fail: no Kotlin function found for static bridge for @JvmStatic method in companion object C::foo"
assertEquals(3, k2.call(C, "ghi"))
failsWith(javaClass<NullPointerException>()) { k2.call(null, "")!! }
@@ -1,4 +1,4 @@
package test
@jvmName("bar")
@JvmName("bar")
fun foo() {}
@@ -1,6 +1,6 @@
package test
kotlin.jvm.jvmName(name = "bar") internal fun foo(): kotlin.Unit
kotlin.jvm.JvmName(name = "bar") internal fun foo(): kotlin.Unit
public open class PlatformName {
public constructor PlatformName()
@@ -2,7 +2,7 @@ package test
class E1: Exception()
Throws(E1::class) jvmOverloads
Throws(E1::class) JvmOverloads
fun one(a: Int = 1) {}
class One @Throws(E1::class) constructor(a: Int = 1) {
@@ -1,6 +1,6 @@
package test
kotlin.jvm.jvmOverloads() internal fun one(/*0*/ kotlin.Int = ...): kotlin.Unit
kotlin.jvm.JvmOverloads() internal fun one(/*0*/ kotlin.Int = ...): kotlin.Unit
internal final class E1 : java.lang.Exception {
public constructor E1()
@@ -1,12 +1,12 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
<!ILLEGAL_JVM_NAME!>@jvmName("")<!>
<!ILLEGAL_JVM_NAME!>@JvmName("")<!>
fun foo(a: Any) {}
<!ILLEGAL_JVM_NAME!>@jvmName(".")<!>
<!ILLEGAL_JVM_NAME!>@JvmName(".")<!>
fun foo() {}
<!ILLEGAL_JVM_NAME!>@jvmName("/")<!>
<!ILLEGAL_JVM_NAME!>@JvmName("/")<!>
fun fooSlash() {}
<!ILLEGAL_JVM_NAME!>@jvmName("<")<!>
<!ILLEGAL_JVM_NAME!>@JvmName("<")<!>
fun fooLT() {}
@@ -1,6 +1,6 @@
package
kotlin.jvm.jvmName(name = ".") internal fun foo(): kotlin.Unit
kotlin.jvm.jvmName(name = "") internal fun foo(/*0*/ a: kotlin.Any): kotlin.Unit
kotlin.jvm.jvmName(name = "<") internal fun fooLT(): kotlin.Unit
kotlin.jvm.jvmName(name = "/") internal fun fooSlash(): kotlin.Unit
kotlin.jvm.JvmName(name = ".") internal fun foo(): kotlin.Unit
kotlin.jvm.JvmName(name = "") internal fun foo(/*0*/ a: kotlin.Any): kotlin.Unit
kotlin.jvm.JvmName(name = "<") internal fun fooLT(): kotlin.Unit
kotlin.jvm.JvmName(name = "/") internal fun fooSlash(): kotlin.Unit
@@ -1,89 +1,89 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
@jvmName("a")
@JvmName("a")
fun foo() {}
@jvmName("b")
@JvmName("b")
fun Any.foo() {}
@jvmName("c")
@JvmName("c")
val px = 1
@jvmName("d")
@JvmName("d")
val Any.px : Int
get() = 1
val valx: Int
@jvmName("e")
@JvmName("e")
get() = 1
var varx: Int
@jvmName("f")
@JvmName("f")
get() = 1
@jvmName("g")
@JvmName("g")
set(v) {}
var vardef: Int = 1
@jvmName("h")
@JvmName("h")
get
@jvmName("i")
@JvmName("i")
set
<!WRONG_ANNOTATION_TARGET!>@jvmName("C")<!>
class C <!WRONG_ANNOTATION_TARGET!>jvmName("primary")<!> constructor() {
<!WRONG_ANNOTATION_TARGET!>jvmName("ctr")<!> constructor(x: Int): this() {}
<!WRONG_ANNOTATION_TARGET!>@JvmName("C")<!>
class C <!WRONG_ANNOTATION_TARGET!>JvmName("primary")<!> constructor() {
<!WRONG_ANNOTATION_TARGET!>JvmName("ctr")<!> constructor(x: Int): this() {}
@jvmName("a")
@JvmName("a")
fun foo() {}
@jvmName("b")
@JvmName("b")
fun Any.foo() {}
@jvmName("c")
@JvmName("c")
val px = 1
@jvmName("d")
@JvmName("d")
val Any.px : Int
get() = 1
val valx: Int
@jvmName("e")
@JvmName("e")
get() = 1
var varx: Int
@jvmName("f")
@JvmName("f")
get() = 1
@jvmName("g")
@JvmName("g")
set(v) {}
}
fun foo1() {
<!INAPPLICABLE_JVM_NAME!>@jvmName("a")<!>
<!INAPPLICABLE_JVM_NAME!>@JvmName("a")<!>
fun foo() {}
<!WRONG_ANNOTATION_TARGET!>@jvmName("a")<!>
<!WRONG_ANNOTATION_TARGET!>@JvmName("a")<!>
val x = 1
}
abstract class AB {
<!INAPPLICABLE_JVM_NAME!>@jvmName("AB_absFun1")<!>
<!INAPPLICABLE_JVM_NAME!>@JvmName("AB_absFun1")<!>
abstract fun absFun1()
abstract fun absFun2()
<!INAPPLICABLE_JVM_NAME!>@jvmName("AB_openFun")<!>
<!INAPPLICABLE_JVM_NAME!>@JvmName("AB_openFun")<!>
open fun openFun() {}
}
class D: AB() {
override fun absFun1() {}
<!INAPPLICABLE_JVM_NAME!>@jvmName("D_absFun2")<!>
<!INAPPLICABLE_JVM_NAME!>@JvmName("D_absFun2")<!>
override fun absFun2() {}
<!INAPPLICABLE_JVM_NAME!>@jvmName("D_openFun")<!>
<!INAPPLICABLE_JVM_NAME!>@JvmName("D_openFun")<!>
final override fun openFun() {}
@jvmName("D_finalFun")
@JvmName("D_finalFun")
fun finalFun() {}
}
@@ -5,41 +5,41 @@ internal val valx: kotlin.Int
internal var vardef: kotlin.Int
internal var varx: kotlin.Int
internal val kotlin.Any.px: kotlin.Int
kotlin.jvm.jvmName(name = "a") internal fun foo(): kotlin.Unit
kotlin.jvm.JvmName(name = "a") internal fun foo(): kotlin.Unit
internal fun foo1(): kotlin.Unit
kotlin.jvm.jvmName(name = "b") internal fun kotlin.Any.foo(): kotlin.Unit
kotlin.jvm.JvmName(name = "b") internal fun kotlin.Any.foo(): kotlin.Unit
internal abstract class AB {
public constructor AB()
kotlin.jvm.jvmName(name = "AB_absFun1") internal abstract fun absFun1(): kotlin.Unit
kotlin.jvm.JvmName(name = "AB_absFun1") internal abstract fun absFun1(): kotlin.Unit
internal abstract fun absFun2(): kotlin.Unit
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.jvm.jvmName(name = "AB_openFun") internal open fun openFun(): kotlin.Unit
kotlin.jvm.JvmName(name = "AB_openFun") internal open fun openFun(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
kotlin.jvm.jvmName(name = "C") internal final class C {
kotlin.jvm.jvmName(name = "primary") public constructor C()
kotlin.jvm.jvmName(name = "ctr") public constructor C(/*0*/ x: kotlin.Int)
kotlin.jvm.JvmName(name = "C") internal final class C {
kotlin.jvm.JvmName(name = "primary") public constructor C()
kotlin.jvm.JvmName(name = "ctr") public constructor C(/*0*/ x: kotlin.Int)
internal final val px: kotlin.Int = 1
internal final val valx: kotlin.Int
internal final var varx: kotlin.Int
internal final val kotlin.Any.px: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
kotlin.jvm.jvmName(name = "a") internal final fun foo(): kotlin.Unit
kotlin.jvm.JvmName(name = "a") internal final fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
kotlin.jvm.jvmName(name = "b") internal final fun kotlin.Any.foo(): kotlin.Unit
kotlin.jvm.JvmName(name = "b") internal final fun kotlin.Any.foo(): kotlin.Unit
}
internal final class D : AB {
public constructor D()
internal open override /*1*/ fun absFun1(): kotlin.Unit
kotlin.jvm.jvmName(name = "D_absFun2") internal open override /*1*/ fun absFun2(): kotlin.Unit
kotlin.jvm.JvmName(name = "D_absFun2") internal open override /*1*/ fun absFun2(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
kotlin.jvm.jvmName(name = "D_finalFun") internal final fun finalFun(): kotlin.Unit
kotlin.jvm.JvmName(name = "D_finalFun") internal final fun finalFun(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
kotlin.jvm.jvmName(name = "D_openFun") internal final override /*1*/ fun openFun(): kotlin.Unit
kotlin.jvm.JvmName(name = "D_openFun") internal final override /*1*/ fun openFun(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,7 +1,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class C {
@kotlin.jvm.jvmOverloads <!OVERLOADS_WITHOUT_DEFAULT_ARGUMENTS!>constructor()<!> {
@kotlin.jvm.JvmOverloads <!OVERLOADS_WITHOUT_DEFAULT_ARGUMENTS!>constructor()<!> {
}
<!OVERLOADS_WITHOUT_DEFAULT_ARGUMENTS!>@kotlin.jvm.jvmOverloads fun foo(s: String)<!> {}
<!OVERLOADS_WITHOUT_DEFAULT_ARGUMENTS!>@kotlin.jvm.JvmOverloads fun foo(s: String)<!> {}
}
@@ -1,9 +1,9 @@
package
internal final class C {
kotlin.jvm.jvmOverloads() public constructor C()
kotlin.jvm.JvmOverloads() public constructor C()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
kotlin.jvm.jvmOverloads() internal final fun foo(/*0*/ s: kotlin.String): kotlin.Unit
kotlin.jvm.JvmOverloads() internal final fun foo(/*0*/ s: kotlin.String): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,8 +1,8 @@
interface T {
<!OVERLOADS_ABSTRACT!>@kotlin.jvm.jvmOverloads fun foo(s: String = "OK")<!>
<!OVERLOADS_ABSTRACT!>@kotlin.jvm.JvmOverloads fun foo(s: String = "OK")<!>
}
abstract class C {
<!OVERLOADS_ABSTRACT!>@kotlin.jvm.jvmOverloads abstract fun foo(s: String = "OK")<!>
<!OVERLOADS_ABSTRACT!>@kotlin.jvm.JvmOverloads abstract fun foo(s: String = "OK")<!>
}
@@ -3,14 +3,14 @@ package
internal abstract class C {
public constructor C()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
kotlin.jvm.jvmOverloads() internal abstract fun foo(/*0*/ s: kotlin.String = ...): kotlin.Unit
kotlin.jvm.JvmOverloads() internal abstract fun foo(/*0*/ s: kotlin.String = ...): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
internal interface T {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
kotlin.jvm.jvmOverloads() internal abstract fun foo(/*0*/ s: kotlin.String = ...): kotlin.Unit
kotlin.jvm.JvmOverloads() internal abstract fun foo(/*0*/ s: kotlin.String = ...): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,20 +1,20 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class C {
<!OVERLOADS_PRIVATE!>@kotlin.jvm.jvmOverloads private fun foo(s: String = "OK")<!> {
<!OVERLOADS_PRIVATE!>@kotlin.jvm.JvmOverloads private fun foo(s: String = "OK")<!> {
}
@kotlin.jvm.jvmOverloads fun bar(s: String = "OK") {
@kotlin.jvm.JvmOverloads fun bar(s: String = "OK") {
}
}
fun foo() {
class D {
<!OVERLOADS_PRIVATE!>@kotlin.jvm.jvmOverloads fun foo(s: String = "OK")<!> {
<!OVERLOADS_PRIVATE!>@kotlin.jvm.JvmOverloads fun foo(s: String = "OK")<!> {
}
}
val <!UNUSED_VARIABLE!>x<!> = object {
<!OVERLOADS_PRIVATE!>@kotlin.jvm.jvmOverloads fun foo(s: String = "OK")<!> {
<!OVERLOADS_PRIVATE!>@kotlin.jvm.JvmOverloads fun foo(s: String = "OK")<!> {
}
}
}
@@ -4,9 +4,9 @@ internal fun foo(): kotlin.Unit
internal final class C {
public constructor C()
kotlin.jvm.jvmOverloads() internal final fun bar(/*0*/ s: kotlin.String = ...): kotlin.Unit
kotlin.jvm.JvmOverloads() internal final fun bar(/*0*/ s: kotlin.String = ...): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
kotlin.jvm.jvmOverloads() private final fun foo(/*0*/ s: kotlin.String = ...): kotlin.Unit
kotlin.jvm.JvmOverloads() private final fun foo(/*0*/ s: kotlin.String = ...): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,9 +1,9 @@
import kotlin.jvm.jvmStatic
import kotlin.jvm.JvmStatic
class A {
<!WRONG_ANNOTATION_TARGET!>jvmStatic<!> constructor() {}
<!WRONG_ANNOTATION_TARGET!>JvmStatic<!> constructor() {}
inner class B {
<!WRONG_ANNOTATION_TARGET!>jvmStatic<!> constructor() {}
<!WRONG_ANNOTATION_TARGET!>JvmStatic<!> constructor() {}
}
}
class C <!WRONG_ANNOTATION_TARGET!>jvmStatic<!> constructor()
class C <!WRONG_ANNOTATION_TARGET!>JvmStatic<!> constructor()
@@ -1,13 +1,13 @@
package
internal final class A {
kotlin.jvm.jvmStatic() public constructor A()
kotlin.jvm.JvmStatic() public constructor A()
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 inner class B {
kotlin.jvm.jvmStatic() public constructor B()
kotlin.jvm.JvmStatic() public constructor B()
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
@@ -15,7 +15,7 @@ internal final class A {
}
internal final class C {
kotlin.jvm.jvmStatic() public constructor C()
kotlin.jvm.JvmStatic() 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
@@ -1,5 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
import kotlin.jvm.jvmStatic
import kotlin.jvm.JvmStatic
abstract class A {
@@ -12,24 +12,24 @@ abstract class A {
object B: A() {
<!OVERRIDE_CANNOT_BE_STATIC!>@jvmStatic override fun a()<!> {}
<!OVERRIDE_CANNOT_BE_STATIC!>@JvmStatic override fun a()<!> {}
<!OVERRIDE_CANNOT_BE_STATIC!>@jvmStatic override fun b()<!> {}
<!OVERRIDE_CANNOT_BE_STATIC!>@JvmStatic override fun b()<!> {}
<!OVERRIDE_CANNOT_BE_STATIC!>@jvmStatic final override fun c()<!> {}
<!OVERRIDE_CANNOT_BE_STATIC!>@JvmStatic final override fun c()<!> {}
@jvmStatic open fun d() {}
@JvmStatic open fun d() {}
}
class C {
companion object: A() {
@jvmStatic override fun a() {}
@JvmStatic override fun a() {}
@jvmStatic override fun b() {}
@JvmStatic override fun b() {}
@jvmStatic final override fun c() {}
@JvmStatic final override fun c() {}
@jvmStatic open fun d() {}
@JvmStatic open fun d() {}
}
}
@@ -12,10 +12,10 @@ internal abstract class A {
internal object B : A {
private constructor B()
kotlin.jvm.jvmStatic() internal open override /*1*/ fun a(): kotlin.Unit
kotlin.jvm.jvmStatic() internal open override /*1*/ fun b(): kotlin.Unit
kotlin.jvm.jvmStatic() internal final override /*1*/ fun c(): kotlin.Unit
kotlin.jvm.jvmStatic() internal open fun d(): kotlin.Unit
kotlin.jvm.JvmStatic() internal open override /*1*/ fun a(): kotlin.Unit
kotlin.jvm.JvmStatic() internal open override /*1*/ fun b(): kotlin.Unit
kotlin.jvm.JvmStatic() internal final override /*1*/ fun c(): kotlin.Unit
kotlin.jvm.JvmStatic() internal open fun d(): kotlin.Unit
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
@@ -29,10 +29,10 @@ internal final class C {
public companion object Companion : A {
private constructor Companion()
kotlin.jvm.jvmStatic() internal open override /*1*/ fun a(): kotlin.Unit
kotlin.jvm.jvmStatic() internal open override /*1*/ fun b(): kotlin.Unit
kotlin.jvm.jvmStatic() internal final override /*1*/ fun c(): kotlin.Unit
kotlin.jvm.jvmStatic() internal open fun d(): kotlin.Unit
kotlin.jvm.JvmStatic() internal open override /*1*/ fun a(): kotlin.Unit
kotlin.jvm.JvmStatic() internal open override /*1*/ fun b(): kotlin.Unit
kotlin.jvm.JvmStatic() internal final override /*1*/ fun c(): kotlin.Unit
kotlin.jvm.JvmStatic() internal open fun d(): kotlin.Unit
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,54 +1,54 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
import kotlin.jvm.jvmStatic
import kotlin.jvm.JvmStatic
class A {
companion object {
jvmStatic fun a1() {
JvmStatic fun a1() {
}
}
object A {
jvmStatic fun a2() {
JvmStatic fun a2() {
}
}
fun test() {
val s = object {
<!JVM_STATIC_NOT_IN_OBJECT!>jvmStatic fun a3()<!> {
<!JVM_STATIC_NOT_IN_OBJECT!>JvmStatic fun a3()<!> {
}
}
}
<!JVM_STATIC_NOT_IN_OBJECT!>jvmStatic fun a4()<!> {
<!JVM_STATIC_NOT_IN_OBJECT!>JvmStatic fun a4()<!> {
}
}
interface B {
companion object {
<!JVM_STATIC_NOT_IN_OBJECT!>jvmStatic fun a1()<!> {
<!JVM_STATIC_NOT_IN_OBJECT!>JvmStatic fun a1()<!> {
}
}
object A {
jvmStatic fun a2() {
JvmStatic fun a2() {
}
}
fun test() {
val s = object {
<!JVM_STATIC_NOT_IN_OBJECT!>jvmStatic fun a3()<!> {
<!JVM_STATIC_NOT_IN_OBJECT!>JvmStatic fun a3()<!> {
}
}
}
<!JVM_STATIC_NOT_IN_OBJECT!>jvmStatic fun a4()<!> {
<!JVM_STATIC_NOT_IN_OBJECT!>JvmStatic fun a4()<!> {
}
}
@@ -2,7 +2,7 @@ package
internal final class A {
public constructor A()
kotlin.jvm.jvmStatic() internal final fun a4(): kotlin.Unit
kotlin.jvm.JvmStatic() internal final fun a4(): kotlin.Unit
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 test(): kotlin.Unit
@@ -10,7 +10,7 @@ internal final class A {
internal object A {
private constructor A()
kotlin.jvm.jvmStatic() internal final fun a2(): kotlin.Unit
kotlin.jvm.JvmStatic() internal final fun a2(): kotlin.Unit
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
@@ -18,7 +18,7 @@ internal final class A {
public companion object Companion {
private constructor Companion()
kotlin.jvm.jvmStatic() internal final fun a1(): kotlin.Unit
kotlin.jvm.JvmStatic() internal final fun a1(): kotlin.Unit
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
@@ -26,7 +26,7 @@ internal final class A {
}
internal interface B {
kotlin.jvm.jvmStatic() internal open fun a4(): kotlin.Unit
kotlin.jvm.JvmStatic() internal open fun a4(): kotlin.Unit
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 open fun test(): kotlin.Unit
@@ -34,7 +34,7 @@ internal interface B {
internal object A {
private constructor A()
kotlin.jvm.jvmStatic() internal final fun a2(): kotlin.Unit
kotlin.jvm.JvmStatic() internal final fun a2(): kotlin.Unit
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
@@ -42,7 +42,7 @@ internal interface B {
public companion object Companion {
private constructor Companion()
kotlin.jvm.jvmStatic() internal final fun a1(): kotlin.Unit
kotlin.jvm.JvmStatic() internal final fun a1(): kotlin.Unit
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,8 +1,8 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
import kotlin.jvm.jvmStatic
import kotlin.jvm.JvmStatic
fun main(args: Array<String>) {
<!JVM_STATIC_NOT_IN_OBJECT!>@jvmStatic fun a()<!>{
<!JVM_STATIC_NOT_IN_OBJECT!>@JvmStatic fun a()<!>{
}
}
@@ -1,5 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
import kotlin.jvm.jvmStatic
import kotlin.jvm.JvmStatic
open class B {
public open val base1 : Int = 1
@@ -9,38 +9,38 @@ open class B {
class A {
companion object : B() {
var p1:Int = 1
@jvmStatic set(p: Int) {
@JvmStatic set(p: Int) {
p1 = 1
}
@jvmStatic val z = 1;
@JvmStatic val z = 1;
@jvmStatic override val base1: Int = 0
@JvmStatic override val base1: Int = 0
override val base2: Int = 0
@jvmStatic get
@JvmStatic get
}
object A : B() {
var p:Int = 1
@jvmStatic set(p1: Int) {
@JvmStatic set(p1: Int) {
p = 1
}
@jvmStatic val z = 1;
@JvmStatic val z = 1;
<!OVERRIDE_CANNOT_BE_STATIC!>@jvmStatic override val base1: Int<!> = 0
<!OVERRIDE_CANNOT_BE_STATIC!>@JvmStatic override val base1: Int<!> = 0
jvmStatic open fun f() {}
JvmStatic open fun f() {}
override val base2: Int = 0
<!OVERRIDE_CANNOT_BE_STATIC!>@jvmStatic get<!>
<!OVERRIDE_CANNOT_BE_STATIC!>@JvmStatic get<!>
}
var p:Int = 1
<!JVM_STATIC_NOT_IN_OBJECT!>@jvmStatic set(p1: Int)<!> {
<!JVM_STATIC_NOT_IN_OBJECT!>@JvmStatic set(p1: Int)<!> {
p = 1
}
<!JVM_STATIC_NOT_IN_OBJECT!>@jvmStatic val z2<!> = 1;
<!JVM_STATIC_NOT_IN_OBJECT!>@JvmStatic val z2<!> = 1;
}
@@ -3,29 +3,29 @@ package
internal final class A {
public constructor A()
internal final var p: kotlin.Int
kotlin.jvm.jvmStatic() internal final val z2: kotlin.Int = 1
kotlin.jvm.JvmStatic() internal final val z2: 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
internal object A : B {
private constructor A()
kotlin.jvm.jvmStatic() public open override /*1*/ val base1: kotlin.Int = 0
kotlin.jvm.JvmStatic() public open override /*1*/ val base1: kotlin.Int = 0
public open override /*1*/ val base2: kotlin.Int = 0
internal final var p: kotlin.Int
kotlin.jvm.jvmStatic() internal final val z: kotlin.Int = 1
kotlin.jvm.JvmStatic() internal final val z: kotlin.Int = 1
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
kotlin.jvm.jvmStatic() internal open fun f(): kotlin.Unit
kotlin.jvm.JvmStatic() internal open fun f(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public companion object Companion : B {
private constructor Companion()
kotlin.jvm.jvmStatic() public open override /*1*/ val base1: kotlin.Int = 0
kotlin.jvm.JvmStatic() public open override /*1*/ val base1: kotlin.Int = 0
public open override /*1*/ val base2: kotlin.Int = 0
internal final var p1: kotlin.Int
kotlin.jvm.jvmStatic() internal final val z: kotlin.Int = 1
kotlin.jvm.JvmStatic() internal final val z: 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
@@ -1,6 +1,6 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class A {
<!CONFLICTING_JVM_DECLARATIONS!>@kotlin.jvm.jvmOverloads fun foo(s: String = "")<!> {
<!CONFLICTING_JVM_DECLARATIONS!>@kotlin.jvm.JvmOverloads fun foo(s: String = "")<!> {
}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo()<!> {
@@ -4,7 +4,7 @@ internal final class A {
public constructor A()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
internal final fun foo(): kotlin.Unit
kotlin.jvm.jvmOverloads() internal final fun foo(/*0*/ s: kotlin.String = ...): kotlin.Unit
kotlin.jvm.JvmOverloads() internal final fun foo(/*0*/ s: kotlin.String = ...): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,20 +1,20 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
@jvmName("bar")
@JvmName("bar")
fun foo(a: Any) {}
fun Any.foo() {}
@jvmName("barInt")
@JvmName("barInt")
fun bar(x: List<Int>) {}
@jvmName("barStr")
@JvmName("barStr")
fun bar(x: List<String>) {}
class C {
var rwProp: Int
@jvmName("get_rwProp")
@JvmName("get_rwProp")
get() = 0
@jvmName("set_rwProp")
@JvmName("set_rwProp")
set(v) {}
fun getRwProp(): Int = 123
@@ -1,8 +1,8 @@
package
kotlin.jvm.jvmName(name = "barInt") internal fun bar(/*0*/ x: kotlin.List<kotlin.Int>): kotlin.Unit
kotlin.jvm.jvmName(name = "barStr") internal fun bar(/*0*/ x: kotlin.List<kotlin.String>): kotlin.Unit
kotlin.jvm.jvmName(name = "bar") internal fun foo(/*0*/ a: kotlin.Any): kotlin.Unit
kotlin.jvm.JvmName(name = "barInt") internal fun bar(/*0*/ x: kotlin.List<kotlin.Int>): kotlin.Unit
kotlin.jvm.JvmName(name = "barStr") internal fun bar(/*0*/ x: kotlin.List<kotlin.String>): kotlin.Unit
kotlin.jvm.JvmName(name = "bar") internal fun foo(/*0*/ a: kotlin.Any): kotlin.Unit
internal fun kotlin.Any.foo(): kotlin.Unit
internal final class C {
@@ -1,14 +1,14 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
<!CONFLICTING_JVM_DECLARATIONS!>@jvmName("bar")
<!CONFLICTING_JVM_DECLARATIONS!>@JvmName("bar")
fun foo(a: Any)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun bar(a: Any)<!> {}
class C {
<!CONFLICTING_JVM_DECLARATIONS!>@jvmName("foo1")
<!CONFLICTING_JVM_DECLARATIONS!>@JvmName("foo1")
fun foo(list: List<Int>)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>@jvmName("foo1")
<!CONFLICTING_JVM_DECLARATIONS!>@JvmName("foo1")
fun foo(list: List<String>)<!> {}
}
@@ -17,7 +17,7 @@ class C {
// A1 -> B1 with accidental override
open class A1 {
<!INAPPLICABLE_JVM_NAME!>@jvmName("bar")<!>
<!INAPPLICABLE_JVM_NAME!>@JvmName("bar")<!>
open fun foo() {}
}
@@ -28,7 +28,7 @@ class B1 : A1() {
// A2 -> B2 with intended override and conflicting JVM declarations
open class A2 {
<!INAPPLICABLE_JVM_NAME!>@jvmName("bar")<!>
<!INAPPLICABLE_JVM_NAME!>@JvmName("bar")<!>
open fun foo() {}
}
@@ -41,7 +41,7 @@ class <!CONFLICTING_JVM_DECLARATIONS!>B2<!> : A2() {
// A3 -> B3 -> C3 with accidental override
open class A3 {
<!INAPPLICABLE_JVM_NAME!>@jvmName("bar")<!>
<!INAPPLICABLE_JVM_NAME!>@JvmName("bar")<!>
open fun foo() {}
}
@@ -1,12 +1,12 @@
package
internal fun bar(/*0*/ a: kotlin.Any): kotlin.Unit
kotlin.jvm.jvmName(name = "bar") internal fun foo(/*0*/ a: kotlin.Any): kotlin.Unit
kotlin.jvm.JvmName(name = "bar") internal fun foo(/*0*/ a: kotlin.Any): kotlin.Unit
internal open class A1 {
public constructor A1()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
kotlin.jvm.jvmName(name = "bar") internal open fun foo(): kotlin.Unit
kotlin.jvm.JvmName(name = "bar") internal open fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -14,7 +14,7 @@ internal open class A1 {
internal open class A2 {
public constructor A2()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
kotlin.jvm.jvmName(name = "bar") internal open fun foo(): kotlin.Unit
kotlin.jvm.JvmName(name = "bar") internal open fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -22,7 +22,7 @@ internal open class A2 {
internal open class A3 {
public constructor A3()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
kotlin.jvm.jvmName(name = "bar") internal open fun foo(): kotlin.Unit
kotlin.jvm.JvmName(name = "bar") internal open fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -31,7 +31,7 @@ internal final class B1 : A1 {
public constructor B1()
internal final fun bar(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
kotlin.jvm.jvmName(name = "bar") internal open override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit
kotlin.jvm.JvmName(name = "bar") internal open override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -48,7 +48,7 @@ internal final class B2 : A2 {
internal open class B3 : A3 {
public constructor B3()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
kotlin.jvm.jvmName(name = "bar") internal open override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit
kotlin.jvm.JvmName(name = "bar") internal open override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -56,8 +56,8 @@ internal open class B3 : A3 {
internal final class C {
public constructor C()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
kotlin.jvm.jvmName(name = "foo1") internal final fun foo(/*0*/ list: kotlin.List<kotlin.Int>): kotlin.Unit
kotlin.jvm.jvmName(name = "foo1") internal final fun foo(/*0*/ list: kotlin.List<kotlin.String>): kotlin.Unit
kotlin.jvm.JvmName(name = "foo1") internal final fun foo(/*0*/ list: kotlin.List<kotlin.Int>): kotlin.Unit
kotlin.jvm.JvmName(name = "foo1") internal final fun foo(/*0*/ list: kotlin.List<kotlin.String>): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -66,7 +66,7 @@ internal final class C3 : B3 {
public constructor C3()
internal final fun bar(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
kotlin.jvm.jvmName(name = "bar") internal open override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit
kotlin.jvm.JvmName(name = "bar") internal open override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,4 +1,4 @@
import kotlin.jvm.jvmStatic
import kotlin.jvm.JvmStatic
open class Base {
fun foo() {}
@@ -6,6 +6,6 @@ open class Base {
class Derived : Base() {
companion object {
<!ACCIDENTAL_OVERRIDE!>jvmStatic fun foo()<!> {}
<!ACCIDENTAL_OVERRIDE!>JvmStatic fun foo()<!> {}
}
}
@@ -18,7 +18,7 @@ internal final class Derived : Base {
public companion object Companion {
private constructor Companion()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
kotlin.jvm.jvmStatic() internal final fun foo(): kotlin.Unit
kotlin.jvm.JvmStatic() internal final fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,10 +1,10 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.jvm.jvmStatic
import kotlin.jvm.JvmStatic
open class Base {
fun `foo$default`(i: Int, mask: Int) {}
}
object Derived : Base() {
<!ACCIDENTAL_OVERRIDE!>jvmStatic fun foo(i: Int = 0)<!> {}
<!ACCIDENTAL_OVERRIDE!>JvmStatic fun foo(i: Int = 0)<!> {}
}
@@ -11,7 +11,7 @@ internal open class Base {
internal object Derived : Base {
private constructor Derived()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
kotlin.jvm.jvmStatic() internal final fun foo(/*0*/ i: kotlin.Int = ...): kotlin.Unit
kotlin.jvm.JvmStatic() internal final fun foo(/*0*/ i: kotlin.Int = ...): kotlin.Unit
internal final override /*1*/ /*fake_override*/ fun `foo$default`(/*0*/ i: kotlin.Int, /*1*/ mask: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
@@ -51,7 +51,7 @@ import static org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilPackage.
public class DescriptorUtils {
public static final Name ENUM_VALUES = Name.identifier("values");
public static final Name ENUM_VALUE_OF = Name.identifier("valueOf");
public static final FqName JVM_NAME = new FqName("kotlin.jvm.jvmName");
public static final FqName JVM_NAME = new FqName("kotlin.jvm.JvmName");
public static final FqName PLATFORM_NAME = new FqName("kotlin.platform.platformName");
private DescriptorUtils() {
@@ -58,7 +58,7 @@ public class JavaToKotlinPreconversionPullUpHelper(
private val fieldsToUsages = HashMap<PsiField, List<EncapsulateFieldUsageInfo>>()
private val dummyAccessorByName = HashMap<String, PsiMethod>()
private val jvmStaticAnnotation = JetPsiFactory(data.sourceClass.project).createAnnotationEntry("kotlin.jvm.jvmStatic")
private val jvmStaticAnnotation = JetPsiFactory(data.sourceClass.project).createAnnotationEntry("kotlin.jvm.JvmStatic")
companion object {
private var PsiMember.originalMember: PsiMember? by CopyableUserDataProperty(Key.create("ORIGINAL_MEMBER"))
+13 -13
View File
@@ -1,57 +1,57 @@
import kotlin.jvm.jvmStatic
import kotlin.jvm.JvmStatic
<error descr="[WRONG_ANNOTATION_TARGET] This annotation is not applicable to target 'class'">jvmStatic</error>
<error descr="[WRONG_ANNOTATION_TARGET] This annotation is not applicable to target 'class'">JvmStatic</error>
class A {
<error descr="[WRONG_ANNOTATION_TARGET] This annotation is not applicable to target 'object'">jvmStatic</error>
<error descr="[WRONG_ANNOTATION_TARGET] This annotation is not applicable to target 'object'">JvmStatic</error>
companion object {
jvmStatic fun a1() {
JvmStatic fun a1() {
}
}
<error descr="[WRONG_ANNOTATION_TARGET] This annotation is not applicable to target 'object'">jvmStatic</error>
<error descr="[WRONG_ANNOTATION_TARGET] This annotation is not applicable to target 'object'">JvmStatic</error>
object A {
jvmStatic fun a2() {
JvmStatic fun a2() {
}
}
fun test() {
val <warning descr="[UNUSED_VARIABLE] Variable 's' is never used">s</warning> = object {
<error descr="[JVM_STATIC_NOT_IN_OBJECT] Only functions in named objects and companion objects of classes can be annotated with 'jvmStatic'">jvmStatic fun a3()</error> {
<error descr="[JVM_STATIC_NOT_IN_OBJECT] Only functions in named objects and companion objects of classes can be annotated with 'JvmStatic'">JvmStatic fun a3()</error> {
}
}
}
<error descr="[JVM_STATIC_NOT_IN_OBJECT] Only functions in named objects and companion objects of classes can be annotated with 'jvmStatic'">jvmStatic fun a4()</error> {
<error descr="[JVM_STATIC_NOT_IN_OBJECT] Only functions in named objects and companion objects of classes can be annotated with 'JvmStatic'">JvmStatic fun a4()</error> {
}
}
<error descr="[WRONG_ANNOTATION_TARGET] This annotation is not applicable to target 'interface'">jvmStatic</error>
<error descr="[WRONG_ANNOTATION_TARGET] This annotation is not applicable to target 'interface'">JvmStatic</error>
interface B {
companion object {
<error descr="[JVM_STATIC_NOT_IN_OBJECT] Only functions in named objects and companion objects of classes can be annotated with 'jvmStatic'">jvmStatic fun a1()</error> {
<error descr="[JVM_STATIC_NOT_IN_OBJECT] Only functions in named objects and companion objects of classes can be annotated with 'JvmStatic'">JvmStatic fun a1()</error> {
}
}
object A {
jvmStatic fun a2() {
JvmStatic fun a2() {
}
}
fun test() {
val <warning descr="[UNUSED_VARIABLE] Variable 's' is never used">s</warning> = object {
<error descr="[JVM_STATIC_NOT_IN_OBJECT] Only functions in named objects and companion objects of classes can be annotated with 'jvmStatic'">jvmStatic fun a3()</error> {
<error descr="[JVM_STATIC_NOT_IN_OBJECT] Only functions in named objects and companion objects of classes can be annotated with 'JvmStatic'">JvmStatic fun a3()</error> {
}
}
}
<error descr="[JVM_STATIC_NOT_IN_OBJECT] Only functions in named objects and companion objects of classes can be annotated with 'jvmStatic'">jvmStatic fun a4()</error> {
<error descr="[JVM_STATIC_NOT_IN_OBJECT] Only functions in named objects and companion objects of classes can be annotated with 'JvmStatic'">JvmStatic fun a4()</error> {
}
}
@@ -5,7 +5,7 @@ class C {
}
companion object {
jvmStatic public fun main(args: Array<String>) {
JvmStatic public fun main(args: Array<String>) {
}
}
}
@@ -1,7 +1,7 @@
package to
public object JavaClass {
jvmStatic public fun main(args: Array<String>) {
JvmStatic public fun main(args: Array<String>) {
println("Hello, world!")
}
}
@@ -21,7 +21,7 @@ abstract class A {
var X = "1" + "2"
// INFO: {"checked": "true"}
jvmStatic fun foo2(n: Int): String {
JvmStatic fun foo2(n: Int): String {
return "_" + n + "_"
}
}
@@ -19,7 +19,7 @@ abstract class A {
var X = "1" + "2"
// INFO: {"checked": "true", "toAbstract": "true"}
jvmStatic fun foo2(n: Int): String {
JvmStatic fun foo2(n: Int): String {
return "_" + n + "_"
}
}
@@ -15,7 +15,7 @@ interface A {
var X = "1" + "2"
// INFO: {"checked": "true"}
jvmStatic fun foo2(n: Int): String {
JvmStatic fun foo2(n: Int): String {
return "_" + n + "_"
}
}
@@ -23,7 +23,7 @@ class T {
var X = "1" + "2"
// INFO: {"checked": "true"}
jvmStatic fun foo2(n: Int): String {
JvmStatic fun foo2(n: Int): String {
return "_" + n + "_"
}
}
@@ -2,6 +2,6 @@ package testing.rename
public open class C {
companion object {
jvmStatic fun second() {}
JvmStatic fun second() {}
}
}
@@ -2,6 +2,6 @@ package testing.rename
public open class C {
companion object {
jvmStatic fun first() {}
JvmStatic fun first() {}
}
}
@@ -423,7 +423,7 @@ class Converter private constructor(
if (function == null) return null
if (PsiMethodUtil.isMainMethod(method)) {
val fqName = FqName("kotlin.jvm.jvmStatic")
val fqName = FqName("kotlin.jvm.JvmStatic")
val identifier = Identifier(fqName.shortName().identifier, imports = listOf(fqName)).assignNoPrototype()
function.annotations += Annotations(
@@ -435,7 +435,7 @@ class Converter private constructor(
if (function.parameterList.parameters.any { it is FunctionParameter && it.defaultValue != null } && !function.modifiers.isPrivate) {
function.annotations += Annotations(
listOf(Annotation(Identifier("jvmOverloads").assignNoPrototype(),
listOf(Annotation(Identifier("JvmOverloads").assignNoPrototype(),
listOf(),
withAt = false,
newLineAfter = false).assignNoPrototype())).assignNoPrototype()
@@ -1,5 +1,5 @@
public object A {
jvmStatic public fun main(args: Array<String>) {
JvmStatic public fun main(args: Array<String>) {
println(Void.TYPE)
println(Integer.TYPE)
println(java.lang.Double.TYPE)
@@ -1,5 +1,5 @@
class A// this is a primary constructor
jvmOverloads constructor(p: Int = 1) {
JvmOverloads constructor(p: Int = 1) {
private val v: Int
init {
+1 -1
View File
@@ -1,6 +1,6 @@
package pack
class C jvmOverloads constructor(arg1: Int, arg2: Int = 0, arg3: Int = 0)
class C JvmOverloads constructor(arg1: Int, arg2: Int = 0, arg3: Int = 0)
public object User {
public fun main() {
@@ -1 +1 @@
class C jvmOverloads constructor(private val string: String, a: Int = string.length())
class C JvmOverloads constructor(private val string: String, a: Int = string.length())
@@ -1,4 +1,4 @@
class A jvmOverloads constructor(nested: A.Nested = A.Nested(A.Nested.FIELD)) {
class A JvmOverloads constructor(nested: A.Nested = A.Nested(A.Nested.FIELD)) {
class Nested(p: Int) {
companion object {
@@ -1,7 +1,7 @@
// ERROR: Property must be initialized or be abstract
import A.Nested
class A jvmOverloads constructor(nested: Nested = Nested(Nested.FIELD)) {
class A JvmOverloads constructor(nested: Nested = Nested(Nested.FIELD)) {
class Nested(p: Int) {
companion object {
@@ -3,7 +3,7 @@ package pack
import pack.A.Nested
class A jvmOverloads constructor(nested: Nested = Nested(Nested.FIELD)) {
class A JvmOverloads constructor(nested: Nested = Nested(Nested.FIELD)) {
class Nested(p: Int) {
companion object {
@@ -3,7 +3,7 @@ package pack
import pack.A.*
class A jvmOverloads constructor(nested: Nested = Nested(Nested.FIELD)) {
class A JvmOverloads constructor(nested: Nested = Nested(Nested.FIELD)) {
class Nested(p: Int) {
companion object {
@@ -1,6 +1,6 @@
package pack
class C jvmOverloads constructor(a: Int = 0, b: Int = 0, c: Int = 0, d: Int = 0, e: Int = 0) {
class C JvmOverloads constructor(a: Int = 0, b: Int = 0, c: Int = 0, d: Int = 0, e: Int = 0) {
constructor(a: Int) : this(a, 0, 0, 0, 1) {
}
@@ -1,6 +1,6 @@
package pack
class C jvmOverloads constructor(a: Int = 0, b: Int = 0, c: Int = 0, d: Int = 0, e: Int = 0) {
class C JvmOverloads constructor(a: Int = 0, b: Int = 0, c: Int = 0, d: Int = 0, e: Int = 0) {
constructor(a1: Int, b1: Int, c1: Int) : this(a1, b1, c1, 0, 0) {
}
@@ -1,6 +1,6 @@
package pack
class C jvmOverloads constructor(a: Int = 0, b: Int = 0, c: Int = 0, d: Int = 0, e: Int = 0) {
class C JvmOverloads constructor(a: Int = 0, b: Int = 0, c: Int = 0, d: Int = 0, e: Int = 0) {
constructor(a: Int, b: Int, c: Int) : this(b, a, c, 0, 0) {
}
@@ -1,3 +1,3 @@
package pack
class C jvmOverloads constructor(a: Int = 1, b: Int = 2, c: Int = 3, d: Int = 4, e: Int = 5)
class C JvmOverloads constructor(a: Int = 1, b: Int = 2, c: Int = 3, d: Int = 4, e: Int = 5)
@@ -1,3 +1,3 @@
package pack
class C jvmOverloads constructor(a: Int = 1, b: Int = 2, c: Int = 3, d: Int = 4, e: Int = 5)
class C JvmOverloads constructor(a: Int = 1, b: Int = 2, c: Int = 3, d: Int = 4, e: Int = 5)
@@ -1,4 +1,4 @@
class C jvmOverloads constructor(arg1: Int, arg2: Int = 0, arg3: Int = 0) {
class C JvmOverloads constructor(arg1: Int, arg2: Int = 0, arg3: Int = 0) {
private val field: Int
init {
@@ -7,7 +7,7 @@ class A {
public constructor() {
}
jvmOverloads public constructor(p: Int, s: String, x: Int = 1) {
JvmOverloads public constructor(p: Int, s: String, x: Int = 1) {
this.s = s
this.x = x
}
@@ -4,7 +4,7 @@ class A() {
private val s = ""
private val x = 0
jvmOverloads public constructor(p: Int, s: String, x: Int = 1) : this() {
JvmOverloads public constructor(p: Int, s: String, x: Int = 1) : this() {
this.s = s
this.x = x
}
@@ -1 +1 @@
public class C jvmOverloads constructor(c: C, public val x: Int = c.x)
public class C JvmOverloads constructor(c: C, public val x: Int = c.x)
+1 -1
View File
@@ -1,5 +1,5 @@
public object TestClass {
jvmStatic public fun main(args: Array<String>) {
JvmStatic public fun main(args: Array<String>) {
var i = 0
while (i < 10) {
if (i == 4 || i == 8) {
+1 -1
View File
@@ -1,5 +1,5 @@
public object TestClass {
jvmStatic public fun main(args: Array<String>) {
JvmStatic public fun main(args: Array<String>) {
var i = 0
var j = 1
while (i < 10) {
+1 -1
View File
@@ -1,5 +1,5 @@
public object TestClass {
jvmStatic public fun main(args: Array<String>) {
JvmStatic public fun main(args: Array<String>) {
var i = 1
while (i < 1000) {
if (i == 4 || i == 8) {
+1 -1
View File
@@ -1,5 +1,5 @@
public object TestClass {
jvmStatic public fun main(args: Array<String>) {
JvmStatic public fun main(args: Array<String>) {
var i = 1
OuterLoop1@ OuterLoop2@ while (i < 1000) {
var j = 1
+1 -1
View File
@@ -1,2 +1,2 @@
jvmStatic public fun main(args: Array<String>) {
JvmStatic public fun main(args: Array<String>) {
}
+1 -1
View File
@@ -1,4 +1,4 @@
public object A {
jvmStatic public fun main(args: Array<String>) {
JvmStatic public fun main(args: Array<String>) {
}
}
@@ -1,5 +1,5 @@
// !forceNotNullTypes: false
public object A {
jvmStatic public fun main(args: Array<String>) {
JvmStatic public fun main(args: Array<String>) {
}
}
+1 -1
View File
@@ -21,7 +21,7 @@ public class Identifier<T> {
}
public object User {
jvmStatic public fun main(args: Array<String>) {
JvmStatic public fun main(args: Array<String>) {
val i1 = Identifier("name", false, true)
val i2 = Identifier("name", false)
val i3 = Identifier("name")
+1 -1
View File
@@ -5,7 +5,7 @@
import java.io.*
object FileRead {
jvmStatic public fun main(args: Array<String>) {
JvmStatic public fun main(args: Array<String>) {
try {
val fstream = FileInputStream()
val `in` = DataInputStream(fstream)
+1 -1
View File
@@ -1,7 +1,7 @@
package demo
object Program {
jvmStatic public fun main(args: Array<String>) {
JvmStatic public fun main(args: Array<String>) {
println("Halo!")
}
}
+1 -1
View File
@@ -1,7 +1,7 @@
// ERROR: Type mismatch: inferred type is kotlin.Any? but kotlin.Any was expected
// ERROR: Type mismatch: inferred type is kotlin.Any? but kotlin.Any was expected
class A {
jvmOverloads fun foo(s: String? = null): Any {
JvmOverloads fun foo(s: String? = null): Any {
println("s = " + s!!)
return ""
}
+2 -2
View File
@@ -1,9 +1,9 @@
class A {
jvmOverloads fun foo(i: Int, c: Char = 'a', s: String = "") {
JvmOverloads fun foo(i: Int, c: Char = 'a', s: String = "") {
println("foo$i$c$s")
}
jvmOverloads fun bar(s: String? = null): Int {
JvmOverloads fun bar(s: String? = null): Int {
println("s = " + s!!)
return 0
}
+1 -1
View File
@@ -76,7 +76,7 @@ public object SwitchDemo {
println(monthString)
}
jvmStatic public fun main(args: Array<String>) {
JvmStatic public fun main(args: Array<String>) {
for (i in 1..12)
test(i)
}

Some files were not shown because too many files have changed in this diff Show More