Introduce experimental -Xuse-javac compilation mode
In this mode, javac AST and Symbol files are used during Kotlin compilation instead of PSI / binary stuff. Later, they are reused for Java file compilation. javac in this mode is integrated into kotlinc.
This commit is contained in:
committed by
Mikhail Glukhikh
parent
c9a04fe1e2
commit
5eea3b6569
@@ -0,0 +1,7 @@
|
||||
package test;
|
||||
|
||||
public abstract class AbstractClass {
|
||||
|
||||
public abstract void implementMe();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package test
|
||||
|
||||
class AbstractClassImpl : AbstractClass() {
|
||||
|
||||
override fun implementMe() {}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package test
|
||||
|
||||
public abstract class AbstractClass {
|
||||
public constructor AbstractClass()
|
||||
public abstract fun implementMe(): kotlin.Unit
|
||||
}
|
||||
|
||||
public final class AbstractClassImpl : test.AbstractClass {
|
||||
public constructor AbstractClassImpl()
|
||||
public open fun implementMe(): kotlin.Unit
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package test;
|
||||
|
||||
public enum AbstractEnum {
|
||||
|
||||
ONE {
|
||||
@Override
|
||||
String getString() { return null; }
|
||||
};
|
||||
|
||||
abstract String getString();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun useEnum() = AbstractEnum.ONE.getString()
|
||||
@@ -0,0 +1,22 @@
|
||||
package test
|
||||
|
||||
public fun useEnum(): kotlin.String!
|
||||
|
||||
public abstract enum class AbstractEnum : kotlin.Enum<test.AbstractEnum!> {
|
||||
enum entry ONE
|
||||
|
||||
private constructor AbstractEnum()
|
||||
public final /*fake_override*/ val name: kotlin.String
|
||||
public final /*fake_override*/ val ordinal: kotlin.Int
|
||||
protected final /*fake_override*/ fun clone(): kotlin.Any
|
||||
public final /*fake_override*/ fun compareTo(/*0*/ test.AbstractEnum!): kotlin.Int
|
||||
protected/*protected and package*/ final /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
|
||||
public final /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<test.AbstractEnum!>!
|
||||
public/*package*/ abstract fun getString(): kotlin.String!
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ kotlin.String): test.AbstractEnum
|
||||
public open fun valueOf(/*0*/ kotlin.String!): test.AbstractEnum!
|
||||
public open fun values(): kotlin.Array<(out) test.AbstractEnum!>!
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<test.AbstractEnum>
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package test;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
@Target(value=ElementType.TYPE)
|
||||
public @interface AnnotationWithArguments {
|
||||
|
||||
String name();
|
||||
|
||||
String arg() default "default";
|
||||
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package test
|
||||
|
||||
@AnnotationWithArguments(name="withDefault")
|
||||
class ClassWithDefault
|
||||
|
||||
@AnnotationWithArguments(name="withoutDefault", arg="non")
|
||||
class ClassWithoutDefault
|
||||
@@ -0,0 +1,15 @@
|
||||
package test
|
||||
|
||||
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.FILE}) public final annotation class AnnotationWithArguments : kotlin.Annotation {
|
||||
public constructor AnnotationWithArguments(/*0*/ kotlin.String, /*1*/ kotlin.String = ...)
|
||||
public final val arg: kotlin.String
|
||||
public final val name: kotlin.String
|
||||
}
|
||||
|
||||
@test.AnnotationWithArguments(name = "withDefault") public final class ClassWithDefault {
|
||||
public constructor ClassWithDefault()
|
||||
}
|
||||
|
||||
@test.AnnotationWithArguments(arg = "non", name = "withoutDefault") public final class ClassWithoutDefault {
|
||||
public constructor ClassWithoutDefault()
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package test;
|
||||
|
||||
public @interface AnnotationWithField {
|
||||
|
||||
String text();
|
||||
|
||||
int ANSWER = 42;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package test
|
||||
|
||||
@AnnotationWithField(text="desc")
|
||||
class SomeClass
|
||||
@@ -0,0 +1,13 @@
|
||||
package test
|
||||
|
||||
public final annotation class AnnotationWithField : kotlin.Annotation {
|
||||
public constructor AnnotationWithField(/*0*/ kotlin.String)
|
||||
public final val text: kotlin.String
|
||||
|
||||
// Static members
|
||||
public const final val ANSWER: kotlin.Int
|
||||
}
|
||||
|
||||
@test.AnnotationWithField(text = "desc") public final class SomeClass {
|
||||
public constructor SomeClass()
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package test;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class AsteriskInImport {
|
||||
|
||||
public static List<String> getStrings() { return null; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun getStrings() = AsteriskInImport.getStrings()
|
||||
@@ -0,0 +1,10 @@
|
||||
package test
|
||||
|
||||
public fun getStrings(): kotlin.collections.(Mutable)List<kotlin.String!>!
|
||||
|
||||
public open class AsteriskInImport {
|
||||
public constructor AsteriskInImport()
|
||||
|
||||
// Static members
|
||||
public open fun getStrings(): kotlin.collections.(Mutable)List<kotlin.String!>!
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package test;
|
||||
|
||||
import test2.*;
|
||||
|
||||
public class CheckKotlinStub {
|
||||
public KotlinStub getKotlinStub() { return null; }
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package test2
|
||||
|
||||
import test.*
|
||||
|
||||
class KotlinStub
|
||||
|
||||
fun checkKotlinStub() = CheckKotlinStub().getKotlinStub()
|
||||
@@ -0,0 +1,6 @@
|
||||
package test
|
||||
|
||||
public open class CheckKotlinStub {
|
||||
public constructor CheckKotlinStub()
|
||||
public open fun getKotlinStub(): test2.KotlinStub!
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package test;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class CheckNotNull {
|
||||
|
||||
@NotNull
|
||||
public String returnNotNull() { return "42"; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun notNullable(): String = CheckNotNull().returnNotNull()
|
||||
@@ -0,0 +1,8 @@
|
||||
package test
|
||||
|
||||
public fun notNullable(): kotlin.String
|
||||
|
||||
public open class CheckNotNull {
|
||||
public constructor CheckNotNull()
|
||||
@org.jetbrains.annotations.NotNull public open fun returnNotNull(): kotlin.String
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package test;
|
||||
|
||||
public class Class {
|
||||
|
||||
private final String str;
|
||||
|
||||
public Class(String str) {
|
||||
this.str = str;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun useClass() = Class("Hello")
|
||||
@@ -0,0 +1,8 @@
|
||||
package test
|
||||
|
||||
public fun useClass(): test.Class
|
||||
|
||||
public open class Class {
|
||||
public constructor Class(/*0*/ kotlin.String!)
|
||||
private final val str: kotlin.String!
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package test;
|
||||
|
||||
public class ClassWithNestedEnum {
|
||||
|
||||
public enum NestedEnum {
|
||||
ONE, TWO, THREE;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun test() = ClassWithNestedEnum.NestedEnum.ONE
|
||||
@@ -0,0 +1,29 @@
|
||||
package test
|
||||
|
||||
public fun test(): test.ClassWithNestedEnum.NestedEnum
|
||||
|
||||
public open class ClassWithNestedEnum {
|
||||
public constructor ClassWithNestedEnum()
|
||||
|
||||
public final enum class NestedEnum : kotlin.Enum<test.ClassWithNestedEnum.NestedEnum!> {
|
||||
enum entry ONE
|
||||
|
||||
enum entry TWO
|
||||
|
||||
enum entry THREE
|
||||
|
||||
private constructor NestedEnum()
|
||||
public final /*fake_override*/ val name: kotlin.String
|
||||
public final /*fake_override*/ val ordinal: kotlin.Int
|
||||
protected final /*fake_override*/ fun clone(): kotlin.Any
|
||||
public final /*fake_override*/ fun compareTo(/*0*/ test.ClassWithNestedEnum.NestedEnum!): kotlin.Int
|
||||
protected/*protected and package*/ final /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
|
||||
public final /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<test.ClassWithNestedEnum.NestedEnum!>!
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ kotlin.String): test.ClassWithNestedEnum.NestedEnum
|
||||
public open fun valueOf(/*0*/ kotlin.String!): test.ClassWithNestedEnum.NestedEnum!
|
||||
public open fun values(): kotlin.Array<(out) test.ClassWithNestedEnum.NestedEnum!>!
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<test.ClassWithNestedEnum.NestedEnum>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package test;
|
||||
|
||||
public class ClassWithTypeParameter<T extends KotlinInterface> {
|
||||
|
||||
public ClassWithTypeParameter(T kotlinInterface) {}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package test
|
||||
|
||||
interface KotlinInterface
|
||||
|
||||
class Impl1 : KotlinInterface
|
||||
|
||||
class Impl2 : KotlinInterface
|
||||
|
||||
class Impl3 : KotlinInterface
|
||||
|
||||
fun getProducer1() = Impl1().let(::ClassWithTypeParameter)
|
||||
|
||||
fun getProducer2() = Impl2().let(::ClassWithTypeParameter)
|
||||
|
||||
fun getProducer3() = Impl3().let(::ClassWithTypeParameter)
|
||||
@@ -0,0 +1,24 @@
|
||||
package test
|
||||
|
||||
public fun getProducer1(): test.ClassWithTypeParameter<test.Impl1>
|
||||
public fun getProducer2(): test.ClassWithTypeParameter<test.Impl2>
|
||||
public fun getProducer3(): test.ClassWithTypeParameter<test.Impl3>
|
||||
|
||||
public open class ClassWithTypeParameter</*0*/ T : test.KotlinInterface!> {
|
||||
public constructor ClassWithTypeParameter</*0*/ T : test.KotlinInterface!>(/*0*/ T!)
|
||||
}
|
||||
|
||||
public final class Impl1 : test.KotlinInterface {
|
||||
public constructor Impl1()
|
||||
}
|
||||
|
||||
public final class Impl2 : test.KotlinInterface {
|
||||
public constructor Impl2()
|
||||
}
|
||||
|
||||
public final class Impl3 : test.KotlinInterface {
|
||||
public constructor Impl3()
|
||||
}
|
||||
|
||||
public interface KotlinInterface {
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package test;
|
||||
|
||||
public class CyclicDependencies {
|
||||
|
||||
public KotlinClass useKotlinClass() {
|
||||
return new KotlinClass().getKotlinClass();
|
||||
}
|
||||
|
||||
public KotlinClass2 useKotlinClass2(KotlinClass kotlinClass) {
|
||||
return new KotlinClass2();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package test
|
||||
|
||||
class KotlinClass {
|
||||
fun getKotlinClass() = KotlinClass()
|
||||
}
|
||||
|
||||
class KotlinClass2 {
|
||||
val str = "HELLO"
|
||||
}
|
||||
|
||||
fun useJavaClass() = CyclicDependencies().apply {
|
||||
useKotlinClass().let { useKotlinClass2(it) }
|
||||
}.let { it.useKotlinClass2(it.useKotlinClass()) }
|
||||
@@ -0,0 +1,19 @@
|
||||
package test
|
||||
|
||||
public fun useJavaClass(): test.KotlinClass2!
|
||||
|
||||
public open class CyclicDependencies {
|
||||
public constructor CyclicDependencies()
|
||||
public open fun useKotlinClass(): test.KotlinClass!
|
||||
public open fun useKotlinClass2(/*0*/ test.KotlinClass!): test.KotlinClass2!
|
||||
}
|
||||
|
||||
public final class KotlinClass {
|
||||
public constructor KotlinClass()
|
||||
public final fun getKotlinClass(): test.KotlinClass
|
||||
}
|
||||
|
||||
public final class KotlinClass2 {
|
||||
public constructor KotlinClass2()
|
||||
public final val str: kotlin.String
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package test;
|
||||
|
||||
public class DefaultModifier implements WithDefault {
|
||||
|
||||
}
|
||||
|
||||
interface WithDefault {
|
||||
|
||||
default String getString() { return "str"; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun useDefaultMethod() = DefaultModifier().getString()
|
||||
@@ -0,0 +1,12 @@
|
||||
package test
|
||||
|
||||
public fun useDefaultMethod(): kotlin.String!
|
||||
|
||||
public open class DefaultModifier : test.WithDefault {
|
||||
public constructor DefaultModifier()
|
||||
public open /*fake_override*/ fun getString(): kotlin.String!
|
||||
}
|
||||
|
||||
public/*package*/ interface WithDefault {
|
||||
public open fun getString(): kotlin.String!
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package test;
|
||||
|
||||
class InterfaceImpl implements Interface {
|
||||
|
||||
interface BuilderImpl extends Interface.Builder {
|
||||
@Override
|
||||
Builder setKind(Kind kind);
|
||||
}
|
||||
|
||||
Builder getBuilder() { return null; }
|
||||
|
||||
}
|
||||
|
||||
interface Interface {
|
||||
|
||||
enum Kind { DECLARATION; }
|
||||
|
||||
interface Builder {
|
||||
Builder setKind(Kind kind);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package test
|
||||
|
||||
private class Impl : InterfaceImpl() {
|
||||
|
||||
private fun kind(kind: Interface.Kind) = getBuilder().setKind(kind)
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package test
|
||||
|
||||
private final class Impl : test.InterfaceImpl {
|
||||
public constructor Impl()
|
||||
public/*package*/ open /*fake_override*/ fun getBuilder(): test.Interface.Builder!
|
||||
private final fun kind(/*0*/ test.Interface.Kind): test.Interface.Builder!
|
||||
}
|
||||
|
||||
public/*package*/ interface Interface {
|
||||
|
||||
public interface Builder {
|
||||
public abstract fun setKind(/*0*/ test.Interface.Kind!): test.Interface.Builder!
|
||||
}
|
||||
|
||||
public final enum class Kind : kotlin.Enum<test.Interface.Kind!> {
|
||||
enum entry DECLARATION
|
||||
|
||||
private constructor Kind()
|
||||
public final /*fake_override*/ val name: kotlin.String
|
||||
public final /*fake_override*/ val ordinal: kotlin.Int
|
||||
protected final /*fake_override*/ fun clone(): kotlin.Any
|
||||
public final /*fake_override*/ fun compareTo(/*0*/ test.Interface.Kind!): kotlin.Int
|
||||
protected/*protected and package*/ final /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
|
||||
public final /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<test.Interface.Kind!>!
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ kotlin.String): test.Interface.Kind
|
||||
public open fun valueOf(/*0*/ kotlin.String!): test.Interface.Kind!
|
||||
public open fun values(): kotlin.Array<(out) test.Interface.Kind!>!
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<test.Interface.Kind>
|
||||
}
|
||||
}
|
||||
|
||||
public/*package*/ open class InterfaceImpl : test.Interface {
|
||||
public/*package*/ constructor InterfaceImpl()
|
||||
public/*package*/ open fun getBuilder(): test.Interface.Builder!
|
||||
|
||||
public/*package*/ interface BuilderImpl : test.Interface.Builder {
|
||||
public abstract fun setKind(/*0*/ test.Interface.Kind!): test.Interface.Builder!
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package test;
|
||||
|
||||
public enum Enum {
|
||||
NORTH, SOUTH, WEST, EAST;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package test
|
||||
|
||||
fun checkEnum(e: Enum) = when(e) {
|
||||
Enum.SOUTH -> println(1)
|
||||
Enum.NORTH -> println(2)
|
||||
Enum.WEST -> println(3)
|
||||
Enum.EAST -> println(42)
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package test
|
||||
|
||||
public fun checkEnum(/*0*/ test.Enum): kotlin.Unit
|
||||
|
||||
public final enum class Enum : kotlin.Enum<test.Enum!> {
|
||||
enum entry NORTH
|
||||
|
||||
enum entry SOUTH
|
||||
|
||||
enum entry WEST
|
||||
|
||||
enum entry EAST
|
||||
|
||||
private constructor Enum()
|
||||
public final /*fake_override*/ val name: kotlin.String
|
||||
public final /*fake_override*/ val ordinal: kotlin.Int
|
||||
protected final /*fake_override*/ fun clone(): kotlin.Any
|
||||
public final /*fake_override*/ fun compareTo(/*0*/ test.Enum!): kotlin.Int
|
||||
protected/*protected and package*/ final /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
|
||||
public final /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<test.Enum!>!
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ kotlin.String): test.Enum
|
||||
public open fun valueOf(/*0*/ kotlin.String!): test.Enum!
|
||||
public open fun values(): kotlin.Array<(out) test.Enum!>!
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<test.Enum>
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package test;
|
||||
|
||||
public enum EnumName {
|
||||
FIRST, SECOND;
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun func(enum: EnumName) = enum.name
|
||||
@@ -0,0 +1,23 @@
|
||||
package test
|
||||
|
||||
public fun func(/*0*/ test.EnumName): kotlin.String
|
||||
|
||||
public final enum class EnumName : kotlin.Enum<test.EnumName!> {
|
||||
enum entry FIRST
|
||||
|
||||
enum entry SECOND
|
||||
|
||||
private constructor EnumName()
|
||||
public final /*fake_override*/ val name: kotlin.String
|
||||
public final /*fake_override*/ val ordinal: kotlin.Int
|
||||
protected final /*fake_override*/ fun clone(): kotlin.Any
|
||||
public final /*fake_override*/ fun compareTo(/*0*/ test.EnumName!): kotlin.Int
|
||||
protected/*protected and package*/ final /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
|
||||
public final /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<test.EnumName!>!
|
||||
|
||||
// Static members
|
||||
public final /*synthesized*/ fun valueOf(/*0*/ kotlin.String): test.EnumName
|
||||
public open fun valueOf(/*0*/ kotlin.String!): test.EnumName!
|
||||
public open fun values(): kotlin.Array<(out) test.EnumName!>!
|
||||
public final /*synthesized*/ fun values(): kotlin.Array<test.EnumName>
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package test;
|
||||
|
||||
public class Inheritance extends AbstractInheritance { }
|
||||
|
||||
abstract class AbstractInheritance implements Interface {
|
||||
|
||||
@Override public int getAnswer() { return 42; }
|
||||
|
||||
}
|
||||
|
||||
interface Interface extends I {
|
||||
@Override
|
||||
int getAnswer();
|
||||
}
|
||||
|
||||
interface I {
|
||||
int getAnswer();
|
||||
}
|
||||
|
||||
interface I2 extends I {
|
||||
|
||||
@Override
|
||||
int getAnswer();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
class InheritanceImpl : Inheritance(), I2
|
||||
@@ -0,0 +1,28 @@
|
||||
package test
|
||||
|
||||
public/*package*/ abstract class AbstractInheritance : test.Interface {
|
||||
public/*package*/ constructor AbstractInheritance()
|
||||
public open fun getAnswer(): kotlin.Int
|
||||
}
|
||||
|
||||
public/*package*/ interface I {
|
||||
public abstract fun getAnswer(): kotlin.Int
|
||||
}
|
||||
|
||||
public/*package*/ interface I2 : test.I {
|
||||
public abstract fun getAnswer(): kotlin.Int
|
||||
}
|
||||
|
||||
public open class Inheritance : test.AbstractInheritance {
|
||||
public constructor Inheritance()
|
||||
public open /*fake_override*/ fun getAnswer(): kotlin.Int
|
||||
}
|
||||
|
||||
public final class InheritanceImpl : test.Inheritance, test.I2 {
|
||||
public constructor InheritanceImpl()
|
||||
public open /*fake_override*/ fun getAnswer(): kotlin.Int
|
||||
}
|
||||
|
||||
public/*package*/ interface Interface : test.I {
|
||||
public abstract fun getAnswer(): kotlin.Int
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package test;
|
||||
|
||||
public class InheritedInner {
|
||||
|
||||
public Third.Second getSecond() { return null; }
|
||||
|
||||
public static class First {
|
||||
|
||||
public static class Second {}
|
||||
|
||||
}
|
||||
|
||||
public static class Third extends First {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun getSecond(): InheritedInner.First.Second = InheritedInner().getSecond()
|
||||
@@ -0,0 +1,20 @@
|
||||
package test
|
||||
|
||||
public fun getSecond(): test.InheritedInner.First.Second
|
||||
|
||||
public open class InheritedInner {
|
||||
public constructor InheritedInner()
|
||||
public open fun getSecond(): test.InheritedInner.First.Second!
|
||||
|
||||
public open class First {
|
||||
public constructor First()
|
||||
|
||||
public open class Second {
|
||||
public constructor Second()
|
||||
}
|
||||
}
|
||||
|
||||
public open class Third : test.InheritedInner.First {
|
||||
public constructor Third()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package test;
|
||||
|
||||
public class InnerCanonicalName {
|
||||
|
||||
public java.util.Map.Entry getEntry() { return null; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun getEntry() = InnerCanonicalName().getEntry()
|
||||
@@ -0,0 +1,8 @@
|
||||
package test
|
||||
|
||||
public fun getEntry(): kotlin.collections.(Mutable)Map.(Mutable)Entry<(raw) kotlin.Any?, (raw) kotlin.Any?>!
|
||||
|
||||
public open class InnerCanonicalName {
|
||||
public constructor InnerCanonicalName()
|
||||
public open fun getEntry(): kotlin.collections.(Mutable)Map.(Mutable)Entry<(raw) kotlin.Any?, (raw) kotlin.Any?>!
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package test;
|
||||
|
||||
public class InnerClass {
|
||||
|
||||
class Inner {
|
||||
public void doNothing() {}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun useInnerClass() = InnerClass().Inner().doNothing()
|
||||
@@ -0,0 +1,12 @@
|
||||
package test
|
||||
|
||||
public fun useInnerClass(): kotlin.Unit
|
||||
|
||||
public open class InnerClass {
|
||||
public constructor InnerClass()
|
||||
|
||||
public/*package*/ open inner class Inner {
|
||||
public/*package*/ constructor Inner()
|
||||
public open fun doNothing(): kotlin.Unit
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package test;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
class InnerClassFromAsteriskImport {
|
||||
|
||||
public HashMap.Entry getEntry() { return null; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun getEntry() = InnerClassFromAsteriskImport().getEntry()
|
||||
@@ -0,0 +1,8 @@
|
||||
package test
|
||||
|
||||
public fun getEntry(): kotlin.collections.(Mutable)Map.(Mutable)Entry<(raw) kotlin.Any?, (raw) kotlin.Any?>!
|
||||
|
||||
public/*package*/ open class InnerClassFromAsteriskImport {
|
||||
public/*package*/ constructor InnerClassFromAsteriskImport()
|
||||
public open fun getEntry(): kotlin.collections.(Mutable)Map.(Mutable)Entry<(raw) kotlin.Any?, (raw) kotlin.Any?>!
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package test;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class InnerClassFromImport {
|
||||
|
||||
public Map.Entry getEntry() { return null; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun getEntry() = InnerClassFromImport().getEntry()
|
||||
@@ -0,0 +1,8 @@
|
||||
package test
|
||||
|
||||
public fun getEntry(): kotlin.collections.(Mutable)Map.(Mutable)Entry<(raw) kotlin.Any?, (raw) kotlin.Any?>!
|
||||
|
||||
public open class InnerClassFromImport {
|
||||
public constructor InnerClassFromImport()
|
||||
public open fun getEntry(): kotlin.collections.(Mutable)Map.(Mutable)Entry<(raw) kotlin.Any?, (raw) kotlin.Any?>!
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package test;
|
||||
|
||||
interface Interface {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package test
|
||||
|
||||
class InterfaceImpl : Interface {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package test
|
||||
|
||||
public/*package*/ interface Interface {
|
||||
}
|
||||
|
||||
public final class InterfaceImpl : test.Interface {
|
||||
public constructor InterfaceImpl()
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package test;
|
||||
|
||||
public interface InterfaceField {
|
||||
|
||||
String STRING = "str";
|
||||
|
||||
String func();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package test
|
||||
|
||||
fun useField() = InterfaceField.STRING
|
||||
|
||||
fun implementInterface() = object : InterfaceField {
|
||||
override fun func() = "str"
|
||||
}
|
||||
|
||||
fun useFunc() = implementInterface().func()
|
||||
@@ -0,0 +1,12 @@
|
||||
package test
|
||||
|
||||
public fun implementInterface(): test.InterfaceField
|
||||
public fun useField(): kotlin.String
|
||||
public fun useFunc(): kotlin.String!
|
||||
|
||||
public interface InterfaceField {
|
||||
public abstract fun func(): kotlin.String!
|
||||
|
||||
// Static members
|
||||
public const final val STRING: kotlin.String
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package test;
|
||||
|
||||
interface InterfaceMemberClass {
|
||||
|
||||
class MemberClass {
|
||||
public String func() { return "str"; }
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
private fun useInterfaceMemberClass() = InterfaceMemberClass.MemberClass().func()
|
||||
@@ -0,0 +1,11 @@
|
||||
package test
|
||||
|
||||
private fun useInterfaceMemberClass(): kotlin.String!
|
||||
|
||||
public/*package*/ interface InterfaceMemberClass {
|
||||
|
||||
public open class MemberClass {
|
||||
public constructor MemberClass()
|
||||
public open fun func(): kotlin.String!
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package test;
|
||||
|
||||
public interface InterfaceWithDefault {
|
||||
|
||||
default String defaultMethod() { return "str"; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
class InterfaceWithDefaultImpl : InterfaceWithDefault
|
||||
@@ -0,0 +1,10 @@
|
||||
package test
|
||||
|
||||
public interface InterfaceWithDefault {
|
||||
public open fun defaultMethod(): kotlin.String!
|
||||
}
|
||||
|
||||
public final class InterfaceWithDefaultImpl : test.InterfaceWithDefault {
|
||||
public constructor InterfaceWithDefaultImpl()
|
||||
public open /*fake_override*/ fun defaultMethod(): kotlin.String!
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
abstract class ListImpl extends ArrayList<String> {
|
||||
|
||||
public abstract int func();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package test
|
||||
|
||||
fun useListImpl() = object : ListImpl() {
|
||||
override fun func() = 42
|
||||
}.func()
|
||||
@@ -0,0 +1,66 @@
|
||||
package test
|
||||
|
||||
public fun useListImpl(): kotlin.Int
|
||||
|
||||
public/*package*/ abstract class ListImpl : java.util.ArrayList<kotlin.String!> {
|
||||
public/*package*/ constructor ListImpl()
|
||||
invisible_fake final /*fake_override*/ var elementData: kotlin.Array<(out) kotlin.Any!>!
|
||||
protected/*protected and package*/ final /*fake_override*/ var modCount: kotlin.Int
|
||||
invisible_fake final /*fake_override*/ var size: kotlin.Int
|
||||
public open /*fake_override*/ val size: kotlin.Int
|
||||
public open /*fake_override*/ fun add(/*0*/ kotlin.Int, /*1*/ kotlin.String!): kotlin.Unit
|
||||
public open /*fake_override*/ fun add(/*0*/ kotlin.String!): kotlin.Boolean
|
||||
public open /*fake_override*/ fun addAll(/*0*/ kotlin.Int, /*1*/ kotlin.collections.Collection<kotlin.String!>): kotlin.Boolean
|
||||
public open /*fake_override*/ fun addAll(/*0*/ kotlin.collections.Collection<kotlin.String!>): kotlin.Boolean
|
||||
invisible_fake open /*fake_override*/ fun batchRemove(/*0*/ kotlin.collections.(Mutable)Collection<*>!, /*1*/ kotlin.Boolean): kotlin.Boolean
|
||||
public open /*fake_override*/ fun clear(): kotlin.Unit
|
||||
public open /*fake_override*/ fun clone(): kotlin.Any
|
||||
public open /*fake_override*/ fun contains(/*0*/ kotlin.String!): kotlin.Boolean
|
||||
public open /*fake_override*/ fun containsAll(/*0*/ kotlin.collections.Collection<kotlin.String!>): kotlin.Boolean
|
||||
invisible_fake open /*fake_override*/ fun elementData(/*0*/ kotlin.Int): kotlin.String!
|
||||
public open /*fake_override*/ fun ensureCapacity(/*0*/ kotlin.Int): kotlin.Unit
|
||||
invisible_fake open /*fake_override*/ fun ensureCapacityInternal(/*0*/ kotlin.Int): kotlin.Unit
|
||||
invisible_fake open /*fake_override*/ fun ensureExplicitCapacity(/*0*/ kotlin.Int): kotlin.Unit
|
||||
invisible_fake open /*fake_override*/ fun fastRemove(/*0*/ kotlin.Int): kotlin.Unit
|
||||
public open /*fake_override*/ fun forEach(/*0*/ java.util.function.Consumer<in kotlin.String!>!): kotlin.Unit
|
||||
public abstract fun func(): kotlin.Int
|
||||
public open /*fake_override*/ fun get(/*0*/ kotlin.Int): kotlin.String!
|
||||
invisible_fake open /*fake_override*/ fun grow(/*0*/ kotlin.Int): kotlin.Unit
|
||||
public open /*fake_override*/ fun indexOf(/*0*/ kotlin.String!): kotlin.Int
|
||||
public open /*fake_override*/ fun isEmpty(): kotlin.Boolean
|
||||
public open /*fake_override*/ fun iterator(): kotlin.collections.MutableIterator<kotlin.String!>
|
||||
public open /*fake_override*/ fun lastIndexOf(/*0*/ kotlin.String!): kotlin.Int
|
||||
public open /*fake_override*/ fun listIterator(): kotlin.collections.MutableListIterator<kotlin.String!>
|
||||
public open /*fake_override*/ fun listIterator(/*0*/ kotlin.Int): kotlin.collections.MutableListIterator<kotlin.String!>
|
||||
invisible_fake open /*fake_override*/ fun outOfBoundsMsg(/*0*/ kotlin.Int): kotlin.String!
|
||||
public open /*fake_override*/ fun parallelStream(): java.util.stream.Stream<kotlin.String!>
|
||||
invisible_fake open /*fake_override*/ fun rangeCheck(/*0*/ kotlin.Int): kotlin.Unit
|
||||
invisible_fake open /*fake_override*/ fun rangeCheckForAdd(/*0*/ kotlin.Int): kotlin.Unit
|
||||
invisible_fake open /*fake_override*/ fun readObject(/*0*/ java.io.ObjectInputStream!): kotlin.Unit
|
||||
public open /*fake_override*/ fun remove(/*0*/ kotlin.String!): kotlin.Boolean
|
||||
public open /*fake_override*/ fun removeAll(/*0*/ kotlin.collections.Collection<kotlin.String!>): kotlin.Boolean
|
||||
public open /*fake_override*/ fun removeAt(/*0*/ kotlin.Int): kotlin.String!
|
||||
public open /*fake_override*/ fun removeIf(/*0*/ java.util.function.Predicate<in kotlin.String!>): kotlin.Boolean
|
||||
protected/*protected and package*/ open /*fake_override*/ fun removeRange(/*0*/ kotlin.Int, /*1*/ kotlin.Int): kotlin.Unit
|
||||
public open /*fake_override*/ fun replaceAll(/*0*/ java.util.function.UnaryOperator<kotlin.String!>): kotlin.Unit
|
||||
public open /*fake_override*/ fun retainAll(/*0*/ kotlin.collections.Collection<kotlin.String!>): kotlin.Boolean
|
||||
public open /*fake_override*/ fun set(/*0*/ kotlin.Int, /*1*/ kotlin.String!): kotlin.String!
|
||||
public open /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun sort(/*0*/ java.util.Comparator<in kotlin.String!>!): kotlin.Unit
|
||||
public open /*fake_override*/ fun spliterator(): java.util.Spliterator<kotlin.String!>
|
||||
public open /*fake_override*/ fun stream(): java.util.stream.Stream<kotlin.String!>
|
||||
public open /*fake_override*/ fun subList(/*0*/ kotlin.Int, /*1*/ kotlin.Int): kotlin.collections.MutableList<kotlin.String!>
|
||||
public open /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
|
||||
public open /*fake_override*/ fun </*0*/ T : kotlin.Any!> toArray(/*0*/ kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
|
||||
public open /*fake_override*/ fun trimToSize(): kotlin.Unit
|
||||
invisible_fake open /*fake_override*/ fun writeObject(/*0*/ java.io.ObjectOutputStream!): kotlin.Unit
|
||||
|
||||
// Static members
|
||||
invisible_fake final /*fake_override*/ val DEFAULTCAPACITY_EMPTY_ELEMENTDATA: kotlin.Array<(out) kotlin.Any!>!
|
||||
invisible_fake const final /*fake_override*/ val DEFAULT_CAPACITY: kotlin.Int
|
||||
invisible_fake final /*fake_override*/ val EMPTY_ELEMENTDATA: kotlin.Array<(out) kotlin.Any!>!
|
||||
invisible_fake const final /*fake_override*/ val MAX_ARRAY_SIZE: kotlin.Int
|
||||
invisible_fake const final /*fake_override*/ val serialVersionUID: kotlin.Long
|
||||
invisible_fake open /*fake_override*/ fun </*0*/ T : kotlin.Any!> finishToArray(/*0*/ kotlin.Array<(out) T!>!, /*1*/ kotlin.collections.(Mutable)Iterator<*>!): kotlin.Array<(out) T!>!
|
||||
invisible_fake open /*fake_override*/ fun hugeCapacity(/*0*/ kotlin.Int): kotlin.Int
|
||||
invisible_fake open /*fake_override*/ fun subListRangeCheck(/*0*/ kotlin.Int, /*1*/ kotlin.Int, /*2*/ kotlin.Int): kotlin.Unit
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package test;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public class MapExample<K, V> extends HashMap<K, V> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
class MapImpl<V> : MapExample<String, V>(), MutableMap<String, V>
|
||||
@@ -0,0 +1,125 @@
|
||||
package test
|
||||
|
||||
public open class MapExample</*0*/ K : kotlin.Any!, /*1*/ V : kotlin.Any!> : java.util.HashMap<K!, V!> {
|
||||
public constructor MapExample</*0*/ K : kotlin.Any!, /*1*/ V : kotlin.Any!>()
|
||||
public open /*fake_override*/ val entries: kotlin.collections.MutableSet<kotlin.collections.MutableMap.MutableEntry<K!, V!>>
|
||||
invisible_fake final /*fake_override*/ var entrySet: kotlin.collections.(Mutable)Set<kotlin.collections.(Mutable)Map.(Mutable)Entry<K!, V!>!>!
|
||||
invisible_fake final /*fake_override*/ var keySet: kotlin.collections.(Mutable)Set<K!>!
|
||||
public open /*fake_override*/ val keys: kotlin.collections.MutableSet<K!>
|
||||
invisible_fake final /*fake_override*/ val loadFactor: kotlin.Float
|
||||
invisible_fake final /*fake_override*/ var modCount: kotlin.Int
|
||||
invisible_fake final /*fake_override*/ var size: kotlin.Int
|
||||
public open /*fake_override*/ val size: kotlin.Int
|
||||
invisible_fake final /*fake_override*/ var table: kotlin.Array<(out) java.util.HashMap.Node<K!, V!>!>!
|
||||
invisible_fake final /*fake_override*/ var threshold: kotlin.Int
|
||||
invisible_fake final /*fake_override*/ var values: kotlin.collections.(Mutable)Collection<V!>!
|
||||
public open /*fake_override*/ val values: kotlin.collections.MutableCollection<V!>
|
||||
invisible_fake open /*fake_override*/ fun afterNodeAccess(/*0*/ java.util.HashMap.Node<K!, V!>!): kotlin.Unit
|
||||
invisible_fake open /*fake_override*/ fun afterNodeInsertion(/*0*/ kotlin.Boolean): kotlin.Unit
|
||||
invisible_fake open /*fake_override*/ fun afterNodeRemoval(/*0*/ java.util.HashMap.Node<K!, V!>!): kotlin.Unit
|
||||
invisible_fake final /*fake_override*/ fun capacity(): kotlin.Int
|
||||
public open /*fake_override*/ fun clear(): kotlin.Unit
|
||||
public open /*fake_override*/ fun clone(): kotlin.Any
|
||||
public open /*fake_override*/ fun compute(/*0*/ K!, /*1*/ java.util.function.BiFunction<in K!, in V?, out V?>): V?
|
||||
public open /*fake_override*/ fun computeIfAbsent(/*0*/ K!, /*1*/ java.util.function.Function<in K!, out V!>): V!
|
||||
public open /*fake_override*/ fun computeIfPresent(/*0*/ K!, /*1*/ java.util.function.BiFunction<in K!, in V, out V?>): V?
|
||||
public open /*fake_override*/ fun containsKey(/*0*/ K!): kotlin.Boolean
|
||||
public open /*fake_override*/ fun containsValue(/*0*/ V!): kotlin.Boolean
|
||||
public open /*fake_override*/ fun forEach(/*0*/ java.util.function.BiConsumer<in K!, in V!>): kotlin.Unit
|
||||
public open /*fake_override*/ fun get(/*0*/ K!): V?
|
||||
invisible_fake final /*fake_override*/ fun getNode(/*0*/ kotlin.Int, /*1*/ kotlin.Any!): java.util.HashMap.Node<K!, V!>!
|
||||
public open /*fake_override*/ fun getOrDefault(/*0*/ K!, /*1*/ V!): V!
|
||||
invisible_fake open /*fake_override*/ fun internalWriteEntries(/*0*/ java.io.ObjectOutputStream!): kotlin.Unit
|
||||
public open /*fake_override*/ fun isEmpty(): kotlin.Boolean
|
||||
invisible_fake final /*fake_override*/ fun loadFactor(): kotlin.Float
|
||||
public open /*fake_override*/ fun merge(/*0*/ K!, /*1*/ V, /*2*/ java.util.function.BiFunction<in V, in V, out V?>): V?
|
||||
invisible_fake open /*fake_override*/ fun newNode(/*0*/ kotlin.Int, /*1*/ K!, /*2*/ V!, /*3*/ java.util.HashMap.Node<K!, V!>!): java.util.HashMap.Node<K!, V!>!
|
||||
invisible_fake open /*fake_override*/ fun newTreeNode(/*0*/ kotlin.Int, /*1*/ K!, /*2*/ V!, /*3*/ java.util.HashMap.Node<K!, V!>!): java.util.HashMap.TreeNode<K!, V!>!
|
||||
public open /*fake_override*/ fun put(/*0*/ K!, /*1*/ V!): V?
|
||||
public open /*fake_override*/ fun putAll(/*0*/ kotlin.collections.Map<out K!, V!>): kotlin.Unit
|
||||
public open /*fake_override*/ fun putIfAbsent(/*0*/ K!, /*1*/ V!): V?
|
||||
invisible_fake final /*fake_override*/ fun putMapEntries(/*0*/ (kotlin.collections.MutableMap<out K!, out V!>..kotlin.collections.Map<out K!, V!>?), /*1*/ kotlin.Boolean): kotlin.Unit
|
||||
invisible_fake final /*fake_override*/ fun putVal(/*0*/ kotlin.Int, /*1*/ K!, /*2*/ V!, /*3*/ kotlin.Boolean, /*4*/ kotlin.Boolean): V!
|
||||
invisible_fake open /*fake_override*/ fun readObject(/*0*/ java.io.ObjectInputStream!): kotlin.Unit
|
||||
invisible_fake open /*fake_override*/ fun reinitialize(): kotlin.Unit
|
||||
public open /*fake_override*/ fun remove(/*0*/ K!): V?
|
||||
public open /*fake_override*/ fun remove(/*0*/ K!, /*1*/ V!): kotlin.Boolean
|
||||
invisible_fake final /*fake_override*/ fun removeNode(/*0*/ kotlin.Int, /*1*/ kotlin.Any!, /*2*/ kotlin.Any!, /*3*/ kotlin.Boolean, /*4*/ kotlin.Boolean): java.util.HashMap.Node<K!, V!>!
|
||||
public open /*fake_override*/ fun replace(/*0*/ K!, /*1*/ V!): V?
|
||||
public open /*fake_override*/ fun replace(/*0*/ K!, /*1*/ V!, /*2*/ V!): kotlin.Boolean
|
||||
public open /*fake_override*/ fun replaceAll(/*0*/ java.util.function.BiFunction<in K!, in V!, out V!>): kotlin.Unit
|
||||
invisible_fake open /*fake_override*/ fun replacementNode(/*0*/ java.util.HashMap.Node<K!, V!>!, /*1*/ java.util.HashMap.Node<K!, V!>!): java.util.HashMap.Node<K!, V!>!
|
||||
invisible_fake open /*fake_override*/ fun replacementTreeNode(/*0*/ java.util.HashMap.Node<K!, V!>!, /*1*/ java.util.HashMap.Node<K!, V!>!): java.util.HashMap.TreeNode<K!, V!>!
|
||||
invisible_fake final /*fake_override*/ fun resize(): kotlin.Array<(out) java.util.HashMap.Node<K!, V!>!>!
|
||||
invisible_fake final /*fake_override*/ fun treeifyBin(/*0*/ kotlin.Array<(out) java.util.HashMap.Node<K!, V!>!>!, /*1*/ kotlin.Int): kotlin.Unit
|
||||
invisible_fake open /*fake_override*/ fun writeObject(/*0*/ java.io.ObjectOutputStream!): kotlin.Unit
|
||||
|
||||
// Static members
|
||||
invisible_fake const final /*fake_override*/ val DEFAULT_INITIAL_CAPACITY: kotlin.Int
|
||||
invisible_fake const final /*fake_override*/ val DEFAULT_LOAD_FACTOR: kotlin.Float
|
||||
invisible_fake const final /*fake_override*/ val MAXIMUM_CAPACITY: kotlin.Int
|
||||
invisible_fake const final /*fake_override*/ val MIN_TREEIFY_CAPACITY: kotlin.Int
|
||||
invisible_fake const final /*fake_override*/ val TREEIFY_THRESHOLD: kotlin.Int
|
||||
invisible_fake const final /*fake_override*/ val UNTREEIFY_THRESHOLD: kotlin.Int
|
||||
invisible_fake const final /*fake_override*/ val serialVersionUID: kotlin.Long
|
||||
invisible_fake open /*fake_override*/ fun comparableClassFor(/*0*/ kotlin.Any!): java.lang.Class<*>!
|
||||
invisible_fake open /*fake_override*/ fun compareComparables(/*0*/ java.lang.Class<*>!, /*1*/ kotlin.Any!, /*2*/ kotlin.Any!): kotlin.Int
|
||||
invisible_fake open /*fake_override*/ fun eq(/*0*/ kotlin.Any!, /*1*/ kotlin.Any!): kotlin.Boolean
|
||||
invisible_fake final /*fake_override*/ fun hash(/*0*/ kotlin.Any!): kotlin.Int
|
||||
invisible_fake final /*fake_override*/ fun tableSizeFor(/*0*/ kotlin.Int): kotlin.Int
|
||||
}
|
||||
|
||||
public final class MapImpl</*0*/ V> : test.MapExample<kotlin.String, V>, kotlin.collections.MutableMap<kotlin.String, V> {
|
||||
public constructor MapImpl</*0*/ V>()
|
||||
public open /*fake_override*/ val entries: kotlin.collections.MutableSet<kotlin.collections.MutableMap.MutableEntry<kotlin.String!, V!>>
|
||||
invisible_fake final /*fake_override*/ var entrySet: kotlin.collections.(Mutable)Set<kotlin.collections.(Mutable)Map.(Mutable)Entry<kotlin.String!, V!>!>!
|
||||
invisible_fake final /*fake_override*/ var keySet: kotlin.collections.(Mutable)Set<kotlin.String!>!
|
||||
public open /*fake_override*/ val keys: kotlin.collections.MutableSet<kotlin.String!>
|
||||
invisible_fake final /*fake_override*/ val loadFactor: kotlin.Float
|
||||
invisible_fake final /*fake_override*/ var modCount: kotlin.Int
|
||||
invisible_fake final /*fake_override*/ var size: kotlin.Int
|
||||
public open /*fake_override*/ val size: kotlin.Int
|
||||
invisible_fake final /*fake_override*/ var table: kotlin.Array<(out) java.util.HashMap.Node<kotlin.String!, V!>!>!
|
||||
invisible_fake final /*fake_override*/ var threshold: kotlin.Int
|
||||
invisible_fake final /*fake_override*/ var values: kotlin.collections.(Mutable)Collection<V!>!
|
||||
public open /*fake_override*/ val values: kotlin.collections.MutableCollection<V!>
|
||||
invisible_fake open /*fake_override*/ fun afterNodeAccess(/*0*/ java.util.HashMap.Node<kotlin.String!, V!>!): kotlin.Unit
|
||||
invisible_fake open /*fake_override*/ fun afterNodeInsertion(/*0*/ kotlin.Boolean): kotlin.Unit
|
||||
invisible_fake open /*fake_override*/ fun afterNodeRemoval(/*0*/ java.util.HashMap.Node<kotlin.String!, V!>!): kotlin.Unit
|
||||
invisible_fake final /*fake_override*/ fun capacity(): kotlin.Int
|
||||
public open /*fake_override*/ fun clear(): kotlin.Unit
|
||||
public open /*fake_override*/ fun clone(): kotlin.Any
|
||||
public open /*fake_override*/ fun compute(/*0*/ kotlin.String!, /*1*/ java.util.function.BiFunction<in kotlin.String!, in V?, out V?>): V?
|
||||
public open /*fake_override*/ fun computeIfAbsent(/*0*/ kotlin.String, /*1*/ java.util.function.Function<in kotlin.String, out V>): V
|
||||
public open /*fake_override*/ fun computeIfPresent(/*0*/ kotlin.String!, /*1*/ java.util.function.BiFunction<in kotlin.String!, in V, out V?>): V?
|
||||
public open /*fake_override*/ fun containsKey(/*0*/ kotlin.String!): kotlin.Boolean
|
||||
public open /*fake_override*/ fun containsValue(/*0*/ V!): kotlin.Boolean
|
||||
public open /*fake_override*/ fun forEach(/*0*/ java.util.function.BiConsumer<in kotlin.String!, in V!>): kotlin.Unit
|
||||
public open /*fake_override*/ fun get(/*0*/ kotlin.String!): V?
|
||||
invisible_fake final /*fake_override*/ fun getNode(/*0*/ kotlin.Int, /*1*/ kotlin.Any!): java.util.HashMap.Node<kotlin.String!, V!>!
|
||||
@kotlin.SinceKotlin(version = "1.1") @kotlin.internal.PlatformDependent public open /*fake_override*/ fun getOrDefault(/*0*/ kotlin.String, /*1*/ V): V
|
||||
invisible_fake open /*fake_override*/ fun internalWriteEntries(/*0*/ java.io.ObjectOutputStream!): kotlin.Unit
|
||||
public open /*fake_override*/ fun isEmpty(): kotlin.Boolean
|
||||
invisible_fake final /*fake_override*/ fun loadFactor(): kotlin.Float
|
||||
public open /*fake_override*/ fun merge(/*0*/ kotlin.String!, /*1*/ V, /*2*/ java.util.function.BiFunction<in V, in V, out V?>): V?
|
||||
invisible_fake open /*fake_override*/ fun newNode(/*0*/ kotlin.Int, /*1*/ kotlin.String!, /*2*/ V!, /*3*/ java.util.HashMap.Node<kotlin.String!, V!>!): java.util.HashMap.Node<kotlin.String!, V!>!
|
||||
invisible_fake open /*fake_override*/ fun newTreeNode(/*0*/ kotlin.Int, /*1*/ kotlin.String!, /*2*/ V!, /*3*/ java.util.HashMap.Node<kotlin.String!, V!>!): java.util.HashMap.TreeNode<kotlin.String!, V!>!
|
||||
public open /*fake_override*/ fun put(/*0*/ kotlin.String!, /*1*/ V!): V?
|
||||
public open /*fake_override*/ fun putAll(/*0*/ kotlin.collections.Map<out kotlin.String!, V!>): kotlin.Unit
|
||||
public open /*fake_override*/ fun putIfAbsent(/*0*/ kotlin.String!, /*1*/ V!): V?
|
||||
invisible_fake final /*fake_override*/ fun putMapEntries(/*0*/ (kotlin.collections.MutableMap<out kotlin.String!, out V!>..kotlin.collections.Map<out kotlin.String!, V!>?), /*1*/ kotlin.Boolean): kotlin.Unit
|
||||
invisible_fake final /*fake_override*/ fun putVal(/*0*/ kotlin.Int, /*1*/ kotlin.String!, /*2*/ V!, /*3*/ kotlin.Boolean, /*4*/ kotlin.Boolean): V!
|
||||
invisible_fake open /*fake_override*/ fun readObject(/*0*/ java.io.ObjectInputStream!): kotlin.Unit
|
||||
invisible_fake open /*fake_override*/ fun reinitialize(): kotlin.Unit
|
||||
public open /*fake_override*/ fun remove(/*0*/ kotlin.String!): V?
|
||||
public open /*fake_override*/ fun remove(/*0*/ kotlin.String!, /*1*/ V!): kotlin.Boolean
|
||||
invisible_fake final /*fake_override*/ fun removeNode(/*0*/ kotlin.Int, /*1*/ kotlin.Any!, /*2*/ kotlin.Any!, /*3*/ kotlin.Boolean, /*4*/ kotlin.Boolean): java.util.HashMap.Node<kotlin.String!, V!>!
|
||||
public open /*fake_override*/ fun replace(/*0*/ kotlin.String!, /*1*/ V!): V?
|
||||
public open /*fake_override*/ fun replace(/*0*/ kotlin.String!, /*1*/ V!, /*2*/ V!): kotlin.Boolean
|
||||
public open /*fake_override*/ fun replaceAll(/*0*/ java.util.function.BiFunction<in kotlin.String!, in V!, out V!>): kotlin.Unit
|
||||
invisible_fake open /*fake_override*/ fun replacementNode(/*0*/ java.util.HashMap.Node<kotlin.String!, V!>!, /*1*/ java.util.HashMap.Node<kotlin.String!, V!>!): java.util.HashMap.Node<kotlin.String!, V!>!
|
||||
invisible_fake open /*fake_override*/ fun replacementTreeNode(/*0*/ java.util.HashMap.Node<kotlin.String!, V!>!, /*1*/ java.util.HashMap.Node<kotlin.String!, V!>!): java.util.HashMap.TreeNode<kotlin.String!, V!>!
|
||||
invisible_fake final /*fake_override*/ fun resize(): kotlin.Array<(out) java.util.HashMap.Node<kotlin.String!, V!>!>!
|
||||
invisible_fake final /*fake_override*/ fun treeifyBin(/*0*/ kotlin.Array<(out) java.util.HashMap.Node<kotlin.String!, V!>!>!, /*1*/ kotlin.Int): kotlin.Unit
|
||||
invisible_fake open /*fake_override*/ fun writeObject(/*0*/ java.io.ObjectOutputStream!): kotlin.Unit
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package test;
|
||||
|
||||
class Method {
|
||||
public static String method() { return "method()"; }
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun method() = Method.method()
|
||||
@@ -0,0 +1,10 @@
|
||||
package test
|
||||
|
||||
public fun method(): kotlin.String!
|
||||
|
||||
public/*package*/ open class Method {
|
||||
public/*package*/ constructor Method()
|
||||
|
||||
// Static members
|
||||
public open fun method(): kotlin.String!
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package test;
|
||||
|
||||
public class MethodWithArgument {
|
||||
|
||||
public static void method(KotlinClass kotlinClass) {}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package test
|
||||
|
||||
class KotlinClass
|
||||
|
||||
fun method() = MethodWithArgument.method(KotlinClass())
|
||||
@@ -0,0 +1,14 @@
|
||||
package test
|
||||
|
||||
public fun method(): kotlin.Unit
|
||||
|
||||
public final class KotlinClass {
|
||||
public constructor KotlinClass()
|
||||
}
|
||||
|
||||
public open class MethodWithArgument {
|
||||
public constructor MethodWithArgument()
|
||||
|
||||
// Static members
|
||||
public open fun method(/*0*/ test.KotlinClass!): kotlin.Unit
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package test;
|
||||
|
||||
class MethodWithSeveralTypeParameters {
|
||||
|
||||
public static <T extends CharSequence, N extends Number> N method(T str, N number) { return null; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun func() = MethodWithSeveralTypeParameters.method("str", 15)
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
package test
|
||||
|
||||
public fun func(): kotlin.Int!
|
||||
|
||||
public/*package*/ open class MethodWithSeveralTypeParameters {
|
||||
public/*package*/ constructor MethodWithSeveralTypeParameters()
|
||||
|
||||
// Static members
|
||||
public open fun </*0*/ T : kotlin.CharSequence!, /*1*/ N : kotlin.Number!> method(/*0*/ T!, /*1*/ N!): N!
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package test;
|
||||
|
||||
public class MethodWithTypeParameter {
|
||||
|
||||
public static <T extends KotlinInterface> void method(T t) {}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package test
|
||||
|
||||
interface KotlinInterface
|
||||
|
||||
object Impl : KotlinInterface
|
||||
|
||||
fun useMethod() = MethodWithTypeParameter.method(Impl)
|
||||
@@ -0,0 +1,17 @@
|
||||
package test
|
||||
|
||||
public fun useMethod(): kotlin.Unit
|
||||
|
||||
public object Impl : test.KotlinInterface {
|
||||
private constructor Impl()
|
||||
}
|
||||
|
||||
public interface KotlinInterface {
|
||||
}
|
||||
|
||||
public open class MethodWithTypeParameter {
|
||||
public constructor MethodWithTypeParameter()
|
||||
|
||||
// Static members
|
||||
public open fun </*0*/ T : test.KotlinInterface!> method(/*0*/ T!): kotlin.Unit
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package test;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
public class MethodWithWildcard<V> {
|
||||
|
||||
public Collection<V> method(Collection<? extends V> c) { return null; }
|
||||
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package test
|
||||
|
||||
fun useMethodWithWildcard() =
|
||||
MethodWithWildcard<CharSequence>().method(emptyList<String>())
|
||||
@@ -0,0 +1,8 @@
|
||||
package test
|
||||
|
||||
public fun useMethodWithWildcard(): kotlin.collections.(Mutable)Collection<kotlin.CharSequence!>!
|
||||
|
||||
public open class MethodWithWildcard</*0*/ V : kotlin.Any!> {
|
||||
public constructor MethodWithWildcard</*0*/ V : kotlin.Any!>()
|
||||
public open fun method(/*0*/ (kotlin.collections.MutableCollection<out V!>..kotlin.collections.Collection<V!>?)): kotlin.collections.(Mutable)Collection<V!>!
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package test;
|
||||
|
||||
public class Nesting {
|
||||
|
||||
public test.Nesting.Second.Third.FourthImpl getImpl() { return null; }
|
||||
|
||||
public static final class Second {
|
||||
|
||||
public static final class Third {
|
||||
|
||||
public interface Fourth {
|
||||
public boolean isImplemented();
|
||||
}
|
||||
|
||||
public static final class FourthImpl implements Fourth {
|
||||
|
||||
@Override
|
||||
public boolean isImplemented() { return true; }
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
fun getImpl(): Nesting.Second.Third.Fourth = Nesting().getImpl()
|
||||
@@ -0,0 +1,25 @@
|
||||
package test
|
||||
|
||||
public fun getImpl(): test.Nesting.Second.Third.Fourth
|
||||
|
||||
public open class Nesting {
|
||||
public constructor Nesting()
|
||||
public open fun getImpl(): test.Nesting.Second.Third.FourthImpl!
|
||||
|
||||
public final class Second {
|
||||
public constructor Second()
|
||||
|
||||
public final class Third {
|
||||
public constructor Third()
|
||||
|
||||
public interface Fourth {
|
||||
public abstract fun isImplemented(): kotlin.Boolean
|
||||
}
|
||||
|
||||
public final class FourthImpl : test.Nesting.Second.Third.Fourth {
|
||||
public constructor FourthImpl()
|
||||
public open fun isImplemented(): kotlin.Boolean
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class RawReturnType {
|
||||
|
||||
public static List getRawList(List<String> list) { return null; }
|
||||
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user