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.context.CodegenContext
import org.jetbrains.kotlin.codegen.state.GenerationState import org.jetbrains.kotlin.codegen.state.GenerationState
import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.JetClass import org.jetbrains.kotlin.psi.JetClass
import org.jetbrains.kotlin.psi.JetClassOrObject import org.jetbrains.kotlin.psi.JetClassOrObject
import org.jetbrains.kotlin.psi.JetElement import org.jetbrains.kotlin.psi.JetElement
import org.jetbrains.kotlin.resolve.descriptorUtil.hasDefaultValue import org.jetbrains.kotlin.resolve.descriptorUtil.hasDefaultValue
import org.jetbrains.kotlin.resolve.jvm.AsmTypes import org.jetbrains.kotlin.resolve.jvm.AsmTypes
import org.jetbrains.kotlin.resolve.jvm.diagnostics.OtherOrigin 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.Opcodes
import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter
@@ -75,7 +75,7 @@ public class DefaultParameterValueSubstitutor(val state: GenerationState) {
delegateFunctionDescriptor: FunctionDescriptor, delegateFunctionDescriptor: FunctionDescriptor,
owner: CodegenContext<*>, owner: CodegenContext<*>,
classBuilder: ClassBuilder): Boolean { classBuilder: ClassBuilder): Boolean {
if (functionDescriptor.getAnnotations().findAnnotation(FqName("kotlin.jvm.jvmOverloads")) == null) { if (!functionDescriptor.hasJvmOverloadsAnnotation()) {
return false 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 { static {
MAP.put(ErrorsJvm.CONFLICTING_JVM_DECLARATIONS, "Platform declaration clash: {0}", CONFLICTING_JVM_DECLARATIONS_DATA); 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.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.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.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_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_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.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.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.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_BE_ABSTRACT, "External declaration can not be abstract");
MAP.put(ErrorsJvm.EXTERNAL_DECLARATION_CANNOT_HAVE_BODY, "External declaration can not have a body"); 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.JavaAnnotationCallChecker
import org.jetbrains.kotlin.load.kotlin.JavaAnnotationMethodCallChecker import org.jetbrains.kotlin.load.kotlin.JavaAnnotationMethodCallChecker
import org.jetbrains.kotlin.load.kotlin.nativeDeclarations.NativeFunChecker import org.jetbrains.kotlin.load.kotlin.nativeDeclarations.NativeFunChecker
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.resolve.* 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.calls.smartcasts.Nullability
import org.jetbrains.kotlin.resolve.descriptorUtil.getAnnotationRetention import org.jetbrains.kotlin.resolve.descriptorUtil.getAnnotationRetention
import org.jetbrains.kotlin.resolve.descriptorUtil.isRepeatableAnnotation 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.JavaClassOnCompanionChecker
import org.jetbrains.kotlin.resolve.jvm.calls.checkers.NeedSyntheticChecker import org.jetbrains.kotlin.resolve.jvm.calls.checkers.NeedSyntheticChecker
import org.jetbrains.kotlin.resolve.jvm.calls.checkers.ReflectionAPICallChecker import org.jetbrains.kotlin.resolve.jvm.calls.checkers.ReflectionAPICallChecker
@@ -226,7 +226,7 @@ public class OverloadsAnnotationChecker: DeclarationChecker {
diagnosticHolder: DiagnosticSink, diagnosticHolder: DiagnosticSink,
bindingContext: BindingContext bindingContext: BindingContext
) { ) {
if (descriptor.getAnnotations().findAnnotation(FqName("kotlin.jvm.jvmOverloads")) != null) { if (descriptor.hasJvmOverloadsAnnotation()) {
checkDeclaration(declaration, descriptor, diagnosticHolder) checkDeclaration(declaration, descriptor, diagnosticHolder)
} }
} }
@@ -29,7 +29,7 @@ public fun DeclarationDescriptor.hasInlineAnnotation(): Boolean {
public fun DeclarationDescriptor.hasPlatformStaticAnnotation(): Boolean { public fun DeclarationDescriptor.hasPlatformStaticAnnotation(): Boolean {
return getAnnotations().findAnnotation(FqName("kotlin.platform.platformStatic")) != null || 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? { public fun DeclarationDescriptor.findPublicFieldAnnotation(): AnnotationDescriptor? {
@@ -1,13 +1,13 @@
public final class C { public final class C {
@kotlin.jvm.jvmOverloads @kotlin.jvm.JvmOverloads
@org.jetbrains.annotations.NotNull @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 */ } 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 @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 */ } 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 @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 */ } 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 // C
class 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 return o + k
} }
} }
@@ -1,5 +1,5 @@
class C<T> { 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 { fun box(): String {
@@ -1,5 +1,5 @@
class C { 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 { fun box(): String {
@@ -1,7 +1,7 @@
import kotlin.jvm.jvmName; import kotlin.jvm.JvmName;
public class FakePlatformName { public class FakePlatformName {
@jvmName(name = "fake") @JvmName(name = "fake")
public String foo() { public String foo() {
return "foo"; return "foo";
} }
@@ -1,4 +1,4 @@
import kotlin.jvm.jvmStatic import kotlin.jvm.JvmStatic
annotation(retention = AnnotationRetention.RUNTIME) class testAnnotation annotation(retention = AnnotationRetention.RUNTIME) class testAnnotation
@@ -7,14 +7,14 @@ class A {
companion object { companion object {
val b: String = "OK" val b: String = "OK"
jvmStatic testAnnotation fun test1() = b JvmStatic testAnnotation fun test1() = b
} }
} }
object B { object B {
val b: String = "OK" val b: String = "OK"
jvmStatic testAnnotation fun test1() = b JvmStatic testAnnotation fun test1() = b
} }
fun box(): String { fun box(): String {
@@ -1,17 +1,17 @@
import kotlin.jvm.jvmStatic import kotlin.jvm.JvmStatic
class A { class A {
companion object { companion object {
val b: String = "OK" 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 { enum class A {
; ;
companion object { companion object {
val foo: String = "OK" 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 { object A {
val b: String = "OK" 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 { fun box(): String {
@@ -1,6 +1,6 @@
class C { class C {
companion object { 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 return o + k
} }
} }
@@ -1,5 +1,5 @@
class C { 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 return o + k
} }
} }
@@ -1,5 +1,5 @@
class C { 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" return if (d1 + d2 == 3.0) status else "fail"
} }
} }
@@ -1,7 +1,7 @@
class C { 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 return o + k
} }
@@ -1,5 +1,5 @@
class C { 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 return o + k
} }
} }
@@ -1,5 +1,5 @@
class C { 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 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 public val status: String = s1 + s2
} }
@@ -1,7 +1,7 @@
class C(val i: Int) { class C(val i: Int) {
var status = "fail" 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 status = o + k
} }
} }
@@ -1,5 +1,5 @@
class C { class C {
@kotlin.jvm.jvmOverloads public fun foo(s: String = "OK"): String { @kotlin.jvm.JvmOverloads public fun foo(s: String = "OK"): String {
return s return s
} }
} }
@@ -1,4 +1,4 @@
@jvmName("Fail") @JvmName("Fail")
fun OK() {} fun OK() {}
fun box() = ::OK.name fun box() = ::OK.name
@@ -21,7 +21,7 @@ fun box(): String {
val staticMethod = javaClass<C>().getDeclaredMethod("foo", javaClass<String>()) val staticMethod = javaClass<C>().getDeclaredMethod("foo", javaClass<String>())
val k2 = staticMethod.kotlinFunction ?: 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")) assertEquals(3, k2.call(C, "ghi"))
failsWith(javaClass<NullPointerException>()) { k2.call(null, "")!! } failsWith(javaClass<NullPointerException>()) { k2.call(null, "")!! }
@@ -1,4 +1,4 @@
package test package test
@jvmName("bar") @JvmName("bar")
fun foo() {} fun foo() {}
@@ -1,6 +1,6 @@
package test 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 open class PlatformName {
public constructor PlatformName() public constructor PlatformName()
@@ -2,7 +2,7 @@ package test
class E1: Exception() class E1: Exception()
Throws(E1::class) jvmOverloads Throws(E1::class) JvmOverloads
fun one(a: Int = 1) {} fun one(a: Int = 1) {}
class One @Throws(E1::class) constructor(a: Int = 1) { class One @Throws(E1::class) constructor(a: Int = 1) {
@@ -1,6 +1,6 @@
package test 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 { internal final class E1 : java.lang.Exception {
public constructor E1() public constructor E1()
@@ -1,12 +1,12 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
<!ILLEGAL_JVM_NAME!>@jvmName("")<!> <!ILLEGAL_JVM_NAME!>@JvmName("")<!>
fun foo(a: Any) {} fun foo(a: Any) {}
<!ILLEGAL_JVM_NAME!>@jvmName(".")<!> <!ILLEGAL_JVM_NAME!>@JvmName(".")<!>
fun foo() {} fun foo() {}
<!ILLEGAL_JVM_NAME!>@jvmName("/")<!> <!ILLEGAL_JVM_NAME!>@JvmName("/")<!>
fun fooSlash() {} fun fooSlash() {}
<!ILLEGAL_JVM_NAME!>@jvmName("<")<!> <!ILLEGAL_JVM_NAME!>@JvmName("<")<!>
fun fooLT() {} fun fooLT() {}
@@ -1,6 +1,6 @@
package package
kotlin.jvm.jvmName(name = ".") internal fun foo(): 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 foo(/*0*/ a: kotlin.Any): kotlin.Unit
kotlin.jvm.jvmName(name = "<") internal fun fooLT(): 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 fooSlash(): kotlin.Unit
@@ -1,89 +1,89 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
@jvmName("a") @JvmName("a")
fun foo() {} fun foo() {}
@jvmName("b") @JvmName("b")
fun Any.foo() {} fun Any.foo() {}
@jvmName("c") @JvmName("c")
val px = 1 val px = 1
@jvmName("d") @JvmName("d")
val Any.px : Int val Any.px : Int
get() = 1 get() = 1
val valx: Int val valx: Int
@jvmName("e") @JvmName("e")
get() = 1 get() = 1
var varx: Int var varx: Int
@jvmName("f") @JvmName("f")
get() = 1 get() = 1
@jvmName("g") @JvmName("g")
set(v) {} set(v) {}
var vardef: Int = 1 var vardef: Int = 1
@jvmName("h") @JvmName("h")
get get
@jvmName("i") @JvmName("i")
set set
<!WRONG_ANNOTATION_TARGET!>@jvmName("C")<!> <!WRONG_ANNOTATION_TARGET!>@JvmName("C")<!>
class C <!WRONG_ANNOTATION_TARGET!>jvmName("primary")<!> constructor() { class C <!WRONG_ANNOTATION_TARGET!>JvmName("primary")<!> constructor() {
<!WRONG_ANNOTATION_TARGET!>jvmName("ctr")<!> constructor(x: Int): this() {} <!WRONG_ANNOTATION_TARGET!>JvmName("ctr")<!> constructor(x: Int): this() {}
@jvmName("a") @JvmName("a")
fun foo() {} fun foo() {}
@jvmName("b") @JvmName("b")
fun Any.foo() {} fun Any.foo() {}
@jvmName("c") @JvmName("c")
val px = 1 val px = 1
@jvmName("d") @JvmName("d")
val Any.px : Int val Any.px : Int
get() = 1 get() = 1
val valx: Int val valx: Int
@jvmName("e") @JvmName("e")
get() = 1 get() = 1
var varx: Int var varx: Int
@jvmName("f") @JvmName("f")
get() = 1 get() = 1
@jvmName("g") @JvmName("g")
set(v) {} set(v) {}
} }
fun foo1() { fun foo1() {
<!INAPPLICABLE_JVM_NAME!>@jvmName("a")<!> <!INAPPLICABLE_JVM_NAME!>@JvmName("a")<!>
fun foo() {} fun foo() {}
<!WRONG_ANNOTATION_TARGET!>@jvmName("a")<!> <!WRONG_ANNOTATION_TARGET!>@JvmName("a")<!>
val x = 1 val x = 1
} }
abstract class AB { abstract class AB {
<!INAPPLICABLE_JVM_NAME!>@jvmName("AB_absFun1")<!> <!INAPPLICABLE_JVM_NAME!>@JvmName("AB_absFun1")<!>
abstract fun absFun1() abstract fun absFun1()
abstract fun absFun2() abstract fun absFun2()
<!INAPPLICABLE_JVM_NAME!>@jvmName("AB_openFun")<!> <!INAPPLICABLE_JVM_NAME!>@JvmName("AB_openFun")<!>
open fun openFun() {} open fun openFun() {}
} }
class D: AB() { class D: AB() {
override fun absFun1() {} override fun absFun1() {}
<!INAPPLICABLE_JVM_NAME!>@jvmName("D_absFun2")<!> <!INAPPLICABLE_JVM_NAME!>@JvmName("D_absFun2")<!>
override fun absFun2() {} override fun absFun2() {}
<!INAPPLICABLE_JVM_NAME!>@jvmName("D_openFun")<!> <!INAPPLICABLE_JVM_NAME!>@JvmName("D_openFun")<!>
final override fun openFun() {} final override fun openFun() {}
@jvmName("D_finalFun") @JvmName("D_finalFun")
fun finalFun() {} fun finalFun() {}
} }
@@ -5,41 +5,41 @@ internal val valx: kotlin.Int
internal var vardef: kotlin.Int internal var vardef: kotlin.Int
internal var varx: kotlin.Int internal var varx: kotlin.Int
internal val kotlin.Any.px: 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 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 { internal abstract class AB {
public constructor 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 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 equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int 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 public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
kotlin.jvm.jvmName(name = "C") internal final class C { kotlin.jvm.JvmName(name = "C") internal final class C {
kotlin.jvm.jvmName(name = "primary") public constructor 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 = "ctr") public constructor C(/*0*/ x: kotlin.Int)
internal final val px: kotlin.Int = 1 internal final val px: kotlin.Int = 1
internal final val valx: kotlin.Int internal final val valx: kotlin.Int
internal final var varx: kotlin.Int internal final var varx: kotlin.Int
internal final val kotlin.Any.px: kotlin.Int internal final val kotlin.Any.px: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String 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 { internal final class D : AB {
public constructor D() public constructor D()
internal open override /*1*/ fun absFun1(): kotlin.Unit 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 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 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 public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,7 +1,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
class C { 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 package
internal final class C { 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 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,8 +1,8 @@
interface T { 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 { 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 { internal abstract class C {
public constructor 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 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
internal interface T { internal interface T {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,20 +1,20 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
class C { 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() { fun foo() {
class D { 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 { 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 { internal final class C {
public constructor 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 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,9 +1,9 @@
import kotlin.jvm.jvmStatic import kotlin.jvm.JvmStatic
class A { class A {
<!WRONG_ANNOTATION_TARGET!>jvmStatic<!> constructor() {} <!WRONG_ANNOTATION_TARGET!>JvmStatic<!> constructor() {}
inner class B { 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 package
internal final class A { 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 equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
internal final inner class B { 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 equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
@@ -15,7 +15,7 @@ internal final class A {
} }
internal final class C { 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 equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
@@ -1,5 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE // !DIAGNOSTICS: -UNUSED_VARIABLE
import kotlin.jvm.jvmStatic import kotlin.jvm.JvmStatic
abstract class A { abstract class A {
@@ -12,24 +12,24 @@ abstract class A {
object B: 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 { class C {
companion object: A() { 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 { internal object B : A {
private constructor B() private constructor B()
kotlin.jvm.jvmStatic() internal open override /*1*/ fun a(): 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 open override /*1*/ fun b(): kotlin.Unit
kotlin.jvm.jvmStatic() internal final override /*1*/ fun c(): 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 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 equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
@@ -29,10 +29,10 @@ internal final class C {
public companion object Companion : A { public companion object Companion : A {
private constructor Companion() private constructor Companion()
kotlin.jvm.jvmStatic() internal open override /*1*/ fun a(): 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 open override /*1*/ fun b(): kotlin.Unit
kotlin.jvm.jvmStatic() internal final override /*1*/ fun c(): 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 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 equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
@@ -1,54 +1,54 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE // !DIAGNOSTICS: -UNUSED_VARIABLE
import kotlin.jvm.jvmStatic import kotlin.jvm.JvmStatic
class A { class A {
companion object { companion object {
jvmStatic fun a1() { JvmStatic fun a1() {
} }
} }
object A { object A {
jvmStatic fun a2() { JvmStatic fun a2() {
} }
} }
fun test() { fun test() {
val s = object { 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 { interface B {
companion object { companion object {
<!JVM_STATIC_NOT_IN_OBJECT!>jvmStatic fun a1()<!> { <!JVM_STATIC_NOT_IN_OBJECT!>JvmStatic fun a1()<!> {
} }
} }
object A { object A {
jvmStatic fun a2() { JvmStatic fun a2() {
} }
} }
fun test() { fun test() {
val s = object { 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 { internal final class A {
public constructor 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 equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
internal final fun test(): kotlin.Unit internal final fun test(): kotlin.Unit
@@ -10,7 +10,7 @@ internal final class A {
internal object A { internal object A {
private constructor 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 equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
@@ -18,7 +18,7 @@ internal final class A {
public companion object Companion { public companion object Companion {
private constructor 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 equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
@@ -26,7 +26,7 @@ internal final class A {
} }
internal interface B { 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 equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
internal open fun test(): kotlin.Unit internal open fun test(): kotlin.Unit
@@ -34,7 +34,7 @@ internal interface B {
internal object A { internal object A {
private constructor 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 equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
@@ -42,7 +42,7 @@ internal interface B {
public companion object Companion { public companion object Companion {
private constructor 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 equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
@@ -1,8 +1,8 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE // !DIAGNOSTICS: -UNUSED_VARIABLE
import kotlin.jvm.jvmStatic import kotlin.jvm.JvmStatic
fun main(args: Array<String>) { 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 // !DIAGNOSTICS: -UNUSED_VARIABLE
import kotlin.jvm.jvmStatic import kotlin.jvm.JvmStatic
open class B { open class B {
public open val base1 : Int = 1 public open val base1 : Int = 1
@@ -9,38 +9,38 @@ open class B {
class A { class A {
companion object : B() { companion object : B() {
var p1:Int = 1 var p1:Int = 1
@jvmStatic set(p: Int) { @JvmStatic set(p: Int) {
p1 = 1 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 override val base2: Int = 0
@jvmStatic get @JvmStatic get
} }
object A : B() { object A : B() {
var p:Int = 1 var p:Int = 1
@jvmStatic set(p1: Int) { @JvmStatic set(p1: Int) {
p = 1 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 val base2: Int = 0
<!OVERRIDE_CANNOT_BE_STATIC!>@jvmStatic get<!> <!OVERRIDE_CANNOT_BE_STATIC!>@JvmStatic get<!>
} }
var p:Int = 1 var p:Int = 1
<!JVM_STATIC_NOT_IN_OBJECT!>@jvmStatic set(p1: Int)<!> { <!JVM_STATIC_NOT_IN_OBJECT!>@JvmStatic set(p1: Int)<!> {
p = 1 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 { internal final class A {
public constructor A() public constructor A()
internal final var p: kotlin.Int 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 equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
internal object A : B { internal object A : B {
private constructor A() 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 public open override /*1*/ val base2: kotlin.Int = 0
internal final var p: kotlin.Int 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 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
public companion object Companion : B { public companion object Companion : B {
private constructor Companion() 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 public open override /*1*/ val base2: kotlin.Int = 0
internal final var p1: kotlin.Int 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 equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
@@ -1,6 +1,6 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
class A { 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()<!> { <!CONFLICTING_JVM_DECLARATIONS!>fun foo()<!> {
@@ -4,7 +4,7 @@ internal final class A {
public constructor A() public constructor A()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
internal final fun foo(): kotlin.Unit 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,20 +1,20 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
@jvmName("bar") @JvmName("bar")
fun foo(a: Any) {} fun foo(a: Any) {}
fun Any.foo() {} fun Any.foo() {}
@jvmName("barInt") @JvmName("barInt")
fun bar(x: List<Int>) {} fun bar(x: List<Int>) {}
@jvmName("barStr") @JvmName("barStr")
fun bar(x: List<String>) {} fun bar(x: List<String>) {}
class C { class C {
var rwProp: Int var rwProp: Int
@jvmName("get_rwProp") @JvmName("get_rwProp")
get() = 0 get() = 0
@jvmName("set_rwProp") @JvmName("set_rwProp")
set(v) {} set(v) {}
fun getRwProp(): Int = 123 fun getRwProp(): Int = 123
@@ -1,8 +1,8 @@
package package
kotlin.jvm.jvmName(name = "barInt") internal fun bar(/*0*/ x: kotlin.List<kotlin.Int>): 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 = "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 = "bar") internal fun foo(/*0*/ a: kotlin.Any): kotlin.Unit
internal fun kotlin.Any.foo(): kotlin.Unit internal fun kotlin.Any.foo(): kotlin.Unit
internal final class C { internal final class C {
@@ -1,14 +1,14 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
<!CONFLICTING_JVM_DECLARATIONS!>@jvmName("bar") <!CONFLICTING_JVM_DECLARATIONS!>@JvmName("bar")
fun foo(a: Any)<!> {} fun foo(a: Any)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun bar(a: Any)<!> {} <!CONFLICTING_JVM_DECLARATIONS!>fun bar(a: Any)<!> {}
class C { class C {
<!CONFLICTING_JVM_DECLARATIONS!>@jvmName("foo1") <!CONFLICTING_JVM_DECLARATIONS!>@JvmName("foo1")
fun foo(list: List<Int>)<!> {} fun foo(list: List<Int>)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>@jvmName("foo1") <!CONFLICTING_JVM_DECLARATIONS!>@JvmName("foo1")
fun foo(list: List<String>)<!> {} fun foo(list: List<String>)<!> {}
} }
@@ -17,7 +17,7 @@ class C {
// A1 -> B1 with accidental override // A1 -> B1 with accidental override
open class A1 { open class A1 {
<!INAPPLICABLE_JVM_NAME!>@jvmName("bar")<!> <!INAPPLICABLE_JVM_NAME!>@JvmName("bar")<!>
open fun foo() {} open fun foo() {}
} }
@@ -28,7 +28,7 @@ class B1 : A1() {
// A2 -> B2 with intended override and conflicting JVM declarations // A2 -> B2 with intended override and conflicting JVM declarations
open class A2 { open class A2 {
<!INAPPLICABLE_JVM_NAME!>@jvmName("bar")<!> <!INAPPLICABLE_JVM_NAME!>@JvmName("bar")<!>
open fun foo() {} open fun foo() {}
} }
@@ -41,7 +41,7 @@ class <!CONFLICTING_JVM_DECLARATIONS!>B2<!> : A2() {
// A3 -> B3 -> C3 with accidental override // A3 -> B3 -> C3 with accidental override
open class A3 { open class A3 {
<!INAPPLICABLE_JVM_NAME!>@jvmName("bar")<!> <!INAPPLICABLE_JVM_NAME!>@JvmName("bar")<!>
open fun foo() {} open fun foo() {}
} }
@@ -1,12 +1,12 @@
package package
internal fun bar(/*0*/ a: kotlin.Any): kotlin.Unit 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 { internal open class A1 {
public constructor A1() public constructor A1()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -14,7 +14,7 @@ internal open class A1 {
internal open class A2 { internal open class A2 {
public constructor A2() public constructor A2()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -22,7 +22,7 @@ internal open class A2 {
internal open class A3 { internal open class A3 {
public constructor A3() public constructor A3()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -31,7 +31,7 @@ internal final class B1 : A1 {
public constructor B1() public constructor B1()
internal final fun bar(): kotlin.Unit internal final fun bar(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -48,7 +48,7 @@ internal final class B2 : A2 {
internal open class B3 : A3 { internal open class B3 : A3 {
public constructor B3() public constructor B3()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -56,8 +56,8 @@ internal open class B3 : A3 {
internal final class C { internal final class C {
public constructor 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 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.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.String>): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -66,7 +66,7 @@ internal final class C3 : B3 {
public constructor C3() public constructor C3()
internal final fun bar(): kotlin.Unit internal final fun bar(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String 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 { open class Base {
fun foo() {} fun foo() {}
@@ -6,6 +6,6 @@ open class Base {
class Derived : Base() { class Derived : Base() {
companion object { 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 { public companion object Companion {
private constructor 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 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
} }
@@ -1,10 +1,10 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
import kotlin.jvm.jvmStatic import kotlin.jvm.JvmStatic
open class Base { open class Base {
fun `foo$default`(i: Int, mask: Int) {} fun `foo$default`(i: Int, mask: Int) {}
} }
object Derived : Base() { 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 { internal object Derived : Base {
private constructor Derived() private constructor Derived()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean 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 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 hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String 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 class DescriptorUtils {
public static final Name ENUM_VALUES = Name.identifier("values"); public static final Name ENUM_VALUES = Name.identifier("values");
public static final Name ENUM_VALUE_OF = Name.identifier("valueOf"); 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"); public static final FqName PLATFORM_NAME = new FqName("kotlin.platform.platformName");
private DescriptorUtils() { private DescriptorUtils() {
@@ -58,7 +58,7 @@ public class JavaToKotlinPreconversionPullUpHelper(
private val fieldsToUsages = HashMap<PsiField, List<EncapsulateFieldUsageInfo>>() private val fieldsToUsages = HashMap<PsiField, List<EncapsulateFieldUsageInfo>>()
private val dummyAccessorByName = HashMap<String, PsiMethod>() 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 { companion object {
private var PsiMember.originalMember: PsiMember? by CopyableUserDataProperty(Key.create("ORIGINAL_MEMBER")) 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 { 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 { 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 { object A {
jvmStatic fun a2() { JvmStatic fun a2() {
} }
} }
fun test() { fun test() {
val <warning descr="[UNUSED_VARIABLE] Variable 's' is never used">s</warning> = object { 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 { interface B {
companion object { 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 { object A {
jvmStatic fun a2() { JvmStatic fun a2() {
} }
} }
fun test() { fun test() {
val <warning descr="[UNUSED_VARIABLE] Variable 's' is never used">s</warning> = object { 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 { companion object {
jvmStatic public fun main(args: Array<String>) { JvmStatic public fun main(args: Array<String>) {
} }
} }
} }
@@ -1,7 +1,7 @@
package to package to
public object JavaClass { public object JavaClass {
jvmStatic public fun main(args: Array<String>) { JvmStatic public fun main(args: Array<String>) {
println("Hello, world!") println("Hello, world!")
} }
} }
@@ -21,7 +21,7 @@ abstract class A {
var X = "1" + "2" var X = "1" + "2"
// INFO: {"checked": "true"} // INFO: {"checked": "true"}
jvmStatic fun foo2(n: Int): String { JvmStatic fun foo2(n: Int): String {
return "_" + n + "_" return "_" + n + "_"
} }
} }
@@ -19,7 +19,7 @@ abstract class A {
var X = "1" + "2" var X = "1" + "2"
// INFO: {"checked": "true", "toAbstract": "true"} // INFO: {"checked": "true", "toAbstract": "true"}
jvmStatic fun foo2(n: Int): String { JvmStatic fun foo2(n: Int): String {
return "_" + n + "_" return "_" + n + "_"
} }
} }
@@ -15,7 +15,7 @@ interface A {
var X = "1" + "2" var X = "1" + "2"
// INFO: {"checked": "true"} // INFO: {"checked": "true"}
jvmStatic fun foo2(n: Int): String { JvmStatic fun foo2(n: Int): String {
return "_" + n + "_" return "_" + n + "_"
} }
} }
@@ -23,7 +23,7 @@ class T {
var X = "1" + "2" var X = "1" + "2"
// INFO: {"checked": "true"} // INFO: {"checked": "true"}
jvmStatic fun foo2(n: Int): String { JvmStatic fun foo2(n: Int): String {
return "_" + n + "_" return "_" + n + "_"
} }
} }
@@ -2,6 +2,6 @@ package testing.rename
public open class C { public open class C {
companion object { companion object {
jvmStatic fun second() {} JvmStatic fun second() {}
} }
} }
@@ -2,6 +2,6 @@ package testing.rename
public open class C { public open class C {
companion object { companion object {
jvmStatic fun first() {} JvmStatic fun first() {}
} }
} }
@@ -423,7 +423,7 @@ class Converter private constructor(
if (function == null) return null if (function == null) return null
if (PsiMethodUtil.isMainMethod(method)) { 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() val identifier = Identifier(fqName.shortName().identifier, imports = listOf(fqName)).assignNoPrototype()
function.annotations += Annotations( 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) { if (function.parameterList.parameters.any { it is FunctionParameter && it.defaultValue != null } && !function.modifiers.isPrivate) {
function.annotations += Annotations( function.annotations += Annotations(
listOf(Annotation(Identifier("jvmOverloads").assignNoPrototype(), listOf(Annotation(Identifier("JvmOverloads").assignNoPrototype(),
listOf(), listOf(),
withAt = false, withAt = false,
newLineAfter = false).assignNoPrototype())).assignNoPrototype() newLineAfter = false).assignNoPrototype())).assignNoPrototype()
@@ -1,5 +1,5 @@
public object A { public object A {
jvmStatic public fun main(args: Array<String>) { JvmStatic public fun main(args: Array<String>) {
println(Void.TYPE) println(Void.TYPE)
println(Integer.TYPE) println(Integer.TYPE)
println(java.lang.Double.TYPE) println(java.lang.Double.TYPE)
@@ -1,5 +1,5 @@
class A// this is a primary constructor class A// this is a primary constructor
jvmOverloads constructor(p: Int = 1) { JvmOverloads constructor(p: Int = 1) {
private val v: Int private val v: Int
init { init {
+1 -1
View File
@@ -1,6 +1,6 @@
package pack 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 object User {
public fun main() { 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) { class Nested(p: Int) {
companion object { companion object {
@@ -1,7 +1,7 @@
// ERROR: Property must be initialized or be abstract // ERROR: Property must be initialized or be abstract
import A.Nested 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) { class Nested(p: Int) {
companion object { companion object {
@@ -3,7 +3,7 @@ package pack
import pack.A.Nested 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) { class Nested(p: Int) {
companion object { companion object {
@@ -3,7 +3,7 @@ package pack
import pack.A.* 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) { class Nested(p: Int) {
companion object { companion object {
@@ -1,6 +1,6 @@
package pack 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) { constructor(a: Int) : this(a, 0, 0, 0, 1) {
} }
@@ -1,6 +1,6 @@
package pack 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) { constructor(a1: Int, b1: Int, c1: Int) : this(a1, b1, c1, 0, 0) {
} }
@@ -1,6 +1,6 @@
package pack 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) { constructor(a: Int, b: Int, c: Int) : this(b, a, c, 0, 0) {
} }
@@ -1,3 +1,3 @@
package pack 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 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 private val field: Int
init { init {
@@ -7,7 +7,7 @@ class A {
public constructor() { 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.s = s
this.x = x this.x = x
} }
@@ -4,7 +4,7 @@ class A() {
private val s = "" private val s = ""
private val x = 0 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.s = s
this.x = x 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 { public object TestClass {
jvmStatic public fun main(args: Array<String>) { JvmStatic public fun main(args: Array<String>) {
var i = 0 var i = 0
while (i < 10) { while (i < 10) {
if (i == 4 || i == 8) { if (i == 4 || i == 8) {
+1 -1
View File
@@ -1,5 +1,5 @@
public object TestClass { public object TestClass {
jvmStatic public fun main(args: Array<String>) { JvmStatic public fun main(args: Array<String>) {
var i = 0 var i = 0
var j = 1 var j = 1
while (i < 10) { while (i < 10) {
+1 -1
View File
@@ -1,5 +1,5 @@
public object TestClass { public object TestClass {
jvmStatic public fun main(args: Array<String>) { JvmStatic public fun main(args: Array<String>) {
var i = 1 var i = 1
while (i < 1000) { while (i < 1000) {
if (i == 4 || i == 8) { if (i == 4 || i == 8) {
+1 -1
View File
@@ -1,5 +1,5 @@
public object TestClass { public object TestClass {
jvmStatic public fun main(args: Array<String>) { JvmStatic public fun main(args: Array<String>) {
var i = 1 var i = 1
OuterLoop1@ OuterLoop2@ while (i < 1000) { OuterLoop1@ OuterLoop2@ while (i < 1000) {
var j = 1 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 { public object A {
jvmStatic public fun main(args: Array<String>) { JvmStatic public fun main(args: Array<String>) {
} }
} }
@@ -1,5 +1,5 @@
// !forceNotNullTypes: false // !forceNotNullTypes: false
public object A { 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 { public object User {
jvmStatic public fun main(args: Array<String>) { JvmStatic public fun main(args: Array<String>) {
val i1 = Identifier("name", false, true) val i1 = Identifier("name", false, true)
val i2 = Identifier("name", false) val i2 = Identifier("name", false)
val i3 = Identifier("name") val i3 = Identifier("name")
+1 -1
View File
@@ -5,7 +5,7 @@
import java.io.* import java.io.*
object FileRead { object FileRead {
jvmStatic public fun main(args: Array<String>) { JvmStatic public fun main(args: Array<String>) {
try { try {
val fstream = FileInputStream() val fstream = FileInputStream()
val `in` = DataInputStream(fstream) val `in` = DataInputStream(fstream)
+1 -1
View File
@@ -1,7 +1,7 @@
package demo package demo
object Program { object Program {
jvmStatic public fun main(args: Array<String>) { JvmStatic public fun main(args: Array<String>) {
println("Halo!") 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
// 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 { class A {
jvmOverloads fun foo(s: String? = null): Any { JvmOverloads fun foo(s: String? = null): Any {
println("s = " + s!!) println("s = " + s!!)
return "" return ""
} }
+2 -2
View File
@@ -1,9 +1,9 @@
class A { 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") println("foo$i$c$s")
} }
jvmOverloads fun bar(s: String? = null): Int { JvmOverloads fun bar(s: String? = null): Int {
println("s = " + s!!) println("s = " + s!!)
return 0 return 0
} }
+1 -1
View File
@@ -76,7 +76,7 @@ public object SwitchDemo {
println(monthString) println(monthString)
} }
jvmStatic public fun main(args: Array<String>) { JvmStatic public fun main(args: Array<String>) {
for (i in 1..12) for (i in 1..12)
test(i) test(i)
} }

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