[Test] Add ability to specify applicability of diagnostic to module or file

This commit is contained in:
Dmitriy Novozhilov
2021-01-15 14:54:05 +03:00
committed by TeamCityServer
parent 28cff22cd0
commit 6a7cd0c811
117 changed files with 266 additions and 189 deletions
@@ -1,5 +1,5 @@
// FILE: Descriptor.java
// FULL_JDK // FULL_JDK
// FILE: Descriptor.java
public interface Descriptor public interface Descriptor
@@ -1,5 +1,5 @@
// FILE: Element.java
// FULL_JDK // FULL_JDK
// FILE: Element.java
public interface Element {} public interface Element {}
@@ -1,5 +1,5 @@
// FILE: StaticOwner.java
// FULL_JDK // FULL_JDK
// FILE: StaticOwner.java
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -21,4 +21,4 @@ abstract class User<T : Freezable> {
fun foo() { fun foo() {
settings = StaticOwner.newInstance(settings.javaClass) settings = StaticOwner.newInstance(settings.javaClass)
} }
} }
@@ -9,7 +9,18 @@ import org.jetbrains.kotlin.test.util.joinToArrayString
// --------------------------- Directive declaration --------------------------- // --------------------------- Directive declaration ---------------------------
sealed class Directive(val name: String, val description: String) { enum class DirectiveApplicability(
val forGlobal: Boolean = false,
val forModule: Boolean = false,
val forFile: Boolean = false
) {
Any(forGlobal = true, forModule = true, forFile = true),
Global(forGlobal = true, forModule = true),
Module(forModule = true),
File(forFile = true)
}
sealed class Directive(val name: String, val description: String, val applicability: DirectiveApplicability) {
override fun toString(): String { override fun toString(): String {
return name return name
} }
@@ -17,23 +28,26 @@ sealed class Directive(val name: String, val description: String) {
class SimpleDirective( class SimpleDirective(
name: String, name: String,
description: String description: String,
) : Directive(name, description) applicability: DirectiveApplicability
) : Directive(name, description, applicability)
class StringDirective( class StringDirective(
name: String, name: String,
description: String description: String,
) : Directive(name, description) applicability: DirectiveApplicability
) : Directive(name, description, applicability)
class ValueDirective<T : Any>( class ValueDirective<T : Any>(
name: String, name: String,
description: String, description: String,
applicability: DirectiveApplicability,
val parser: (String) -> T? val parser: (String) -> T?
) : Directive(name, description) ) : Directive(name, description, applicability)
// --------------------------- Registered directive --------------------------- // --------------------------- Registered directive ---------------------------
abstract class RegisteredDirectives { abstract class RegisteredDirectives : Iterable<Directive> {
companion object { companion object {
val Empty = RegisteredDirectivesImpl(emptyList(), emptyMap(), emptyMap()) val Empty = RegisteredDirectivesImpl(emptyList(), emptyMap(), emptyMap())
} }
@@ -78,6 +92,15 @@ class RegisteredDirectivesImpl(
valueDirectives.forEach { (d, v) -> appendLine(" $d: ${v.joinToArrayString()}")} valueDirectives.forEach { (d, v) -> appendLine(" $d: ${v.joinToArrayString()}")}
} }
} }
@OptIn(ExperimentalStdlibApi::class)
override fun iterator(): Iterator<Directive> {
return buildList {
addAll(simpleDirectives)
addAll(stringDirectives.keys)
addAll(valueDirectives.keys)
}.iterator()
}
} }
class ComposedRegisteredDirectives( class ComposedRegisteredDirectives(
@@ -109,6 +132,10 @@ class ComposedRegisteredDirectives(
override fun isEmpty(): Boolean { override fun isEmpty(): Boolean {
return containers.all { it.isEmpty() } return containers.all { it.isEmpty() }
} }
override fun iterator(): Iterator<Directive> {
return containers.flatten().iterator()
}
} }
// --------------------------- Utils --------------------------- // --------------------------- Utils ---------------------------
@@ -20,28 +20,36 @@ abstract class SimpleDirectivesContainer : DirectivesContainer() {
override operator fun get(name: String): Directive? = registeredDirectives[name] override operator fun get(name: String): Directive? = registeredDirectives[name]
protected fun directive(description: String): DirectiveDelegateProvider<SimpleDirective> { protected fun directive(
return DirectiveDelegateProvider { SimpleDirective(it, description) } description: String,
applicability: DirectiveApplicability = DirectiveApplicability.Global
): DirectiveDelegateProvider<SimpleDirective> {
return DirectiveDelegateProvider { SimpleDirective(it, description, applicability) }
} }
protected fun stringDirective(description: String): DirectiveDelegateProvider<StringDirective> { protected fun stringDirective(
return DirectiveDelegateProvider { StringDirective(it, description) } description: String,
applicability: DirectiveApplicability = DirectiveApplicability.Global
): DirectiveDelegateProvider<StringDirective> {
return DirectiveDelegateProvider { StringDirective(it, description, applicability) }
} }
protected inline fun <reified T : Enum<T>> enumDirective( protected inline fun <reified T : Enum<T>> enumDirective(
description: String, description: String,
applicability: DirectiveApplicability = DirectiveApplicability.Global,
noinline additionalParser: ((String) -> T?)? = null noinline additionalParser: ((String) -> T?)? = null
): DirectiveDelegateProvider<ValueDirective<T>> { ): DirectiveDelegateProvider<ValueDirective<T>> {
val possibleValues = enumValues<T>() val possibleValues = enumValues<T>()
val parser: (String) -> T? = { value -> possibleValues.firstOrNull { it.name == value } ?: additionalParser?.invoke(value) } val parser: (String) -> T? = { value -> possibleValues.firstOrNull { it.name == value } ?: additionalParser?.invoke(value) }
return DirectiveDelegateProvider { ValueDirective(it, description, parser) } return DirectiveDelegateProvider { ValueDirective(it, description, applicability, parser) }
} }
protected fun <T : Any> valueDirective( protected fun <T : Any> valueDirective(
description: String, description: String,
applicability: DirectiveApplicability = DirectiveApplicability.Global,
parser: (String) -> T? parser: (String) -> T?
): DirectiveDelegateProvider<ValueDirective<T>> { ): DirectiveDelegateProvider<ValueDirective<T>> {
return DirectiveDelegateProvider { ValueDirective(it, description, parser) } return DirectiveDelegateProvider { ValueDirective(it, description, applicability, parser) }
} }
protected fun registerDirective(directive: Directive) { protected fun registerDirective(directive: Directive) {
@@ -18,9 +18,9 @@ suspend fun <R> notInlined(
): R = block() ): R = block()
// MODULE: main(lib, support) // MODULE: main(lib, support)
// FILE: main.kt
// WITH_COROUTINES // WITH_COROUTINES
// WITH_RUNTIME // WITH_RUNTIME
// FILE: main.kt
import helpers.* import helpers.*
import kotlin.coroutines.* import kotlin.coroutines.*
import kotlin.coroutines.intrinsics.* import kotlin.coroutines.intrinsics.*
@@ -8,9 +8,9 @@ inline fun foo(x: String = "OK"): String {
} }
// MODULE: main(lib, support) // MODULE: main(lib, support)
// FILE: main.kt
// WITH_RUNTIME // WITH_RUNTIME
// WITH_COROUTINES // WITH_COROUTINES
// FILE: main.kt
import helpers.* import helpers.*
import kotlin.coroutines.* import kotlin.coroutines.*
import kotlin.coroutines.intrinsics.* import kotlin.coroutines.intrinsics.*
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: Base.java // FILE: Base.java
public interface Base { public interface Base {
@@ -10,7 +11,6 @@ public interface Base {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
public interface BaseKotlin : Base { public interface BaseKotlin : Base {
} }
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: Base.java // FILE: Base.java
public interface Base { public interface Base {
@@ -10,7 +11,6 @@ public interface Base {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
public interface BaseKotlin : Base { public interface BaseKotlin : Base {
override fun getValue() = "OK" override fun getValue() = "OK"
+1 -1
View File
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: Base.java // FILE: Base.java
public interface Base { public interface Base {
@@ -18,7 +19,6 @@ public interface Base2 extends Base {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
interface KBase : Base interface KBase : Base
+1 -1
View File
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: Base.java // FILE: Base.java
public interface Base { public interface Base {
@@ -17,7 +18,6 @@ public interface Base2 extends Base {
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
interface KBase : Base { interface KBase : Base {
override fun test() = "O" + getValue() override fun test() = "O" + getValue()
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: Base.java // FILE: Base.java
public interface Base { public interface Base {
@@ -10,7 +11,6 @@ public interface Base {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
class Fail : Base { class Fail : Base {
override fun getValue() = "Fail" override fun getValue() = "Fail"
+1 -1
View File
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: Base.java // FILE: Base.java
public interface Base extends KBase { public interface Base extends KBase {
@@ -10,7 +11,6 @@ public interface Base extends KBase {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
interface KBase { interface KBase {
fun getValue(): String fun getValue(): String
+1 -1
View File
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: Base.java // FILE: Base.java
public interface Base { public interface Base {
@@ -10,7 +11,6 @@ public interface Base {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
class Fail : Base { class Fail : Base {
override fun getValue() = "Fail" override fun getValue() = "Fail"
+1 -1
View File
@@ -1,6 +1,7 @@
// !LANGUAGE: -NoDelegationToJavaDefaultInterfaceMembers // !LANGUAGE: -NoDelegationToJavaDefaultInterfaceMembers
// IGNORE_BACKEND_FIR: JVM_IR // IGNORE_BACKEND_FIR: JVM_IR
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: Base.java // FILE: Base.java
public interface Base { public interface Base {
@@ -12,7 +13,6 @@ public interface Base {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
class OK : Base { class OK : Base {
override fun getValue() = "OK" override fun getValue() = "OK"
@@ -1,6 +1,6 @@
// MODULE: lib // MODULE: lib
// FILE: lib.kt
// WITH_RUNTIME // WITH_RUNTIME
// FILE: lib.kt
import kotlin.test.assertEquals import kotlin.test.assertEquals
@@ -1,6 +1,6 @@
// MODULE: lib // MODULE: lib
// FILE: lib.kt
// WITH_RUNTIME // WITH_RUNTIME
// FILE: lib.kt
import kotlin.test.assertEquals import kotlin.test.assertEquals
@@ -1,3 +1,6 @@
// DONT_TARGET_EXACT_BACKEND: WASM
// IGNORE_BACKEND: JS
// IGNORE_BACKEND: JS_IR
// FILE: DiagnosticFactory0.java // FILE: DiagnosticFactory0.java
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -10,9 +13,6 @@ public class DiagnosticFactory0<E> {
} }
// FILE: test.kt // FILE: test.kt
// DONT_TARGET_EXACT_BACKEND: WASM
// IGNORE_BACKEND: JS
// IGNORE_BACKEND: JS_IR
class SimpleDiagnostic<E>(val element: E) class SimpleDiagnostic<E>(val element: E)
interface KtAnnotationEntry interface KtAnnotationEntry
@@ -21,4 +21,4 @@ fun foo(error: DiagnosticFactory0<in KtAnnotationEntry>, entry: KtAnnotationEntr
error.on(entry) // used to be INAPPLICABLE_CANDIDATE error.on(entry) // used to be INAPPLICABLE_CANDIDATE
} }
fun box() = "OK" fun box() = "OK"
@@ -1,3 +1,6 @@
// DONT_TARGET_EXACT_BACKEND: WASM
// IGNORE_BACKEND: JS
// IGNORE_BACKEND: JS_IR
// FILE: Processor.java // FILE: Processor.java
public interface Processor<T> { public interface Processor<T> {
@@ -5,9 +8,6 @@ public interface Processor<T> {
} }
// FILE: test.kt // FILE: test.kt
// DONT_TARGET_EXACT_BACKEND: WASM
// IGNORE_BACKEND: JS
// IGNORE_BACKEND: JS_IR
interface PsiModifierListOwner interface PsiModifierListOwner
interface KtClassOrObject { interface KtClassOrObject {
@@ -23,4 +23,4 @@ fun execute(declaration: Any, consumer: Processor<in PsiModifierListOwner>) {
} }
} }
fun box(): String = "OK" fun box(): String = "OK"
@@ -1,5 +1,7 @@
// SKIP_JDK6 // SKIP_JDK6
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// WITH_RUNTIME
// FULL_JDK
// FILE: F.java // FILE: F.java
import java.util.function.Function; import java.util.function.Function;
@@ -10,8 +12,6 @@ public class F {
} }
// FILE: test.kt // FILE: test.kt
// WITH_RUNTIME
// FULL_JDK
fun test(f: (Int?) -> String): String { fun test(f: (Int?) -> String): String {
return F.passNull(f) return F.passNull(f)
} }
@@ -1,6 +1,6 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// FILE: test.kt
// WITH_RUNTIME // WITH_RUNTIME
// FILE: test.kt
import kotlin.test.* import kotlin.test.*
@@ -1,6 +1,6 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// FILE: test.kt
// WITH_RUNTIME // WITH_RUNTIME
// FILE: test.kt
import kotlin.test.* import kotlin.test.*
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: all-compatibility // !JVM_DEFAULT_MODE: all-compatibility
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface2 { public interface Simple extends KInterface2 {
@@ -14,8 +16,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface<T> { interface KInterface<T> {
fun test2(p: T): T { fun test2(p: T): T {
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: all-compatibility // !JVM_DEFAULT_MODE: all-compatibility
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface2 { public interface Simple extends KInterface2 {
@@ -16,8 +18,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface<T> { interface KInterface<T> {
fun test2(p: T): T { fun test2(p: T): T {
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: all-compatibility // !JVM_DEFAULT_MODE: all-compatibility
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface3 { public interface Simple extends KInterface3 {
@@ -16,8 +18,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface<T> { interface KInterface<T> {
fun test2(p: T): T { fun test2(p: T): T {
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: all-compatibility // !JVM_DEFAULT_MODE: all-compatibility
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface2 { public interface Simple extends KInterface2 {
@@ -14,8 +16,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface<T> { interface KInterface<T> {
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: all-compatibility // !JVM_DEFAULT_MODE: all-compatibility
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface2 { public interface Simple extends KInterface2 {
@@ -16,8 +18,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface<T> { interface KInterface<T> {
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: all-compatibility // !JVM_DEFAULT_MODE: all-compatibility
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface3 { public interface Simple extends KInterface3 {
@@ -14,8 +16,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface<T> { interface KInterface<T> {
@@ -2,6 +2,7 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// FULL_JDK // FULL_JDK
// WITH_RUNTIME // WITH_RUNTIME
// JVM_TARGET: 1.8
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface { public interface Simple extends KInterface {
@@ -16,8 +17,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface { interface KInterface {
fun call(): List<String> { fun call(): List<String> {
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: all-compatibility // !JVM_DEFAULT_MODE: all-compatibility
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface2 { public interface Simple extends KInterface2 {
@@ -14,8 +16,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface { interface KInterface {
fun test2(): String { fun test2(): String {
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: all-compatibility // !JVM_DEFAULT_MODE: all-compatibility
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface { public interface Simple extends KInterface {
@@ -14,8 +16,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface { interface KInterface {
fun test2(): String { fun test2(): String {
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: compatibility // !JVM_DEFAULT_MODE: compatibility
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface2 { public interface Simple extends KInterface2 {
@@ -14,8 +16,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface<T> { interface KInterface<T> {
@JvmDefault @JvmDefault
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: compatibility // !JVM_DEFAULT_MODE: compatibility
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface2 { public interface Simple extends KInterface2 {
@@ -16,8 +18,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface<T> { interface KInterface<T> {
@JvmDefault @JvmDefault
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: compatibility // !JVM_DEFAULT_MODE: compatibility
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface3 { public interface Simple extends KInterface3 {
@@ -16,8 +18,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface<T> { interface KInterface<T> {
@JvmDefault @JvmDefault
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: compatibility // !JVM_DEFAULT_MODE: compatibility
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface2 { public interface Simple extends KInterface2 {
@@ -14,8 +16,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface<T> { interface KInterface<T> {
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: compatibility // !JVM_DEFAULT_MODE: compatibility
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface2 { public interface Simple extends KInterface2 {
@@ -16,8 +18,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface<T> { interface KInterface<T> {
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: compatibility // !JVM_DEFAULT_MODE: compatibility
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface3 { public interface Simple extends KInterface3 {
@@ -14,8 +16,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface<T> { interface KInterface<T> {
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: compatibility // !JVM_DEFAULT_MODE: compatibility
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface2 { public interface Simple extends KInterface2 {
@@ -14,8 +16,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface { interface KInterface {
@JvmDefault @JvmDefault
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: compatibility // !JVM_DEFAULT_MODE: compatibility
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface { public interface Simple extends KInterface {
@@ -14,8 +16,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface { interface KInterface {
@JvmDefault @JvmDefault
+2 -2
View File
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: enable // !JVM_DEFAULT_MODE: enable
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: JBase.java // FILE: JBase.java
public interface JBase extends Base { public interface JBase extends Base {
@@ -9,8 +11,6 @@ public interface JBase extends Base {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface Base { interface Base {
@JvmDefault @JvmDefault
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: all // !JVM_DEFAULT_MODE: all
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface2 { public interface Simple extends KInterface2 {
@@ -14,8 +16,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface<T> { interface KInterface<T> {
fun test2(p: T): T { fun test2(p: T): T {
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: all // !JVM_DEFAULT_MODE: all
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface2 { public interface Simple extends KInterface2 {
@@ -16,8 +18,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface<T> { interface KInterface<T> {
fun test2(p: T): T { fun test2(p: T): T {
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: all // !JVM_DEFAULT_MODE: all
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface3 { public interface Simple extends KInterface3 {
@@ -16,8 +18,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface<T> { interface KInterface<T> {
fun test2(p: T): T { fun test2(p: T): T {
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: all // !JVM_DEFAULT_MODE: all
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface2 { public interface Simple extends KInterface2 {
@@ -14,8 +16,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface<T> { interface KInterface<T> {
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: all // !JVM_DEFAULT_MODE: all
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface2 { public interface Simple extends KInterface2 {
@@ -16,8 +18,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface<T> { interface KInterface<T> {
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: all // !JVM_DEFAULT_MODE: all
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface3 { public interface Simple extends KInterface3 {
@@ -14,8 +16,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface<T> { interface KInterface<T> {
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: all // !JVM_DEFAULT_MODE: all
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface2 { public interface Simple extends KInterface2 {
@@ -14,8 +16,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface { interface KInterface {
fun test2(): String { fun test2(): String {
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: all // !JVM_DEFAULT_MODE: all
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: JBase.java // FILE: JBase.java
public interface JBase extends Base { public interface JBase extends Base {
@@ -9,8 +11,6 @@ public interface JBase extends Base {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface Base { interface Base {
fun test(): String = "Base" fun test(): String = "Base"
@@ -1,5 +1,7 @@
// !JVM_DEFAULT_MODE: all // !JVM_DEFAULT_MODE: all
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// WITH_RUNTIME
// FILE: Simple.java // FILE: Simple.java
public interface Simple extends KInterface { public interface Simple extends KInterface {
@@ -14,8 +16,6 @@ public class Foo implements Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
// WITH_RUNTIME
interface KInterface { interface KInterface {
fun test2(): String { fun test2(): String {
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: Simple.java // FILE: Simple.java
public interface Simple { public interface Simple {
@@ -12,7 +13,6 @@ public interface Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
class TestClass : Simple { class TestClass : Simple {
override fun test(): String { override fun test(): String {
return super.test() return super.test()
@@ -22,4 +22,4 @@ class TestClass : Simple {
fun box(): String { fun box(): String {
return TestClass().test() + Simple.testStatic() return TestClass().test() + Simple.testStatic()
} }
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: Simple.java // FILE: Simple.java
public interface Simple { public interface Simple {
@@ -12,7 +13,6 @@ public interface Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
interface KSimple : Simple {} interface KSimple : Simple {}
class TestClass : KSimple { class TestClass : KSimple {
@@ -24,4 +24,4 @@ class TestClass : KSimple {
fun box(): String { fun box(): String {
return TestClass().test() + Simple.testStatic() return TestClass().test() + Simple.testStatic()
} }
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: IBase.java // FILE: IBase.java
interface IBase { interface IBase {
@@ -8,7 +9,6 @@ interface IBase {
} }
// FILE: Kotlin.kt // FILE: Kotlin.kt
// JVM_TARGET: 1.8
open class Base { open class Base {
fun foo() = "OK" fun foo() = "OK"
} }
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: Simple.java // FILE: Simple.java
public interface Simple { public interface Simple {
@@ -12,7 +13,6 @@ public interface Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
interface KInterface : Simple { interface KInterface : Simple {
fun bar(): String { fun bar(): String {
return test("O") + Simple.testStatic("O") return test("O") + Simple.testStatic("O")
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: Simple.java // FILE: Simple.java
interface Simple { interface Simple {
@@ -12,7 +13,6 @@ interface Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
class Test : Simple {} class Test : Simple {}
fun box(): String { fun box(): String {
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: Simple.java // FILE: Simple.java
public interface Simple { public interface Simple {
@@ -12,7 +13,6 @@ public interface Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
interface TestInterface : Simple {} interface TestInterface : Simple {}
class Test : TestInterface {} class Test : TestInterface {}
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: Simple.java // FILE: Simple.java
public interface Simple { public interface Simple {
@@ -8,7 +9,6 @@ public interface Simple {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
interface KInterface: Simple { interface KInterface: Simple {
override fun test(s: String): String { override fun test(s: String): String {
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: Test.java // FILE: Test.java
interface Test<T> { interface Test<T> {
@@ -11,7 +12,6 @@ interface Test<T> {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
class Child : Test<String> { class Child : Test<String> {
override fun call() : String { override fun call() : String {
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: Simple.java // FILE: Simple.java
interface Simple extends KInterface { interface Simple extends KInterface {
@@ -8,7 +9,6 @@ interface Simple extends KInterface {
} }
// FILE: main.kt // FILE: main.kt
// JVM_TARGET: 1.8
interface KInterface { interface KInterface {
fun test(): String { fun test(): String {
return "base"; return "base";
@@ -1,5 +1,6 @@
// SKIP_JDK6 // SKIP_JDK6
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: Test.java // FILE: Test.java
public interface Test { public interface Test {
@@ -9,7 +10,6 @@ public interface Test {
} }
// FILE: test.kt // FILE: test.kt
// JVM_TARGET: 1.8
interface KInterface : Test { interface KInterface : Test {
} }
+1 -1
View File
@@ -1,6 +1,7 @@
// !JVM_DEFAULT_MODE: disable // !JVM_DEFAULT_MODE: disable
// JVM_TARGET: 1.8 // JVM_TARGET: 1.8
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// WITH_RUNTIME
// FILE: JBase.java // FILE: JBase.java
public interface JBase extends Base { public interface JBase extends Base {
@@ -10,7 +11,6 @@ public interface JBase extends Base {
} }
// FILE: main.kt // FILE: main.kt
// WITH_RUNTIME
interface Base { interface Base {
fun test(): String = "Base" fun test(): String = "Base"
@@ -1,6 +1,7 @@
// !JVM_DEFAULT_MODE: disable // !JVM_DEFAULT_MODE: disable
// JVM_TARGET: 1.8 // JVM_TARGET: 1.8
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// WITH_RUNTIME
// FILE: Base.java // FILE: Base.java
public interface Base { public interface Base {
@@ -11,7 +12,6 @@ public interface Base {
// FILE: main.kt // FILE: main.kt
// WITH_RUNTIME
interface LeftBase : Base interface LeftBase : Base
interface Right : Base { interface Right : Base {
@@ -1,6 +1,7 @@
// !JVM_DEFAULT_MODE: disable // !JVM_DEFAULT_MODE: disable
// JVM_TARGET: 1.8 // JVM_TARGET: 1.8
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// WITH_RUNTIME
// FILE: Base.java // FILE: Base.java
public interface Base { public interface Base {
@@ -15,7 +16,6 @@ public interface Left extends Base {
} }
// FILE: main.kt // FILE: main.kt
// WITH_RUNTIME
interface Right : Base { interface Right : Base {
override fun test(): String = "OK" override fun test(): String = "OK"
@@ -1,9 +1,9 @@
// !JVM_DEFAULT_MODE: disable // !JVM_DEFAULT_MODE: disable
// JVM_TARGET: 1.8 // JVM_TARGET: 1.8
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// FILE: main.kt
// WITH_RUNTIME // WITH_RUNTIME
// FULL_JDK // FULL_JDK
// FILE: main.kt
var result = "" var result = ""
interface A<K, V> : MutableMap<K, V> interface A<K, V> : MutableMap<K, V>
@@ -72,4 +72,4 @@ fun box(): String {
val value = map.getOrDefault("O", "OK") val value = map.getOrDefault("O", "OK")
if (result != "O=fail;O;O;") return "fail 3: $result" if (result != "O=fail;O;O;") return "fail 3: $result"
return value return value
} }
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: Base.java // FILE: Base.java
public interface Base { public interface Base {
@@ -8,7 +9,6 @@ public interface Base {
} }
// FILE: derived.kt // FILE: derived.kt
// JVM_TARGET: 1.8
interface K1 : Base interface K1 : Base
interface K2 : K1 interface K2 : K1
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: JavaCall.java // FILE: JavaCall.java
class JavaCall { class JavaCall {
@@ -23,7 +24,6 @@ interface Test {
} }
// FILE: sam.kt // FILE: sam.kt
// JVM_TARGET: 1.8
fun box(): String { fun box(): String {
val lambda = { "X" } val lambda = { "X" }
@@ -1,7 +1,7 @@
// !LANGUAGE: -NullabilityAssertionOnExtensionReceiver // !LANGUAGE: -NullabilityAssertionOnExtensionReceiver
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// FILE: test.kt
// WITH_RUNTIME // WITH_RUNTIME
// FILE: test.kt
private operator fun A.inc() = A() private operator fun A.inc() = A()
fun box(): String { fun box(): String {
@@ -14,4 +14,4 @@ fun box(): String {
// FILE: A.java // FILE: A.java
public class A { public class A {
public static A n() { return null; } public static A n() { return null; }
} }
@@ -1,7 +1,7 @@
// !LANGUAGE: -NullabilityAssertionOnExtensionReceiver // !LANGUAGE: -NullabilityAssertionOnExtensionReceiver
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// FILE: test.kt
// WITH_RUNTIME // WITH_RUNTIME
// FILE: test.kt
import kotlin.test.* import kotlin.test.*
@@ -1,9 +1,9 @@
// IGNORE_BACKEND_FIR: JVM_IR // IGNORE_BACKEND_FIR: JVM_IR
// IGNORE_BACKEND: JVM_IR // IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// ANDROID_ANNOTATIONS
// FILE: A.java // FILE: A.java
// ANDROID_ANNOTATIONS
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -1,9 +1,9 @@
// IGNORE_BACKEND_FIR: JVM_IR // IGNORE_BACKEND_FIR: JVM_IR
// IGNORE_BACKEND: JVM_IR // IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// ANDROID_ANNOTATIONS
// FILE: A.java // FILE: A.java
// ANDROID_ANNOTATIONS
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -79,4 +79,4 @@ fun box(): String {
} }
return "OK" return "OK"
} }
@@ -1,9 +1,9 @@
// IGNORE_BACKEND_FIR: JVM_IR // IGNORE_BACKEND_FIR: JVM_IR
// IGNORE_BACKEND: JVM_IR // IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// ANDROID_ANNOTATIONS
// FILE: Signs.java // FILE: Signs.java
// ANDROID_ANNOTATIONS
public enum Signs { public enum Signs {
HELLO, HELLO,
@@ -1,9 +1,9 @@
// IGNORE_BACKEND_FIR: JVM_IR // IGNORE_BACKEND_FIR: JVM_IR
// IGNORE_BACKEND: JVM_IR // IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// ANDROID_ANNOTATIONS
// FILE: A.java // FILE: A.java
// ANDROID_ANNOTATIONS
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -1,9 +1,9 @@
// IGNORE_BACKEND_FIR: JVM_IR // IGNORE_BACKEND_FIR: JVM_IR
// IGNORE_BACKEND: JVM_IR // IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// ANDROID_ANNOTATIONS
// FILE: A.java // FILE: A.java
// ANDROID_ANNOTATIONS
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -1,9 +1,9 @@
// IGNORE_BACKEND_FIR: JVM_IR // IGNORE_BACKEND_FIR: JVM_IR
// IGNORE_BACKEND: JVM_IR // IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// ANDROID_ANNOTATIONS
// FILE: A.java // FILE: A.java
// ANDROID_ANNOTATIONS
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -55,4 +55,4 @@ fun box(): String {
if (D().baz() != 42) return "FAIL 5" if (D().baz() != 42) return "FAIL 5"
return "OK" return "OK"
} }
@@ -1,9 +1,9 @@
// IGNORE_BACKEND_FIR: JVM_IR // IGNORE_BACKEND_FIR: JVM_IR
// IGNORE_BACKEND: JVM_IR // IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// ANDROID_ANNOTATIONS
// FILE: A.java // FILE: A.java
// ANDROID_ANNOTATIONS
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
import org.jetbrains.annotations.*; import org.jetbrains.annotations.*;
@@ -80,4 +80,4 @@ fun box(): String {
} }
return "OK" return "OK"
} }
@@ -1,9 +1,9 @@
// IGNORE_BACKEND_FIR: JVM_IR // IGNORE_BACKEND_FIR: JVM_IR
// IGNORE_BACKEND: JVM_IR // IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// ANDROID_ANNOTATIONS
// FILE: A.java // FILE: A.java
// ANDROID_ANNOTATIONS
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -37,4 +37,4 @@ fun box(): String {
} }
return "OK" return "OK"
} }
@@ -1,9 +1,9 @@
// IGNORE_BACKEND_FIR: JVM_IR // IGNORE_BACKEND_FIR: JVM_IR
// IGNORE_BACKEND: JVM_IR // IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// ANDROID_ANNOTATIONS
// FILE: A.java // FILE: A.java
// ANDROID_ANNOTATIONS
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -1,9 +1,9 @@
// IGNORE_BACKEND_FIR: JVM_IR // IGNORE_BACKEND_FIR: JVM_IR
// IGNORE_BACKEND: JVM_IR // IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// ANDROID_ANNOTATIONS
// FILE: A.java // FILE: A.java
// ANDROID_ANNOTATIONS
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -1,9 +1,9 @@
// IGNORE_BACKEND_FIR: JVM_IR // IGNORE_BACKEND_FIR: JVM_IR
// IGNORE_BACKEND: JVM_IR // IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// ANDROID_ANNOTATIONS
// FILE: A.java // FILE: A.java
// ANDROID_ANNOTATIONS
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -1,7 +1,7 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// ANDROID_ANNOTATIONS
// FILE: A.java // FILE: A.java
// ANDROID_ANNOTATIONS
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -28,4 +28,4 @@ fun box(): String {
} }
return "OK" return "OK"
} }
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// JVM_TARGET: 1.8
// FILE: I.java // FILE: I.java
interface I { interface I {
default String ifun() { return "fail"; } default String ifun() { return "fail"; }
@@ -13,7 +14,6 @@ public class Z {
public class Zz extends Z implements I {} public class Zz extends Z implements I {}
// FILE: multipleImplFromJava.kt // FILE: multipleImplFromJava.kt
// JVM_TARGET: 1.8
class Cc : Zz() class Cc : Zz()
@@ -1,6 +1,6 @@
// FILE: Bar.java
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
// SKIP_TXT // SKIP_TXT
// FILE: Bar.java
public class Bar<K, N> { } public class Bar<K, N> { }
@@ -1,6 +1,6 @@
// FILE: Bar.java
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
// SKIP_TXT // SKIP_TXT
// FILE: Bar.java
public class Bar<K, N> { } public class Bar<K, N> { }
@@ -1,5 +1,5 @@
// FILE: Signs.java
// ANDROID_ANNOTATIONS // ANDROID_ANNOTATIONS
// FILE: Signs.java
public enum Signs { public enum Signs {
HELLO, HELLO,
@@ -64,4 +64,4 @@ fun test(){
a.<!INAPPLICABLE_CANDIDATE!>baz<!>() a.<!INAPPLICABLE_CANDIDATE!>baz<!>()
a.bam() a.bam()
} }
@@ -1,5 +1,5 @@
// FILE: Signs.java
// ANDROID_ANNOTATIONS // ANDROID_ANNOTATIONS
// FILE: Signs.java
public enum Signs { public enum Signs {
HELLO, HELLO,
@@ -64,4 +64,4 @@ fun test(){
a.baz(<!NO_VALUE_FOR_PARAMETER!>)<!> a.baz(<!NO_VALUE_FOR_PARAMETER!>)<!>
a.bam(<!NO_VALUE_FOR_PARAMETER!>)<!> a.bam(<!NO_VALUE_FOR_PARAMETER!>)<!>
} }
@@ -1,5 +1,5 @@
// FILE: A.java
// ANDROID_ANNOTATIONS // ANDROID_ANNOTATIONS
// FILE: A.java
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -1,5 +1,5 @@
// FILE: A.java
// ANDROID_ANNOTATIONS // ANDROID_ANNOTATIONS
// FILE: A.java
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -1,5 +1,5 @@
// FILE: A.java
// ANDROID_ANNOTATIONS // ANDROID_ANNOTATIONS
// FILE: A.java
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -28,4 +28,4 @@ fun test(a: A, first: B<Int>, second: B<Int?>) {
second.foo() second.foo()
second.foo(5) second.foo(5)
} }
@@ -1,5 +1,5 @@
// FILE: A.java
// ANDROID_ANNOTATIONS // ANDROID_ANNOTATIONS
// FILE: A.java
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -28,4 +28,4 @@ fun test(a: A, first: B<Int>, second: B<Int?>) {
second.foo() second.foo()
second.foo(5) second.foo(5)
} }
@@ -1,6 +1,6 @@
// FIR_IDENTICAL // FIR_IDENTICAL
// FILE: A.java
// ANDROID_ANNOTATIONS // ANDROID_ANNOTATIONS
// FILE: A.java
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -1,5 +1,5 @@
// FILE: A.java
// ANDROID_ANNOTATIONS // ANDROID_ANNOTATIONS
// FILE: A.java
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -1,5 +1,5 @@
// FILE: A.java
// ANDROID_ANNOTATIONS // ANDROID_ANNOTATIONS
// FILE: A.java
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -1,5 +1,5 @@
// FILE: A.java
// ANDROID_ANNOTATIONS // ANDROID_ANNOTATIONS
// FILE: A.java
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -24,4 +24,4 @@ fun main() {
test.missingName("arg") test.missingName("arg")
test.numberName("first") test.numberName("first")
} }
@@ -1,5 +1,5 @@
// FILE: A.java
// ANDROID_ANNOTATIONS // ANDROID_ANNOTATIONS
// FILE: A.java
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -24,4 +24,4 @@ fun main() {
test.missingName("arg") test.missingName("arg")
test.numberName("first") test.numberName("first")
} }
@@ -1,5 +1,5 @@
// FILE: A.java
// ANDROID_ANNOTATIONS // ANDROID_ANNOTATIONS
// FILE: A.java
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -1,5 +1,5 @@
// FILE: A.java
// ANDROID_ANNOTATIONS // ANDROID_ANNOTATIONS
// FILE: A.java
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -1,5 +1,5 @@
// FILE: A.java
// ANDROID_ANNOTATIONS // ANDROID_ANNOTATIONS
// FILE: A.java
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -1,5 +1,5 @@
// FILE: A.java
// ANDROID_ANNOTATIONS // ANDROID_ANNOTATIONS
// FILE: A.java
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
@@ -1,7 +1,7 @@
// FIR_IDENTICAL // FIR_IDENTICAL
// FILE: A.java
// ANDROID_ANNOTATIONS // ANDROID_ANNOTATIONS
// FILE: A.java
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
public class A { public class A {
@@ -15,4 +15,4 @@ fun main() {
test.connect("127.0.0.1", 8080) test.connect("127.0.0.1", 8080)
test.connect(host = "127.0.0.1", port = 8080) test.connect(host = "127.0.0.1", port = 8080)
test.connect(port = 8080, host = "127.0.0.1") test.connect(port = 8080, host = "127.0.0.1")
} }
@@ -1,6 +1,6 @@
// FILE: A.java
// ANDROID_ANNOTATIONS // ANDROID_ANNOTATIONS
// FILE: A.java
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
public class A { public class A {
@@ -14,4 +14,4 @@ fun main() {
test.same("hello", "world") test.same("hello", "world")
test.<!INAPPLICABLE_CANDIDATE!>same<!>(ok = "hello", ok = <!UNRESOLVED_REFERENCE!>world<!>) test.<!INAPPLICABLE_CANDIDATE!>same<!>(ok = "hello", ok = <!UNRESOLVED_REFERENCE!>world<!>)
test.<!INAPPLICABLE_CANDIDATE!>same<!>("hello", ok = "world") test.<!INAPPLICABLE_CANDIDATE!>same<!>("hello", ok = "world")
} }
@@ -1,6 +1,6 @@
// FILE: A.java
// ANDROID_ANNOTATIONS // ANDROID_ANNOTATIONS
// FILE: A.java
import kotlin.annotations.jvm.internal.*; import kotlin.annotations.jvm.internal.*;
public class A { public class A {
@@ -14,4 +14,4 @@ fun main() {
test.same("hello", "world") test.same("hello", "world")
test.same(ok = "hello", <!ARGUMENT_PASSED_TWICE!>ok<!> = <!UNRESOLVED_REFERENCE!>world<!><!NO_VALUE_FOR_PARAMETER!>)<!> test.same(ok = "hello", <!ARGUMENT_PASSED_TWICE!>ok<!> = <!UNRESOLVED_REFERENCE!>world<!><!NO_VALUE_FOR_PARAMETER!>)<!>
test.same("hello", <!ARGUMENT_PASSED_TWICE!>ok<!> = "world"<!NO_VALUE_FOR_PARAMETER!>)<!> test.same("hello", <!ARGUMENT_PASSED_TWICE!>ok<!> = "world"<!NO_VALUE_FOR_PARAMETER!>)<!>
} }

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