Load additional JDK functions into built-ins member scope

#KT-5990 Fixed
 #KT-7127 Fixed
 #KT-10370 Fixed
This commit is contained in:
Denis Zharkov
2016-04-06 16:35:50 +03:00
parent 137847e0c9
commit 5bc5722051
63 changed files with 3395 additions and 147 deletions
@@ -28,5 +28,4 @@ class InstanceComponentDescriptor(val instance: Any) : ComponentDescriptor {
override fun toString(): String {
return "Instance: ${instance.javaClass.simpleName}"
}
}
}
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.analyzer.AnalysisResult;
import org.jetbrains.kotlin.context.ContextKt;
import org.jetbrains.kotlin.context.ModuleContext;
import org.jetbrains.kotlin.context.MutableModuleContext;
import org.jetbrains.kotlin.context.ProjectContext;
import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
import org.jetbrains.kotlin.descriptors.PackageFragmentProvider;
import org.jetbrains.kotlin.descriptors.PackagePartProvider;
@@ -161,9 +162,13 @@ public enum TopDownAnalyzerFacadeForJVM {
@NotNull
public static MutableModuleContext createContextWithSealedModule(@NotNull Project project, @NotNull String moduleName) {
ProjectContext projectContext = ContextKt.ProjectContext(project);
JvmBuiltIns builtIns = new JvmBuiltIns(projectContext.getStorageManager());
MutableModuleContext context = ContextKt.ContextForNewModule(
project, Name.special("<" + moduleName + ">"), JvmPlatform.INSTANCE, JvmBuiltIns.getInstance()
projectContext, Name.special("<" + moduleName + ">"), JvmPlatform.INSTANCE,
builtIns
);
builtIns.setOwnerModuleDescriptor(context.getModule());
context.setDependencies(context.getModule(), context.getBuiltIns().getBuiltInsModule());
return context;
}
@@ -17,12 +17,13 @@
package org.jetbrains.kotlin.synthetic
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.load.java.descriptors.JavaCallableMemberDescriptor
import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
fun FunctionDescriptor.hasJavaOriginInHierarchy(): Boolean {
return if (original.overriddenDescriptors.isEmpty())
containingDeclaration is JavaClassDescriptor
this is JavaCallableMemberDescriptor || containingDeclaration is JavaClassDescriptor
else
original.overriddenDescriptors.any { it.hasJavaOriginInHierarchy() }
}
@@ -34,6 +34,7 @@ import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.resolve.TargetEnvironment
import org.jetbrains.kotlin.resolve.TargetPlatform
import org.jetbrains.kotlin.resolve.createModule
import org.jetbrains.kotlin.utils.singletonOrEmptyList
import java.util.*
class ResolverForModule(
@@ -155,7 +156,8 @@ abstract class AnalyzerFacade<in P : PlatformAnalysisParameters> {
targetEnvironment: TargetEnvironment,
builtIns: KotlinBuiltIns,
delegateResolver: ResolverForProject<M> = EmptyResolverForProject(),
packagePartProviderFactory: (M, ModuleContent) -> PackagePartProvider = { module, content -> PackagePartProvider.EMPTY }
packagePartProviderFactory: (M, ModuleContent) -> PackagePartProvider = { module, content -> PackagePartProvider.EMPTY },
firstDependency: M? = null
): ResolverForProject<M> {
val storageManager = projectContext.storageManager
fun createResolverForProject(): ResolverForProjectImpl<M> {
@@ -171,10 +173,11 @@ abstract class AnalyzerFacade<in P : PlatformAnalysisParameters> {
val resolverForProject = createResolverForProject()
fun computeDependencyDescriptors(module: M): List<ModuleDescriptorImpl> {
val dependenciesDescriptors = module.dependencies().mapTo(ArrayList<ModuleDescriptorImpl>()) {
dependencyInfo ->
resolverForProject.descriptorForModule(dependencyInfo as M)
}
val orderedDependencies = firstDependency.singletonOrEmptyList() + module.dependencies()
val dependenciesDescriptors = orderedDependencies.mapTo(ArrayList<ModuleDescriptorImpl>()) {
dependencyInfo ->
resolverForProject.descriptorForModule(dependencyInfo as M)
}
module.dependencyOnBuiltIns().adjustDependencies(
resolverForProject.descriptorForModule(module).builtIns.builtInsModule, dependenciesDescriptors)
return dependenciesDescriptors
@@ -116,12 +116,11 @@ fun ContextForNewModule(
}
fun ContextForNewModule(
project: Project,
projectContext: ProjectContext,
moduleName: Name,
targetPlatform: TargetPlatform,
builtIns: KotlinBuiltIns
): MutableModuleContext {
val projectContext = ProjectContext(project)
val module = targetPlatform.createModule(moduleName, projectContext.storageManager, builtIns)
return MutableModuleContextImpl(module, projectContext)
}
@@ -0,0 +1,234 @@
package-fragment kotlin.collections
public abstract class BooleanIterator : kotlin.collections.Iterator<kotlin.Boolean> {
/*primary*/ public constructor BooleanIterator()
public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ fun next(): kotlin.Boolean
public abstract fun nextBoolean(): kotlin.Boolean
}
public abstract class ByteIterator : kotlin.collections.Iterator<kotlin.Byte> {
/*primary*/ public constructor ByteIterator()
public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ fun next(): kotlin.Byte
public abstract fun nextByte(): kotlin.Byte
}
public abstract class CharIterator : kotlin.collections.Iterator<kotlin.Char> {
/*primary*/ public constructor CharIterator()
public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ fun next(): kotlin.Char
public abstract fun nextChar(): kotlin.Char
}
public interface Collection</*0*/ out E> : kotlin.collections.Iterable<E> {
public abstract val size: kotlin.Int
public abstract fun <get-size>(): kotlin.Int
public abstract operator fun contains(/*0*/ element: @kotlin.UnsafeVariance() E): kotlin.Boolean
public abstract fun containsAll(/*0*/ elements: kotlin.collections.Collection<@kotlin.UnsafeVariance() E>): kotlin.Boolean
public abstract fun isEmpty(): kotlin.Boolean
public abstract override /*1*/ fun iterator(): kotlin.collections.Iterator<E>
}
public abstract class DoubleIterator : kotlin.collections.Iterator<kotlin.Double> {
/*primary*/ public constructor DoubleIterator()
public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ fun next(): kotlin.Double
public abstract fun nextDouble(): kotlin.Double
}
public abstract class FloatIterator : kotlin.collections.Iterator<kotlin.Float> {
/*primary*/ public constructor FloatIterator()
public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ fun next(): kotlin.Float
public abstract fun nextFloat(): kotlin.Float
}
public abstract class IntIterator : kotlin.collections.Iterator<kotlin.Int> {
/*primary*/ public constructor IntIterator()
public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ fun next(): kotlin.Int
public abstract fun nextInt(): kotlin.Int
}
public interface Iterable</*0*/ out T> {
public abstract operator fun iterator(): kotlin.collections.Iterator<T>
}
public interface Iterator</*0*/ out T> {
public abstract operator fun hasNext(): kotlin.Boolean
public abstract operator fun next(): T
}
public interface List</*0*/ out E> : kotlin.collections.Collection<E> {
public abstract override /*1*/ val size: kotlin.Int
public abstract override /*1*/ fun <get-size>(): kotlin.Int
public abstract override /*1*/ fun contains(/*0*/ element: @kotlin.UnsafeVariance() E): kotlin.Boolean
public abstract override /*1*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection<@kotlin.UnsafeVariance() E>): kotlin.Boolean
public abstract operator fun get(/*0*/ index: kotlin.Int): E
public abstract fun indexOf(/*0*/ element: @kotlin.UnsafeVariance() E): kotlin.Int
public abstract override /*1*/ fun isEmpty(): kotlin.Boolean
public abstract override /*1*/ fun iterator(): kotlin.collections.Iterator<E>
public abstract fun lastIndexOf(/*0*/ element: @kotlin.UnsafeVariance() E): kotlin.Int
public abstract fun listIterator(): kotlin.collections.ListIterator<E>
public abstract fun listIterator(/*0*/ index: kotlin.Int): kotlin.collections.ListIterator<E>
public abstract fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.collections.List<E>
}
public interface ListIterator</*0*/ out T> : kotlin.collections.Iterator<T> {
public abstract override /*1*/ fun hasNext(): kotlin.Boolean
public abstract fun hasPrevious(): kotlin.Boolean
public abstract override /*1*/ fun next(): T
public abstract fun nextIndex(): kotlin.Int
public abstract fun previous(): T
public abstract fun previousIndex(): kotlin.Int
}
public abstract class LongIterator : kotlin.collections.Iterator<kotlin.Long> {
/*primary*/ public constructor LongIterator()
public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ fun next(): kotlin.Long
public abstract fun nextLong(): kotlin.Long
}
public interface Map</*0*/ K, /*1*/ out V> {
public abstract val entries: kotlin.collections.Set<kotlin.collections.Map.Entry<K, V>>
public abstract fun <get-entries>(): kotlin.collections.Set<kotlin.collections.Map.Entry<K, V>>
public abstract val keys: kotlin.collections.Set<K>
public abstract fun <get-keys>(): kotlin.collections.Set<K>
public abstract val size: kotlin.Int
public abstract fun <get-size>(): kotlin.Int
public abstract val values: kotlin.collections.Collection<V>
public abstract fun <get-values>(): kotlin.collections.Collection<V>
public abstract fun containsKey(/*0*/ key: K): kotlin.Boolean
public abstract fun containsValue(/*0*/ value: @kotlin.UnsafeVariance() V): kotlin.Boolean
public abstract operator fun get(/*0*/ key: K): V?
public abstract fun isEmpty(): kotlin.Boolean
public interface Entry</*0*/ out K, /*1*/ out V> {
public abstract val key: K
public abstract fun <get-key>(): K
public abstract val value: V
public abstract fun <get-value>(): V
}
}
public interface MutableCollection</*0*/ E> : kotlin.collections.Collection<E>, kotlin.collections.MutableIterable<E> {
public abstract override /*1*/ /*fake_override*/ val size: kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun <get-size>(): kotlin.Int
public abstract fun add(/*0*/ element: E): kotlin.Boolean
public abstract fun addAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public abstract fun clear(): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun contains(/*0*/ element: E): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public abstract override /*2*/ fun iterator(): kotlin.collections.MutableIterator<E>
public abstract fun remove(/*0*/ element: E): kotlin.Boolean
public abstract fun removeAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public abstract fun retainAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
}
public interface MutableIterable</*0*/ out T> : kotlin.collections.Iterable<T> {
public abstract override /*1*/ fun iterator(): kotlin.collections.MutableIterator<T>
}
public interface MutableIterator</*0*/ out T> : kotlin.collections.Iterator<T> {
public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun next(): T
public abstract fun remove(): kotlin.Unit
}
public interface MutableList</*0*/ E> : kotlin.collections.List<E>, kotlin.collections.MutableCollection<E> {
public abstract override /*2*/ /*fake_override*/ val size: kotlin.Int
public abstract override /*2*/ /*fake_override*/ fun <get-size>(): kotlin.Int
public abstract override /*1*/ fun add(/*0*/ element: E): kotlin.Boolean
public abstract fun add(/*0*/ index: kotlin.Int, /*1*/ element: E): kotlin.Unit
public abstract fun addAll(/*0*/ index: kotlin.Int, /*1*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public abstract override /*1*/ fun addAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public abstract override /*1*/ fun clear(): kotlin.Unit
public abstract override /*2*/ /*fake_override*/ fun contains(/*0*/ element: E): kotlin.Boolean
public abstract override /*2*/ /*fake_override*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun get(/*0*/ index: kotlin.Int): E
public abstract override /*1*/ /*fake_override*/ fun indexOf(/*0*/ element: E): kotlin.Int
public abstract override /*2*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public abstract override /*2*/ /*fake_override*/ fun iterator(): kotlin.collections.MutableIterator<E>
public abstract override /*1*/ /*fake_override*/ fun lastIndexOf(/*0*/ element: E): kotlin.Int
public abstract override /*1*/ fun listIterator(): kotlin.collections.MutableListIterator<E>
public abstract override /*1*/ fun listIterator(/*0*/ index: kotlin.Int): kotlin.collections.MutableListIterator<E>
public abstract override /*1*/ fun remove(/*0*/ element: E): kotlin.Boolean
public abstract override /*1*/ fun removeAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public abstract fun removeAt(/*0*/ index: kotlin.Int): E
public abstract override /*1*/ fun retainAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public abstract operator fun set(/*0*/ index: kotlin.Int, /*1*/ element: E): E
public abstract override /*1*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.collections.MutableList<E>
}
public interface MutableListIterator</*0*/ T> : kotlin.collections.ListIterator<T>, kotlin.collections.MutableIterator<T> {
public abstract fun add(/*0*/ element: T): kotlin.Unit
public abstract override /*2*/ fun hasNext(): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun hasPrevious(): kotlin.Boolean
public abstract override /*2*/ fun next(): T
public abstract override /*1*/ /*fake_override*/ fun nextIndex(): kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun previous(): T
public abstract override /*1*/ /*fake_override*/ fun previousIndex(): kotlin.Int
public abstract override /*1*/ fun remove(): kotlin.Unit
public abstract fun set(/*0*/ element: T): kotlin.Unit
}
public interface MutableMap</*0*/ K, /*1*/ V> : kotlin.collections.Map<K, V> {
public abstract override /*1*/ val entries: kotlin.collections.MutableSet<kotlin.collections.MutableMap.MutableEntry<K, V>>
public abstract override /*1*/ fun <get-entries>(): kotlin.collections.MutableSet<kotlin.collections.MutableMap.MutableEntry<K, V>>
public abstract override /*1*/ val keys: kotlin.collections.MutableSet<K>
public abstract override /*1*/ fun <get-keys>(): kotlin.collections.MutableSet<K>
public abstract override /*1*/ /*fake_override*/ val size: kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun <get-size>(): kotlin.Int
public abstract override /*1*/ val values: kotlin.collections.MutableCollection<V>
public abstract override /*1*/ fun <get-values>(): kotlin.collections.MutableCollection<V>
public abstract fun clear(): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun containsKey(/*0*/ key: K): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun containsValue(/*0*/ value: V): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun get(/*0*/ key: K): V?
public abstract override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public abstract fun put(/*0*/ key: K, /*1*/ value: V): V?
public abstract fun putAll(/*0*/ from: kotlin.collections.Map<out K, V>): kotlin.Unit
public abstract fun remove(/*0*/ key: K): V?
public interface MutableEntry</*0*/ K, /*1*/ V> : kotlin.collections.Map.Entry<K, V> {
public abstract override /*1*/ /*fake_override*/ val key: K
public abstract override /*1*/ /*fake_override*/ fun <get-key>(): K
public abstract override /*1*/ /*fake_override*/ val value: V
public abstract override /*1*/ /*fake_override*/ fun <get-value>(): V
public abstract fun setValue(/*0*/ newValue: V): V
}
}
public interface MutableSet</*0*/ E> : kotlin.collections.Set<E>, kotlin.collections.MutableCollection<E> {
public abstract override /*2*/ /*fake_override*/ val size: kotlin.Int
public abstract override /*2*/ /*fake_override*/ fun <get-size>(): kotlin.Int
public abstract override /*1*/ fun add(/*0*/ element: E): kotlin.Boolean
public abstract override /*1*/ fun addAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public abstract override /*1*/ fun clear(): kotlin.Unit
public abstract override /*2*/ /*fake_override*/ fun contains(/*0*/ element: E): kotlin.Boolean
public abstract override /*2*/ /*fake_override*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public abstract override /*2*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public abstract override /*2*/ fun iterator(): kotlin.collections.MutableIterator<E>
public abstract override /*1*/ fun remove(/*0*/ element: E): kotlin.Boolean
public abstract override /*1*/ fun removeAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public abstract override /*1*/ fun retainAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
}
public interface Set</*0*/ out E> : kotlin.collections.Collection<E> {
public abstract override /*1*/ val size: kotlin.Int
public abstract override /*1*/ fun <get-size>(): kotlin.Int
public abstract override /*1*/ fun contains(/*0*/ element: @kotlin.UnsafeVariance() E): kotlin.Boolean
public abstract override /*1*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection<@kotlin.UnsafeVariance() E>): kotlin.Boolean
public abstract override /*1*/ fun isEmpty(): kotlin.Boolean
public abstract override /*1*/ fun iterator(): kotlin.collections.Iterator<E>
}
public abstract class ShortIterator : kotlin.collections.Iterator<kotlin.Short> {
/*primary*/ public constructor ShortIterator()
public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ fun next(): kotlin.Short
public abstract fun nextShort(): kotlin.Short
}
@@ -0,0 +1,181 @@
package-fragment kotlin.ranges
public open class CharProgression : kotlin.collections.Iterable<kotlin.Char> {
/*primary*/ internal constructor CharProgression(/*0*/ start: kotlin.Char, /*1*/ endInclusive: kotlin.Char, /*2*/ step: kotlin.Int)
public final val first: kotlin.Char
public final fun <get-first>(): kotlin.Char
public final val last: kotlin.Char
public final fun <get-last>(): kotlin.Char
public final val step: kotlin.Int
public final fun <get-step>(): kotlin.Int
public open fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.collections.CharIterator
public companion object Companion {
/*primary*/ private constructor Companion()
public final fun fromClosedRange(/*0*/ rangeStart: kotlin.Char, /*1*/ rangeEnd: kotlin.Char, /*2*/ step: kotlin.Int): kotlin.ranges.CharProgression
}
}
internal final class CharProgressionIterator : kotlin.collections.CharIterator {
/*primary*/ public constructor CharProgressionIterator(/*0*/ first: kotlin.Char, /*1*/ last: kotlin.Char, /*2*/ step: kotlin.Int)
private final val finalElement: kotlin.Int
private final fun <get-finalElement>(): kotlin.Int
private final var hasNext: kotlin.Boolean
private final fun <get-hasNext>(): kotlin.Boolean
private final fun <set-hasNext>(/*0*/ <set-?>: kotlin.Boolean): kotlin.Unit
private final var next: kotlin.Int
private final fun <get-next>(): kotlin.Int
private final fun <set-next>(/*0*/ <set-?>: kotlin.Int): kotlin.Unit
public final val step: kotlin.Int
public final fun <get-step>(): kotlin.Int
public open override /*1*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ /*fake_override*/ fun next(): kotlin.Char
public open override /*1*/ fun nextChar(): kotlin.Char
}
public final class CharRange : kotlin.ranges.CharProgression, kotlin.ranges.ClosedRange<kotlin.Char> {
/*primary*/ public constructor CharRange(/*0*/ start: kotlin.Char, /*1*/ endInclusive: kotlin.Char)
public open override /*1*/ val endInclusive: kotlin.Char
public open override /*1*/ fun <get-endInclusive>(): kotlin.Char
public final override /*1*/ /*fake_override*/ val first: kotlin.Char
public final override /*1*/ /*fake_override*/ fun <get-first>(): kotlin.Char
public final override /*1*/ /*fake_override*/ val last: kotlin.Char
public final override /*1*/ /*fake_override*/ fun <get-last>(): kotlin.Char
public open override /*1*/ val start: kotlin.Char
public open override /*1*/ fun <get-start>(): kotlin.Char
public final override /*1*/ /*fake_override*/ val step: kotlin.Int
public final override /*1*/ /*fake_override*/ fun <get-step>(): kotlin.Int
public open override /*1*/ fun contains(/*0*/ value: kotlin.Char): kotlin.Boolean
public open override /*2*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.CharIterator
public companion object Companion {
/*primary*/ private constructor Companion()
public final val EMPTY: kotlin.ranges.CharRange
public final fun <get-EMPTY>(): kotlin.ranges.CharRange
}
}
public interface ClosedRange</*0*/ T : kotlin.Comparable<T>> {
public abstract val endInclusive: T
public abstract fun <get-endInclusive>(): T
public abstract val start: T
public abstract fun <get-start>(): T
public open operator fun contains(/*0*/ value: T): kotlin.Boolean
public open fun isEmpty(): kotlin.Boolean
}
public open class IntProgression : kotlin.collections.Iterable<kotlin.Int> {
/*primary*/ internal constructor IntProgression(/*0*/ start: kotlin.Int, /*1*/ endInclusive: kotlin.Int, /*2*/ step: kotlin.Int)
public final val first: kotlin.Int
public final fun <get-first>(): kotlin.Int
public final val last: kotlin.Int
public final fun <get-last>(): kotlin.Int
public final val step: kotlin.Int
public final fun <get-step>(): kotlin.Int
public open fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.collections.IntIterator
public companion object Companion {
/*primary*/ private constructor Companion()
public final fun fromClosedRange(/*0*/ rangeStart: kotlin.Int, /*1*/ rangeEnd: kotlin.Int, /*2*/ step: kotlin.Int): kotlin.ranges.IntProgression
}
}
internal final class IntProgressionIterator : kotlin.collections.IntIterator {
/*primary*/ public constructor IntProgressionIterator(/*0*/ first: kotlin.Int, /*1*/ last: kotlin.Int, /*2*/ step: kotlin.Int)
private final val finalElement: kotlin.Int
private final fun <get-finalElement>(): kotlin.Int
private final var hasNext: kotlin.Boolean
private final fun <get-hasNext>(): kotlin.Boolean
private final fun <set-hasNext>(/*0*/ <set-?>: kotlin.Boolean): kotlin.Unit
private final var next: kotlin.Int
private final fun <get-next>(): kotlin.Int
private final fun <set-next>(/*0*/ <set-?>: kotlin.Int): kotlin.Unit
public final val step: kotlin.Int
public final fun <get-step>(): kotlin.Int
public open override /*1*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ /*fake_override*/ fun next(): kotlin.Int
public open override /*1*/ fun nextInt(): kotlin.Int
}
public final class IntRange : kotlin.ranges.IntProgression, kotlin.ranges.ClosedRange<kotlin.Int> {
/*primary*/ public constructor IntRange(/*0*/ start: kotlin.Int, /*1*/ endInclusive: kotlin.Int)
public open override /*1*/ val endInclusive: kotlin.Int
public open override /*1*/ fun <get-endInclusive>(): kotlin.Int
public final override /*1*/ /*fake_override*/ val first: kotlin.Int
public final override /*1*/ /*fake_override*/ fun <get-first>(): kotlin.Int
public final override /*1*/ /*fake_override*/ val last: kotlin.Int
public final override /*1*/ /*fake_override*/ fun <get-last>(): kotlin.Int
public open override /*1*/ val start: kotlin.Int
public open override /*1*/ fun <get-start>(): kotlin.Int
public final override /*1*/ /*fake_override*/ val step: kotlin.Int
public final override /*1*/ /*fake_override*/ fun <get-step>(): kotlin.Int
public open override /*1*/ fun contains(/*0*/ value: kotlin.Int): kotlin.Boolean
public open override /*2*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.IntIterator
public companion object Companion {
/*primary*/ private constructor Companion()
public final val EMPTY: kotlin.ranges.IntRange
public final fun <get-EMPTY>(): kotlin.ranges.IntRange
}
}
public open class LongProgression : kotlin.collections.Iterable<kotlin.Long> {
/*primary*/ internal constructor LongProgression(/*0*/ start: kotlin.Long, /*1*/ endInclusive: kotlin.Long, /*2*/ step: kotlin.Long)
public final val first: kotlin.Long
public final fun <get-first>(): kotlin.Long
public final val last: kotlin.Long
public final fun <get-last>(): kotlin.Long
public final val step: kotlin.Long
public final fun <get-step>(): kotlin.Long
public open fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.collections.LongIterator
public companion object Companion {
/*primary*/ private constructor Companion()
public final fun fromClosedRange(/*0*/ rangeStart: kotlin.Long, /*1*/ rangeEnd: kotlin.Long, /*2*/ step: kotlin.Long): kotlin.ranges.LongProgression
}
}
internal final class LongProgressionIterator : kotlin.collections.LongIterator {
/*primary*/ public constructor LongProgressionIterator(/*0*/ first: kotlin.Long, /*1*/ last: kotlin.Long, /*2*/ step: kotlin.Long)
private final val finalElement: kotlin.Long
private final fun <get-finalElement>(): kotlin.Long
private final var hasNext: kotlin.Boolean
private final fun <get-hasNext>(): kotlin.Boolean
private final fun <set-hasNext>(/*0*/ <set-?>: kotlin.Boolean): kotlin.Unit
private final var next: kotlin.Long
private final fun <get-next>(): kotlin.Long
private final fun <set-next>(/*0*/ <set-?>: kotlin.Long): kotlin.Unit
public final val step: kotlin.Long
public final fun <get-step>(): kotlin.Long
public open override /*1*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ /*fake_override*/ fun next(): kotlin.Long
public open override /*1*/ fun nextLong(): kotlin.Long
}
public final class LongRange : kotlin.ranges.LongProgression, kotlin.ranges.ClosedRange<kotlin.Long> {
/*primary*/ public constructor LongRange(/*0*/ start: kotlin.Long, /*1*/ endInclusive: kotlin.Long)
public open override /*1*/ val endInclusive: kotlin.Long
public open override /*1*/ fun <get-endInclusive>(): kotlin.Long
public final override /*1*/ /*fake_override*/ val first: kotlin.Long
public final override /*1*/ /*fake_override*/ fun <get-first>(): kotlin.Long
public final override /*1*/ /*fake_override*/ val last: kotlin.Long
public final override /*1*/ /*fake_override*/ fun <get-last>(): kotlin.Long
public open override /*1*/ val start: kotlin.Long
public open override /*1*/ fun <get-start>(): kotlin.Long
public final override /*1*/ /*fake_override*/ val step: kotlin.Long
public final override /*1*/ /*fake_override*/ fun <get-step>(): kotlin.Long
public open override /*1*/ fun contains(/*0*/ value: kotlin.Long): kotlin.Boolean
public open override /*2*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.LongIterator
public companion object Companion {
/*primary*/ private constructor Companion()
public final val EMPTY: kotlin.ranges.LongRange
public final fun <get-EMPTY>(): kotlin.ranges.LongRange
}
}
+699
View File
@@ -0,0 +1,699 @@
package-fragment kotlin
public inline fun </*0*/ reified @kotlin.internal.PureReifiable() T> arrayOf(/*0*/ vararg elements: T /*kotlin.Array<out T>*/): kotlin.Array<T>
public fun </*0*/ reified @kotlin.internal.PureReifiable() T> arrayOfNulls(/*0*/ size: kotlin.Int): kotlin.Array<T?>
public fun booleanArrayOf(/*0*/ vararg elements: kotlin.Boolean /*kotlin.BooleanArray*/): kotlin.BooleanArray
public fun byteArrayOf(/*0*/ vararg elements: kotlin.Byte /*kotlin.ByteArray*/): kotlin.ByteArray
public fun charArrayOf(/*0*/ vararg elements: kotlin.Char /*kotlin.CharArray*/): kotlin.CharArray
public fun doubleArrayOf(/*0*/ vararg elements: kotlin.Double /*kotlin.DoubleArray*/): kotlin.DoubleArray
public inline fun </*0*/ reified @kotlin.internal.PureReifiable() T> emptyArray(): kotlin.Array<T>
public fun floatArrayOf(/*0*/ vararg elements: kotlin.Float /*kotlin.FloatArray*/): kotlin.FloatArray
public fun intArrayOf(/*0*/ vararg elements: kotlin.Int /*kotlin.IntArray*/): kotlin.IntArray
public fun longArrayOf(/*0*/ vararg elements: kotlin.Long /*kotlin.LongArray*/): kotlin.LongArray
public fun shortArrayOf(/*0*/ vararg elements: kotlin.Short /*kotlin.ShortArray*/): kotlin.ShortArray
public operator fun kotlin.String?.plus(/*0*/ other: kotlin.Any?): kotlin.String
public fun kotlin.Any?.toString(): kotlin.String
public interface Annotation {
}
public open class Any {
/*primary*/ public constructor Any()
}
public final class Array</*0*/ T> : kotlin.Cloneable, java.io.Serializable {
public constructor Array</*0*/ T>(/*0*/ size: kotlin.Int, /*1*/ init: (kotlin.Int) -> T)
public final val size: kotlin.Int
public final fun <get-size>(): kotlin.Int
public open override /*1*/ fun clone(): kotlin.Array<T>
public final operator fun get(/*0*/ index: kotlin.Int): T
public final operator fun iterator(): kotlin.collections.Iterator<T>
public final operator fun set(/*0*/ index: kotlin.Int, /*1*/ value: T): kotlin.Unit
}
public final class Boolean : kotlin.Comparable<kotlin.Boolean>, java.io.Serializable {
/*primary*/ private constructor Boolean()
public final infix fun and(/*0*/ other: kotlin.Boolean): kotlin.Boolean
public open override /*1*/ fun compareTo(/*0*/ other: kotlin.Boolean): kotlin.Int
public final operator fun not(): kotlin.Boolean
public final infix fun or(/*0*/ other: kotlin.Boolean): kotlin.Boolean
public final infix fun xor(/*0*/ other: kotlin.Boolean): kotlin.Boolean
}
public final class BooleanArray : kotlin.Cloneable, java.io.Serializable {
/*primary*/ public constructor BooleanArray(/*0*/ size: kotlin.Int)
public constructor BooleanArray(/*0*/ size: kotlin.Int, /*1*/ init: (kotlin.Int) -> kotlin.Boolean)
public final val size: kotlin.Int
public final fun <get-size>(): kotlin.Int
public open override /*1*/ fun clone(): kotlin.BooleanArray
public final operator fun get(/*0*/ index: kotlin.Int): kotlin.Boolean
public final operator fun iterator(): kotlin.collections.BooleanIterator
public final operator fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Boolean): kotlin.Unit
}
public final class Byte : kotlin.Number, kotlin.Comparable<kotlin.Byte>, java.io.Serializable {
/*primary*/ private constructor Byte()
public open override /*1*/ fun compareTo(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Double): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Float): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Long): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun dec(): kotlin.Byte
public final operator fun div(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun div(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun div(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun div(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun div(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun inc(): kotlin.Byte
public final operator fun minus(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun minus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun minus(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun minus(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun minus(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun mod(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun mod(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun mod(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun mod(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun mod(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun plus(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun plus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun plus(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun plus(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun plus(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun rangeTo(/*0*/ other: kotlin.Byte): kotlin.ranges.IntRange
public final operator fun rangeTo(/*0*/ other: kotlin.Int): kotlin.ranges.IntRange
public final operator fun rangeTo(/*0*/ other: kotlin.Long): kotlin.ranges.LongRange
public final operator fun rangeTo(/*0*/ other: kotlin.Short): kotlin.ranges.IntRange
public final operator fun times(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun times(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun times(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun times(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun times(/*0*/ other: kotlin.Short): kotlin.Int
public open override /*1*/ fun toByte(): kotlin.Byte
public open override /*1*/ fun toChar(): kotlin.Char
public open override /*1*/ fun toDouble(): kotlin.Double
public open override /*1*/ fun toFloat(): kotlin.Float
public open override /*1*/ fun toInt(): kotlin.Int
public open override /*1*/ fun toLong(): kotlin.Long
public open override /*1*/ fun toShort(): kotlin.Short
public final operator fun unaryMinus(): kotlin.Int
public final operator fun unaryPlus(): kotlin.Int
public companion object Companion {
/*primary*/ private constructor Companion()
public const final val MAX_VALUE: kotlin.Byte
public final fun <get-MAX_VALUE>(): kotlin.Byte
public const final val MIN_VALUE: kotlin.Byte
public final fun <get-MIN_VALUE>(): kotlin.Byte
}
}
public final class ByteArray : kotlin.Cloneable, java.io.Serializable {
/*primary*/ public constructor ByteArray(/*0*/ size: kotlin.Int)
public constructor ByteArray(/*0*/ size: kotlin.Int, /*1*/ init: (kotlin.Int) -> kotlin.Byte)
public final val size: kotlin.Int
public final fun <get-size>(): kotlin.Int
public open override /*1*/ fun clone(): kotlin.ByteArray
public final operator fun get(/*0*/ index: kotlin.Int): kotlin.Byte
public final operator fun iterator(): kotlin.collections.ByteIterator
public final operator fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Byte): kotlin.Unit
}
public final class Char : kotlin.Comparable<kotlin.Char>, java.io.Serializable {
/*primary*/ private constructor Char()
public open override /*1*/ fun compareTo(/*0*/ other: kotlin.Char): kotlin.Int
public final operator fun dec(): kotlin.Char
public final operator fun inc(): kotlin.Char
public final operator fun minus(/*0*/ other: kotlin.Char): kotlin.Int
public final operator fun minus(/*0*/ other: kotlin.Int): kotlin.Char
public final operator fun plus(/*0*/ other: kotlin.Int): kotlin.Char
public final operator fun rangeTo(/*0*/ other: kotlin.Char): kotlin.ranges.CharRange
public open fun toByte(): kotlin.Byte
public open fun toChar(): kotlin.Char
public open fun toDouble(): kotlin.Double
public open fun toFloat(): kotlin.Float
public open fun toInt(): kotlin.Int
public open fun toLong(): kotlin.Long
public open fun toShort(): kotlin.Short
public companion object Companion {
/*primary*/ private constructor Companion()
public const final val MAX_HIGH_SURROGATE: kotlin.Char
public final fun <get-MAX_HIGH_SURROGATE>(): kotlin.Char
public const final val MAX_LOW_SURROGATE: kotlin.Char
public final fun <get-MAX_LOW_SURROGATE>(): kotlin.Char
public const final val MAX_SURROGATE: kotlin.Char
public final fun <get-MAX_SURROGATE>(): kotlin.Char
public const final val MIN_HIGH_SURROGATE: kotlin.Char
public final fun <get-MIN_HIGH_SURROGATE>(): kotlin.Char
public const final val MIN_LOW_SURROGATE: kotlin.Char
public final fun <get-MIN_LOW_SURROGATE>(): kotlin.Char
public const final val MIN_SURROGATE: kotlin.Char
public final fun <get-MIN_SURROGATE>(): kotlin.Char
}
}
public final class CharArray : kotlin.Cloneable, java.io.Serializable {
/*primary*/ public constructor CharArray(/*0*/ size: kotlin.Int)
public constructor CharArray(/*0*/ size: kotlin.Int, /*1*/ init: (kotlin.Int) -> kotlin.Char)
public final val size: kotlin.Int
public final fun <get-size>(): kotlin.Int
public open override /*1*/ fun clone(): kotlin.CharArray
public final operator fun get(/*0*/ index: kotlin.Int): kotlin.Char
public final operator fun iterator(): kotlin.collections.CharIterator
public final operator fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Char): kotlin.Unit
}
public interface CharSequence {
public abstract val length: kotlin.Int
public abstract fun <get-length>(): kotlin.Int
public abstract operator fun get(/*0*/ index: kotlin.Int): kotlin.Char
public abstract fun subSequence(/*0*/ startIndex: kotlin.Int, /*1*/ endIndex: kotlin.Int): kotlin.CharSequence
}
public interface Cloneable {
protected open fun clone(): kotlin.Any
}
public interface Comparable</*0*/ in T> {
public abstract operator fun compareTo(/*0*/ other: T): kotlin.Int
}
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.PROPERTY_GETTER}) @kotlin.annotation.MustBeDocumented() public final annotation class Deprecated : kotlin.Annotation {
/*primary*/ public constructor Deprecated(/*0*/ message: kotlin.String, /*1*/ replaceWith: kotlin.ReplaceWith = ..., /*2*/ level: kotlin.DeprecationLevel = ...)
public final val level: kotlin.DeprecationLevel
public final fun <get-level>(): kotlin.DeprecationLevel
public final val message: kotlin.String
public final fun <get-message>(): kotlin.String
public final val replaceWith: kotlin.ReplaceWith
public final fun <get-replaceWith>(): kotlin.ReplaceWith
}
public final enum class DeprecationLevel : kotlin.Enum<kotlin.DeprecationLevel> {
enum entry WARNING
enum entry ERROR
enum entry HIDDEN
/*primary*/ private constructor DeprecationLevel()
public final override /*1*/ /*fake_override*/ val name: kotlin.String
public final override /*1*/ /*fake_override*/ fun <get-name>(): kotlin.String
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
public final override /*1*/ /*fake_override*/ fun <get-ordinal>(): kotlin.Int
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: kotlin.DeprecationLevel): kotlin.Int
protected/*protected and package*/ final override /*1*/ /*fake_override*/ fun finalize(): kotlin.Unit
public final override /*1*/ /*fake_override*/ fun getDeclaringClass(): java.lang.Class<kotlin.DeprecationLevel!>!
// Static members
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): kotlin.DeprecationLevel
public final /*synthesized*/ fun values(): kotlin.Array<kotlin.DeprecationLevel>
}
public final class Double : kotlin.Number, kotlin.Comparable<kotlin.Double>, java.io.Serializable {
/*primary*/ private constructor Double()
public final operator fun compareTo(/*0*/ other: kotlin.Byte): kotlin.Int
public open override /*1*/ fun compareTo(/*0*/ other: kotlin.Double): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Float): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Long): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun dec(): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Byte): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Float): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Int): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Long): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Short): kotlin.Double
public final operator fun inc(): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Byte): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Float): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Int): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Long): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Short): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Byte): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Float): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Int): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Long): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Short): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Byte): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Float): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Int): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Long): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Short): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Byte): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Float): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Int): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Long): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Short): kotlin.Double
public open override /*1*/ fun toByte(): kotlin.Byte
public open override /*1*/ fun toChar(): kotlin.Char
public open override /*1*/ fun toDouble(): kotlin.Double
public open override /*1*/ fun toFloat(): kotlin.Float
public open override /*1*/ fun toInt(): kotlin.Int
public open override /*1*/ fun toLong(): kotlin.Long
public open override /*1*/ fun toShort(): kotlin.Short
public final operator fun unaryMinus(): kotlin.Double
public final operator fun unaryPlus(): kotlin.Double
public companion object Companion {
/*primary*/ private constructor Companion()
public final val MAX_VALUE: kotlin.Double
public final fun <get-MAX_VALUE>(): kotlin.Double
public final val MIN_VALUE: kotlin.Double
public final fun <get-MIN_VALUE>(): kotlin.Double
public final val NEGATIVE_INFINITY: kotlin.Double
public final fun <get-NEGATIVE_INFINITY>(): kotlin.Double
public final val NaN: kotlin.Double
public final fun <get-NaN>(): kotlin.Double
public final val POSITIVE_INFINITY: kotlin.Double
public final fun <get-POSITIVE_INFINITY>(): kotlin.Double
}
}
public final class DoubleArray : kotlin.Cloneable, java.io.Serializable {
/*primary*/ public constructor DoubleArray(/*0*/ size: kotlin.Int)
public constructor DoubleArray(/*0*/ size: kotlin.Int, /*1*/ init: (kotlin.Int) -> kotlin.Double)
public final val size: kotlin.Int
public final fun <get-size>(): kotlin.Int
public open override /*1*/ fun clone(): kotlin.DoubleArray
public final operator fun get(/*0*/ index: kotlin.Int): kotlin.Double
public final operator fun iterator(): kotlin.collections.DoubleIterator
public final operator fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Double): kotlin.Unit
}
public abstract class Enum</*0*/ E : kotlin.Enum<E>> : kotlin.Comparable<E>, java.io.Serializable {
/*primary*/ public constructor Enum</*0*/ E : kotlin.Enum<E>>(/*0*/ name: kotlin.String, /*1*/ ordinal: kotlin.Int)
public final val name: kotlin.String
public final fun <get-name>(): kotlin.String
public final val ordinal: kotlin.Int
public final fun <get-ordinal>(): kotlin.Int
protected final fun clone(): kotlin.Any
public final override /*1*/ fun compareTo(/*0*/ other: E): kotlin.Int
protected/*protected and package*/ final fun finalize(): kotlin.Unit
public final fun getDeclaringClass(): java.lang.Class<E!>!
public companion object Companion {
/*primary*/ private constructor Companion()
}
}
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) @kotlin.annotation.MustBeDocumented() public final annotation class ExtensionFunctionType : kotlin.Annotation {
/*primary*/ public constructor ExtensionFunctionType()
}
public final class Float : kotlin.Number, kotlin.Comparable<kotlin.Float>, java.io.Serializable {
/*primary*/ private constructor Float()
public final operator fun compareTo(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Double): kotlin.Int
public open override /*1*/ fun compareTo(/*0*/ other: kotlin.Float): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Long): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun dec(): kotlin.Float
public final operator fun div(/*0*/ other: kotlin.Byte): kotlin.Float
public final operator fun div(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun div(/*0*/ other: kotlin.Int): kotlin.Float
public final operator fun div(/*0*/ other: kotlin.Long): kotlin.Float
public final operator fun div(/*0*/ other: kotlin.Short): kotlin.Float
public final operator fun inc(): kotlin.Float
public final operator fun minus(/*0*/ other: kotlin.Byte): kotlin.Float
public final operator fun minus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun minus(/*0*/ other: kotlin.Int): kotlin.Float
public final operator fun minus(/*0*/ other: kotlin.Long): kotlin.Float
public final operator fun minus(/*0*/ other: kotlin.Short): kotlin.Float
public final operator fun mod(/*0*/ other: kotlin.Byte): kotlin.Float
public final operator fun mod(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun mod(/*0*/ other: kotlin.Int): kotlin.Float
public final operator fun mod(/*0*/ other: kotlin.Long): kotlin.Float
public final operator fun mod(/*0*/ other: kotlin.Short): kotlin.Float
public final operator fun plus(/*0*/ other: kotlin.Byte): kotlin.Float
public final operator fun plus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun plus(/*0*/ other: kotlin.Int): kotlin.Float
public final operator fun plus(/*0*/ other: kotlin.Long): kotlin.Float
public final operator fun plus(/*0*/ other: kotlin.Short): kotlin.Float
public final operator fun times(/*0*/ other: kotlin.Byte): kotlin.Float
public final operator fun times(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun times(/*0*/ other: kotlin.Int): kotlin.Float
public final operator fun times(/*0*/ other: kotlin.Long): kotlin.Float
public final operator fun times(/*0*/ other: kotlin.Short): kotlin.Float
public open override /*1*/ fun toByte(): kotlin.Byte
public open override /*1*/ fun toChar(): kotlin.Char
public open override /*1*/ fun toDouble(): kotlin.Double
public open override /*1*/ fun toFloat(): kotlin.Float
public open override /*1*/ fun toInt(): kotlin.Int
public open override /*1*/ fun toLong(): kotlin.Long
public open override /*1*/ fun toShort(): kotlin.Short
public final operator fun unaryMinus(): kotlin.Float
public final operator fun unaryPlus(): kotlin.Float
public companion object Companion {
/*primary*/ private constructor Companion()
public final val MAX_VALUE: kotlin.Float
public final fun <get-MAX_VALUE>(): kotlin.Float
public final val MIN_VALUE: kotlin.Float
public final fun <get-MIN_VALUE>(): kotlin.Float
public final val NEGATIVE_INFINITY: kotlin.Float
public final fun <get-NEGATIVE_INFINITY>(): kotlin.Float
public final val NaN: kotlin.Float
public final fun <get-NaN>(): kotlin.Float
public final val POSITIVE_INFINITY: kotlin.Float
public final fun <get-POSITIVE_INFINITY>(): kotlin.Float
}
}
public final class FloatArray : kotlin.Cloneable, java.io.Serializable {
/*primary*/ public constructor FloatArray(/*0*/ size: kotlin.Int)
public constructor FloatArray(/*0*/ size: kotlin.Int, /*1*/ init: (kotlin.Int) -> kotlin.Float)
public final val size: kotlin.Int
public final fun <get-size>(): kotlin.Int
public open override /*1*/ fun clone(): kotlin.FloatArray
public final operator fun get(/*0*/ index: kotlin.Int): kotlin.Float
public final operator fun iterator(): kotlin.collections.FloatIterator
public final operator fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Float): kotlin.Unit
}
public interface Function</*0*/ out R> {
}
public final class Int : kotlin.Number, kotlin.Comparable<kotlin.Int>, java.io.Serializable {
/*primary*/ private constructor Int()
public final infix fun and(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Double): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Float): kotlin.Int
public open override /*1*/ fun compareTo(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Long): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun dec(): kotlin.Int
public final operator fun div(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun div(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun div(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun div(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun div(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun inc(): kotlin.Int
public final fun inv(): kotlin.Int
public final operator fun minus(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun minus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun minus(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun minus(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun minus(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun mod(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun mod(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun mod(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun mod(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun mod(/*0*/ other: kotlin.Short): kotlin.Int
public final infix fun or(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun plus(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun plus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun plus(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun plus(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun plus(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun rangeTo(/*0*/ other: kotlin.Byte): kotlin.ranges.IntRange
public final operator fun rangeTo(/*0*/ other: kotlin.Int): kotlin.ranges.IntRange
public final operator fun rangeTo(/*0*/ other: kotlin.Long): kotlin.ranges.LongRange
public final operator fun rangeTo(/*0*/ other: kotlin.Short): kotlin.ranges.IntRange
public final infix fun shl(/*0*/ bitCount: kotlin.Int): kotlin.Int
public final infix fun shr(/*0*/ bitCount: kotlin.Int): kotlin.Int
public final operator fun times(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun times(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun times(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun times(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun times(/*0*/ other: kotlin.Short): kotlin.Int
public open override /*1*/ fun toByte(): kotlin.Byte
public open override /*1*/ fun toChar(): kotlin.Char
public open override /*1*/ fun toDouble(): kotlin.Double
public open override /*1*/ fun toFloat(): kotlin.Float
public open override /*1*/ fun toInt(): kotlin.Int
public open override /*1*/ fun toLong(): kotlin.Long
public open override /*1*/ fun toShort(): kotlin.Short
public final operator fun unaryMinus(): kotlin.Int
public final operator fun unaryPlus(): kotlin.Int
public final infix fun ushr(/*0*/ bitCount: kotlin.Int): kotlin.Int
public final infix fun xor(/*0*/ other: kotlin.Int): kotlin.Int
public companion object Companion {
/*primary*/ private constructor Companion()
public const final val MAX_VALUE: kotlin.Int
public final fun <get-MAX_VALUE>(): kotlin.Int
public const final val MIN_VALUE: kotlin.Int
public final fun <get-MIN_VALUE>(): kotlin.Int
}
}
public final class IntArray : kotlin.Cloneable, java.io.Serializable {
/*primary*/ public constructor IntArray(/*0*/ size: kotlin.Int)
public constructor IntArray(/*0*/ size: kotlin.Int, /*1*/ init: (kotlin.Int) -> kotlin.Int)
public final val size: kotlin.Int
public final fun <get-size>(): kotlin.Int
public open override /*1*/ fun clone(): kotlin.IntArray
public final operator fun get(/*0*/ index: kotlin.Int): kotlin.Int
public final operator fun iterator(): kotlin.collections.IntIterator
public final operator fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Int): kotlin.Unit
}
public final class Long : kotlin.Number, kotlin.Comparable<kotlin.Long>, java.io.Serializable {
/*primary*/ private constructor Long()
public final infix fun and(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun compareTo(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Double): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Float): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Int): kotlin.Int
public open override /*1*/ fun compareTo(/*0*/ other: kotlin.Long): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun dec(): kotlin.Long
public final operator fun div(/*0*/ other: kotlin.Byte): kotlin.Long
public final operator fun div(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun div(/*0*/ other: kotlin.Int): kotlin.Long
public final operator fun div(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun div(/*0*/ other: kotlin.Short): kotlin.Long
public final operator fun inc(): kotlin.Long
public final fun inv(): kotlin.Long
public final operator fun minus(/*0*/ other: kotlin.Byte): kotlin.Long
public final operator fun minus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun minus(/*0*/ other: kotlin.Int): kotlin.Long
public final operator fun minus(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun minus(/*0*/ other: kotlin.Short): kotlin.Long
public final operator fun mod(/*0*/ other: kotlin.Byte): kotlin.Long
public final operator fun mod(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun mod(/*0*/ other: kotlin.Int): kotlin.Long
public final operator fun mod(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun mod(/*0*/ other: kotlin.Short): kotlin.Long
public final infix fun or(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun plus(/*0*/ other: kotlin.Byte): kotlin.Long
public final operator fun plus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun plus(/*0*/ other: kotlin.Int): kotlin.Long
public final operator fun plus(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun plus(/*0*/ other: kotlin.Short): kotlin.Long
public final operator fun rangeTo(/*0*/ other: kotlin.Byte): kotlin.ranges.LongRange
public final operator fun rangeTo(/*0*/ other: kotlin.Int): kotlin.ranges.LongRange
public final operator fun rangeTo(/*0*/ other: kotlin.Long): kotlin.ranges.LongRange
public final operator fun rangeTo(/*0*/ other: kotlin.Short): kotlin.ranges.LongRange
public final infix fun shl(/*0*/ bitCount: kotlin.Int): kotlin.Long
public final infix fun shr(/*0*/ bitCount: kotlin.Int): kotlin.Long
public final operator fun times(/*0*/ other: kotlin.Byte): kotlin.Long
public final operator fun times(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun times(/*0*/ other: kotlin.Int): kotlin.Long
public final operator fun times(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun times(/*0*/ other: kotlin.Short): kotlin.Long
public open override /*1*/ fun toByte(): kotlin.Byte
public open override /*1*/ fun toChar(): kotlin.Char
public open override /*1*/ fun toDouble(): kotlin.Double
public open override /*1*/ fun toFloat(): kotlin.Float
public open override /*1*/ fun toInt(): kotlin.Int
public open override /*1*/ fun toLong(): kotlin.Long
public open override /*1*/ fun toShort(): kotlin.Short
public final operator fun unaryMinus(): kotlin.Long
public final operator fun unaryPlus(): kotlin.Long
public final infix fun ushr(/*0*/ bitCount: kotlin.Int): kotlin.Long
public final infix fun xor(/*0*/ other: kotlin.Long): kotlin.Long
public companion object Companion {
/*primary*/ private constructor Companion()
public const final val MAX_VALUE: kotlin.Long
public final fun <get-MAX_VALUE>(): kotlin.Long
public const final val MIN_VALUE: kotlin.Long
public final fun <get-MIN_VALUE>(): kotlin.Long
}
}
public final class LongArray : kotlin.Cloneable, java.io.Serializable {
/*primary*/ public constructor LongArray(/*0*/ size: kotlin.Int)
public constructor LongArray(/*0*/ size: kotlin.Int, /*1*/ init: (kotlin.Int) -> kotlin.Long)
public final val size: kotlin.Int
public final fun <get-size>(): kotlin.Int
public open override /*1*/ fun clone(): kotlin.LongArray
public final operator fun get(/*0*/ index: kotlin.Int): kotlin.Long
public final operator fun iterator(): kotlin.collections.LongIterator
public final operator fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Long): kotlin.Unit
}
public final class Nothing {
/*primary*/ private constructor Nothing()
}
public abstract class Number : kotlin.Any, java.io.Serializable {
/*primary*/ public constructor Number()
public abstract fun toByte(): kotlin.Byte
public abstract fun toChar(): kotlin.Char
public abstract fun toDouble(): kotlin.Double
public abstract fun toFloat(): kotlin.Float
public abstract fun toInt(): kotlin.Int
public abstract fun toLong(): kotlin.Long
public abstract fun toShort(): kotlin.Short
}
@kotlin.annotation.Target(allowedTargets = {}) @kotlin.annotation.Retention(value = AnnotationRetention.BINARY) @kotlin.annotation.MustBeDocumented() public final annotation class ReplaceWith : kotlin.Annotation {
/*primary*/ public constructor ReplaceWith(/*0*/ expression: kotlin.String, /*1*/ vararg imports: kotlin.String /*kotlin.Array<out kotlin.String>*/)
public final val expression: kotlin.String
public final fun <get-expression>(): kotlin.String
public final val imports: kotlin.Array<out kotlin.String>
public final fun <get-imports>(): kotlin.Array<out kotlin.String>
}
public final class Short : kotlin.Number, kotlin.Comparable<kotlin.Short>, java.io.Serializable {
/*primary*/ private constructor Short()
public final operator fun compareTo(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Double): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Float): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Long): kotlin.Int
public open override /*1*/ fun compareTo(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun dec(): kotlin.Short
public final operator fun div(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun div(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun div(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun div(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun div(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun inc(): kotlin.Short
public final operator fun minus(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun minus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun minus(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun minus(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun minus(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun mod(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun mod(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun mod(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun mod(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun mod(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun plus(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun plus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun plus(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun plus(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun plus(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun rangeTo(/*0*/ other: kotlin.Byte): kotlin.ranges.IntRange
public final operator fun rangeTo(/*0*/ other: kotlin.Int): kotlin.ranges.IntRange
public final operator fun rangeTo(/*0*/ other: kotlin.Long): kotlin.ranges.LongRange
public final operator fun rangeTo(/*0*/ other: kotlin.Short): kotlin.ranges.IntRange
public final operator fun times(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun times(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun times(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun times(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun times(/*0*/ other: kotlin.Short): kotlin.Int
public open override /*1*/ fun toByte(): kotlin.Byte
public open override /*1*/ fun toChar(): kotlin.Char
public open override /*1*/ fun toDouble(): kotlin.Double
public open override /*1*/ fun toFloat(): kotlin.Float
public open override /*1*/ fun toInt(): kotlin.Int
public open override /*1*/ fun toLong(): kotlin.Long
public open override /*1*/ fun toShort(): kotlin.Short
public final operator fun unaryMinus(): kotlin.Int
public final operator fun unaryPlus(): kotlin.Int
public companion object Companion {
/*primary*/ private constructor Companion()
public const final val MAX_VALUE: kotlin.Short
public final fun <get-MAX_VALUE>(): kotlin.Short
public const final val MIN_VALUE: kotlin.Short
public final fun <get-MIN_VALUE>(): kotlin.Short
}
}
public final class ShortArray : kotlin.Cloneable, java.io.Serializable {
/*primary*/ public constructor ShortArray(/*0*/ size: kotlin.Int)
public constructor ShortArray(/*0*/ size: kotlin.Int, /*1*/ init: (kotlin.Int) -> kotlin.Short)
public final val size: kotlin.Int
public final fun <get-size>(): kotlin.Int
public open override /*1*/ fun clone(): kotlin.ShortArray
public final operator fun get(/*0*/ index: kotlin.Int): kotlin.Short
public final operator fun iterator(): kotlin.collections.ShortIterator
public final operator fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Short): kotlin.Unit
}
public final class String : kotlin.Comparable<kotlin.String>, kotlin.CharSequence, java.io.Serializable {
/*primary*/ public constructor String()
public open override /*1*/ val length: kotlin.Int
public open override /*1*/ fun <get-length>(): kotlin.Int
public open override /*1*/ fun compareTo(/*0*/ other: kotlin.String): kotlin.Int
public open override /*1*/ fun get(/*0*/ index: kotlin.Int): kotlin.Char
public final operator fun plus(/*0*/ other: kotlin.Any?): kotlin.String
public open override /*1*/ fun subSequence(/*0*/ startIndex: kotlin.Int, /*1*/ endIndex: kotlin.Int): kotlin.CharSequence
public companion object Companion {
/*primary*/ private constructor Companion()
}
}
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.PROPERTY, AnnotationTarget.FIELD, AnnotationTarget.LOCAL_VARIABLE, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.TYPE, AnnotationTarget.EXPRESSION, AnnotationTarget.FILE}) @kotlin.annotation.Retention(value = AnnotationRetention.SOURCE) public final annotation class Suppress : kotlin.Annotation {
/*primary*/ public constructor Suppress(/*0*/ vararg names: kotlin.String /*kotlin.Array<out kotlin.String>*/)
public final val names: kotlin.Array<out kotlin.String>
public final fun <get-names>(): kotlin.Array<out kotlin.String>
}
public open class Throwable : kotlin.Any, java.io.Serializable {
public constructor Throwable()
public constructor Throwable(/*0*/ message: kotlin.String?)
/*primary*/ public constructor Throwable(/*0*/ message: kotlin.String?, /*1*/ cause: kotlin.Throwable?)
public constructor Throwable(/*0*/ cause: kotlin.Throwable?)
public open val cause: kotlin.Throwable?
public open fun <get-cause>(): kotlin.Throwable?
public open val message: kotlin.String?
public open fun <get-message>(): kotlin.String?
public open fun fillInStackTrace(): kotlin.Throwable!
public open fun getLocalizedMessage(): kotlin.String!
public open fun getStackTrace(): kotlin.Array<(out) java.lang.StackTraceElement!>!
public open fun initCause(/*0*/ p0: kotlin.Throwable!): kotlin.Throwable!
public open fun printStackTrace(): kotlin.Unit
public open fun printStackTrace(/*0*/ p0: java.io.PrintStream!): kotlin.Unit
public open fun printStackTrace(/*0*/ p0: java.io.PrintWriter!): kotlin.Unit
public open fun setStackTrace(/*0*/ p0: kotlin.Array<(out) java.lang.StackTraceElement!>!): kotlin.Unit
}
public object Unit {
/*primary*/ private constructor Unit()
}
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) @kotlin.annotation.Retention(value = AnnotationRetention.SOURCE) @kotlin.annotation.MustBeDocumented() public final annotation class UnsafeVariance : kotlin.Annotation {
/*primary*/ public constructor UnsafeVariance()
}
@@ -0,0 +1,292 @@
package-fragment kotlin.collections
public abstract class BooleanIterator : kotlin.collections.Iterator<kotlin.Boolean> {
/*primary*/ public constructor BooleanIterator()
public open override /*1*/ /*fake_override*/ fun forEachRemaining(/*0*/ p0: java.util.function.Consumer<in kotlin.Boolean!>!): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ fun next(): kotlin.Boolean
public abstract fun nextBoolean(): kotlin.Boolean
}
public abstract class ByteIterator : kotlin.collections.Iterator<kotlin.Byte> {
/*primary*/ public constructor ByteIterator()
public open override /*1*/ /*fake_override*/ fun forEachRemaining(/*0*/ p0: java.util.function.Consumer<in kotlin.Byte!>!): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ fun next(): kotlin.Byte
public abstract fun nextByte(): kotlin.Byte
}
public abstract class CharIterator : kotlin.collections.Iterator<kotlin.Char> {
/*primary*/ public constructor CharIterator()
public open override /*1*/ /*fake_override*/ fun forEachRemaining(/*0*/ p0: java.util.function.Consumer<in kotlin.Char!>!): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ fun next(): kotlin.Char
public abstract fun nextChar(): kotlin.Char
}
public interface Collection</*0*/ out E> : kotlin.collections.Iterable<E> {
public abstract val size: kotlin.Int
public abstract fun <get-size>(): kotlin.Int
public abstract operator fun contains(/*0*/ element: @kotlin.UnsafeVariance() E): kotlin.Boolean
public abstract fun containsAll(/*0*/ elements: kotlin.collections.Collection<@kotlin.UnsafeVariance() E>): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer<in E!>!): kotlin.Unit
public abstract fun isEmpty(): kotlin.Boolean
public abstract override /*1*/ fun iterator(): kotlin.collections.Iterator<E>
public open fun parallelStream(): java.util.stream.Stream<E!>!
public open override /*1*/ fun spliterator(): java.util.Spliterator<E!>!
public open fun stream(): java.util.stream.Stream<E!>!
}
public abstract class DoubleIterator : kotlin.collections.Iterator<kotlin.Double> {
/*primary*/ public constructor DoubleIterator()
public open override /*1*/ /*fake_override*/ fun forEachRemaining(/*0*/ p0: java.util.function.Consumer<in kotlin.Double!>!): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ fun next(): kotlin.Double
public abstract fun nextDouble(): kotlin.Double
}
public abstract class FloatIterator : kotlin.collections.Iterator<kotlin.Float> {
/*primary*/ public constructor FloatIterator()
public open override /*1*/ /*fake_override*/ fun forEachRemaining(/*0*/ p0: java.util.function.Consumer<in kotlin.Float!>!): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ fun next(): kotlin.Float
public abstract fun nextFloat(): kotlin.Float
}
public abstract class IntIterator : kotlin.collections.Iterator<kotlin.Int> {
/*primary*/ public constructor IntIterator()
public open override /*1*/ /*fake_override*/ fun forEachRemaining(/*0*/ p0: java.util.function.Consumer<in kotlin.Int!>!): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ fun next(): kotlin.Int
public abstract fun nextInt(): kotlin.Int
}
public interface Iterable</*0*/ out T> {
public open fun forEach(/*0*/ p0: java.util.function.Consumer<in T!>!): kotlin.Unit
public abstract operator fun iterator(): kotlin.collections.Iterator<T>
public open fun spliterator(): java.util.Spliterator<T!>!
}
public interface Iterator</*0*/ out T> {
public open fun forEachRemaining(/*0*/ p0: java.util.function.Consumer<in T!>!): kotlin.Unit
public abstract operator fun hasNext(): kotlin.Boolean
public abstract operator fun next(): T
}
public interface List</*0*/ out E> : kotlin.collections.Collection<E> {
public abstract override /*1*/ val size: kotlin.Int
public abstract override /*1*/ fun <get-size>(): kotlin.Int
public abstract override /*1*/ fun contains(/*0*/ element: @kotlin.UnsafeVariance() E): kotlin.Boolean
public abstract override /*1*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection<@kotlin.UnsafeVariance() E>): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer<in E!>!): kotlin.Unit
public abstract operator fun get(/*0*/ index: kotlin.Int): E
public abstract fun indexOf(/*0*/ element: @kotlin.UnsafeVariance() E): kotlin.Int
public abstract override /*1*/ fun isEmpty(): kotlin.Boolean
public abstract override /*1*/ fun iterator(): kotlin.collections.Iterator<E>
public abstract fun lastIndexOf(/*0*/ element: @kotlin.UnsafeVariance() E): kotlin.Int
public abstract fun listIterator(): kotlin.collections.ListIterator<E>
public abstract fun listIterator(/*0*/ index: kotlin.Int): kotlin.collections.ListIterator<E>
public open override /*1*/ /*fake_override*/ fun parallelStream(): java.util.stream.Stream<E!>!
public open override /*1*/ fun spliterator(): java.util.Spliterator<E!>!
public open override /*1*/ /*fake_override*/ fun stream(): java.util.stream.Stream<E!>!
public abstract fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.collections.List<E>
}
public interface ListIterator</*0*/ out T> : kotlin.collections.Iterator<T> {
public open override /*1*/ /*fake_override*/ fun forEachRemaining(/*0*/ p0: java.util.function.Consumer<in T!>!): kotlin.Unit
public abstract override /*1*/ fun hasNext(): kotlin.Boolean
public abstract fun hasPrevious(): kotlin.Boolean
public abstract override /*1*/ fun next(): T
public abstract fun nextIndex(): kotlin.Int
public abstract fun previous(): T
public abstract fun previousIndex(): kotlin.Int
}
public abstract class LongIterator : kotlin.collections.Iterator<kotlin.Long> {
/*primary*/ public constructor LongIterator()
public open override /*1*/ /*fake_override*/ fun forEachRemaining(/*0*/ p0: java.util.function.Consumer<in kotlin.Long!>!): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ fun next(): kotlin.Long
public abstract fun nextLong(): kotlin.Long
}
public interface Map</*0*/ K, /*1*/ out V> {
public abstract val entries: kotlin.collections.Set<kotlin.collections.Map.Entry<K, V>>
public abstract fun <get-entries>(): kotlin.collections.Set<kotlin.collections.Map.Entry<K, V>>
public abstract val keys: kotlin.collections.Set<K>
public abstract fun <get-keys>(): kotlin.collections.Set<K>
public abstract val size: kotlin.Int
public abstract fun <get-size>(): kotlin.Int
public abstract val values: kotlin.collections.Collection<V>
public abstract fun <get-values>(): kotlin.collections.Collection<V>
public abstract fun containsKey(/*0*/ key: K): kotlin.Boolean
public abstract fun containsValue(/*0*/ value: @kotlin.UnsafeVariance() V): kotlin.Boolean
public open fun forEach(/*0*/ p0: java.util.function.BiConsumer<in K!, in V!>!): kotlin.Unit
public abstract operator fun get(/*0*/ key: K): V?
public open fun getOrDefault(/*0*/ p0: kotlin.Any!, /*1*/ p1: V!): V!
public abstract fun isEmpty(): kotlin.Boolean
public interface Entry</*0*/ out K, /*1*/ out V> {
public abstract val key: K
public abstract fun <get-key>(): K
public abstract val value: V
public abstract fun <get-value>(): V
}
}
public interface MutableCollection</*0*/ E> : kotlin.collections.Collection<E>, kotlin.collections.MutableIterable<E> {
public abstract override /*1*/ /*fake_override*/ val size: kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun <get-size>(): kotlin.Int
public abstract fun add(/*0*/ element: E): kotlin.Boolean
public abstract fun addAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public abstract fun clear(): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun contains(/*0*/ element: E): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer<in E!>!): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public abstract override /*2*/ fun iterator(): kotlin.collections.MutableIterator<E>
public open override /*1*/ /*fake_override*/ fun parallelStream(): java.util.stream.Stream<E!>!
public abstract fun remove(/*0*/ element: E): kotlin.Boolean
public abstract fun removeAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public open fun removeIf(/*0*/ p0: java.util.function.Predicate<in E!>!): kotlin.Boolean
public abstract fun retainAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun spliterator(): java.util.Spliterator<E!>!
public open override /*1*/ /*fake_override*/ fun stream(): java.util.stream.Stream<E!>!
}
public interface MutableIterable</*0*/ out T> : kotlin.collections.Iterable<T> {
public open override /*1*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer<in T!>!): kotlin.Unit
public abstract override /*1*/ fun iterator(): kotlin.collections.MutableIterator<T>
public open override /*1*/ /*fake_override*/ fun spliterator(): java.util.Spliterator<T!>!
}
public interface MutableIterator</*0*/ out T> : kotlin.collections.Iterator<T> {
public open override /*1*/ /*fake_override*/ fun forEachRemaining(/*0*/ p0: java.util.function.Consumer<in T!>!): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun next(): T
public abstract fun remove(): kotlin.Unit
}
public interface MutableList</*0*/ E> : kotlin.collections.List<E>, kotlin.collections.MutableCollection<E> {
public abstract override /*2*/ /*fake_override*/ val size: kotlin.Int
public abstract override /*2*/ /*fake_override*/ fun <get-size>(): kotlin.Int
public abstract override /*1*/ fun add(/*0*/ element: E): kotlin.Boolean
public abstract fun add(/*0*/ index: kotlin.Int, /*1*/ element: E): kotlin.Unit
public abstract fun addAll(/*0*/ index: kotlin.Int, /*1*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public abstract override /*1*/ fun addAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public abstract override /*1*/ fun clear(): kotlin.Unit
public abstract override /*2*/ /*fake_override*/ fun contains(/*0*/ element: E): kotlin.Boolean
public abstract override /*2*/ /*fake_override*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer<in E!>!): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun get(/*0*/ index: kotlin.Int): E
public abstract override /*1*/ /*fake_override*/ fun indexOf(/*0*/ element: E): kotlin.Int
public abstract override /*2*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public abstract override /*2*/ /*fake_override*/ fun iterator(): kotlin.collections.MutableIterator<E>
public abstract override /*1*/ /*fake_override*/ fun lastIndexOf(/*0*/ element: E): kotlin.Int
public abstract override /*1*/ fun listIterator(): kotlin.collections.MutableListIterator<E>
public abstract override /*1*/ fun listIterator(/*0*/ index: kotlin.Int): kotlin.collections.MutableListIterator<E>
public open override /*2*/ /*fake_override*/ fun parallelStream(): java.util.stream.Stream<E!>!
public abstract override /*1*/ fun remove(/*0*/ element: E): kotlin.Boolean
public abstract override /*1*/ fun removeAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public abstract fun removeAt(/*0*/ index: kotlin.Int): E
public open override /*1*/ /*fake_override*/ fun removeIf(/*0*/ p0: java.util.function.Predicate<in E!>!): kotlin.Boolean
public open fun replaceAll(/*0*/ p0: java.util.function.UnaryOperator<E!>!): kotlin.Unit
public abstract override /*1*/ fun retainAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public abstract operator fun set(/*0*/ index: kotlin.Int, /*1*/ element: E): E
public open fun sort(/*0*/ p0: java.util.Comparator<in E!>!): kotlin.Unit
public open override /*2*/ /*fake_override*/ fun spliterator(): java.util.Spliterator<E!>!
public open override /*2*/ /*fake_override*/ fun stream(): java.util.stream.Stream<E!>!
public abstract override /*1*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.collections.MutableList<E>
}
public interface MutableListIterator</*0*/ T> : kotlin.collections.ListIterator<T>, kotlin.collections.MutableIterator<T> {
public abstract fun add(/*0*/ element: T): kotlin.Unit
public open override /*2*/ /*fake_override*/ fun forEachRemaining(/*0*/ p0: java.util.function.Consumer<in T!>!): kotlin.Unit
public abstract override /*2*/ fun hasNext(): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun hasPrevious(): kotlin.Boolean
public abstract override /*2*/ fun next(): T
public abstract override /*1*/ /*fake_override*/ fun nextIndex(): kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun previous(): T
public abstract override /*1*/ /*fake_override*/ fun previousIndex(): kotlin.Int
public abstract override /*1*/ fun remove(): kotlin.Unit
public abstract fun set(/*0*/ element: T): kotlin.Unit
}
public interface MutableMap</*0*/ K, /*1*/ V> : kotlin.collections.Map<K, V> {
public abstract override /*1*/ val entries: kotlin.collections.MutableSet<kotlin.collections.MutableMap.MutableEntry<K, V>>
public abstract override /*1*/ fun <get-entries>(): kotlin.collections.MutableSet<kotlin.collections.MutableMap.MutableEntry<K, V>>
public abstract override /*1*/ val keys: kotlin.collections.MutableSet<K>
public abstract override /*1*/ fun <get-keys>(): kotlin.collections.MutableSet<K>
public abstract override /*1*/ /*fake_override*/ val size: kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun <get-size>(): kotlin.Int
public abstract override /*1*/ val values: kotlin.collections.MutableCollection<V>
public abstract override /*1*/ fun <get-values>(): kotlin.collections.MutableCollection<V>
public abstract fun clear(): kotlin.Unit
public open fun compute(/*0*/ p0: K!, /*1*/ p1: java.util.function.BiFunction<in K!, in V!, out V!>!): V!
public open fun computeIfAbsent(/*0*/ p0: K!, /*1*/ p1: java.util.function.Function<in K!, out V!>!): V!
public open fun computeIfPresent(/*0*/ p0: K!, /*1*/ p1: java.util.function.BiFunction<in K!, in V!, out V!>!): V!
public abstract override /*1*/ /*fake_override*/ fun containsKey(/*0*/ key: K): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun containsValue(/*0*/ value: V): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.BiConsumer<in K!, in V!>!): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun get(/*0*/ key: K): V?
public open override /*1*/ /*fake_override*/ fun getOrDefault(/*0*/ p0: kotlin.Any!, /*1*/ p1: V!): V!
public abstract override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public open fun merge(/*0*/ p0: K!, /*1*/ p1: V!, /*2*/ p2: java.util.function.BiFunction<in V!, in V!, out V!>!): V!
public abstract fun put(/*0*/ key: K, /*1*/ value: V): V?
public abstract fun putAll(/*0*/ from: kotlin.collections.Map<out K, V>): kotlin.Unit
public open fun putIfAbsent(/*0*/ p0: K!, /*1*/ p1: V!): V!
public abstract fun remove(/*0*/ key: K): V?
public open fun remove(/*0*/ p0: kotlin.Any!, /*1*/ p1: kotlin.Any!): kotlin.Boolean
public open fun replace(/*0*/ p0: K!, /*1*/ p1: V!): V!
public open fun replace(/*0*/ p0: K!, /*1*/ p1: V!, /*2*/ p2: V!): kotlin.Boolean
public open fun replaceAll(/*0*/ p0: java.util.function.BiFunction<in K!, in V!, out V!>!): kotlin.Unit
public interface MutableEntry</*0*/ K, /*1*/ V> : kotlin.collections.Map.Entry<K, V> {
public abstract override /*1*/ /*fake_override*/ val key: K
public abstract override /*1*/ /*fake_override*/ fun <get-key>(): K
public abstract override /*1*/ /*fake_override*/ val value: V
public abstract override /*1*/ /*fake_override*/ fun <get-value>(): V
public abstract fun setValue(/*0*/ newValue: V): V
}
}
public interface MutableSet</*0*/ E> : kotlin.collections.Set<E>, kotlin.collections.MutableCollection<E> {
public abstract override /*2*/ /*fake_override*/ val size: kotlin.Int
public abstract override /*2*/ /*fake_override*/ fun <get-size>(): kotlin.Int
public abstract override /*1*/ fun add(/*0*/ element: E): kotlin.Boolean
public abstract override /*1*/ fun addAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public abstract override /*1*/ fun clear(): kotlin.Unit
public abstract override /*2*/ /*fake_override*/ fun contains(/*0*/ element: E): kotlin.Boolean
public abstract override /*2*/ /*fake_override*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer<in E!>!): kotlin.Unit
public abstract override /*2*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public abstract override /*2*/ fun iterator(): kotlin.collections.MutableIterator<E>
public open override /*2*/ /*fake_override*/ fun parallelStream(): java.util.stream.Stream<E!>!
public abstract override /*1*/ fun remove(/*0*/ element: E): kotlin.Boolean
public abstract override /*1*/ fun removeAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun removeIf(/*0*/ p0: java.util.function.Predicate<in E!>!): kotlin.Boolean
public abstract override /*1*/ fun retainAll(/*0*/ elements: kotlin.collections.Collection<E>): kotlin.Boolean
public open override /*2*/ /*fake_override*/ fun spliterator(): java.util.Spliterator<E!>!
public open override /*2*/ /*fake_override*/ fun stream(): java.util.stream.Stream<E!>!
}
public interface Set</*0*/ out E> : kotlin.collections.Collection<E> {
public abstract override /*1*/ val size: kotlin.Int
public abstract override /*1*/ fun <get-size>(): kotlin.Int
public abstract override /*1*/ fun contains(/*0*/ element: @kotlin.UnsafeVariance() E): kotlin.Boolean
public abstract override /*1*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection<@kotlin.UnsafeVariance() E>): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer<in E!>!): kotlin.Unit
public abstract override /*1*/ fun isEmpty(): kotlin.Boolean
public abstract override /*1*/ fun iterator(): kotlin.collections.Iterator<E>
public open override /*1*/ /*fake_override*/ fun parallelStream(): java.util.stream.Stream<E!>!
public open override /*1*/ fun spliterator(): java.util.Spliterator<E!>!
public open override /*1*/ /*fake_override*/ fun stream(): java.util.stream.Stream<E!>!
}
public abstract class ShortIterator : kotlin.collections.Iterator<kotlin.Short> {
/*primary*/ public constructor ShortIterator()
public open override /*1*/ /*fake_override*/ fun forEachRemaining(/*0*/ p0: java.util.function.Consumer<in kotlin.Short!>!): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ fun next(): kotlin.Short
public abstract fun nextShort(): kotlin.Short
}
@@ -0,0 +1,196 @@
package-fragment kotlin.ranges
public open class CharProgression : kotlin.collections.Iterable<kotlin.Char> {
/*primary*/ internal constructor CharProgression(/*0*/ start: kotlin.Char, /*1*/ endInclusive: kotlin.Char, /*2*/ step: kotlin.Int)
public final val first: kotlin.Char
public final fun <get-first>(): kotlin.Char
public final val last: kotlin.Char
public final fun <get-last>(): kotlin.Char
public final val step: kotlin.Int
public final fun <get-step>(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer<in kotlin.Char!>!): kotlin.Unit
public open fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.collections.CharIterator
public open override /*1*/ /*fake_override*/ fun spliterator(): java.util.Spliterator<kotlin.Char!>!
public companion object Companion {
/*primary*/ private constructor Companion()
public final fun fromClosedRange(/*0*/ rangeStart: kotlin.Char, /*1*/ rangeEnd: kotlin.Char, /*2*/ step: kotlin.Int): kotlin.ranges.CharProgression
}
}
internal final class CharProgressionIterator : kotlin.collections.CharIterator {
/*primary*/ public constructor CharProgressionIterator(/*0*/ first: kotlin.Char, /*1*/ last: kotlin.Char, /*2*/ step: kotlin.Int)
private final val finalElement: kotlin.Int
private final fun <get-finalElement>(): kotlin.Int
private final var hasNext: kotlin.Boolean
private final fun <get-hasNext>(): kotlin.Boolean
private final fun <set-hasNext>(/*0*/ <set-?>: kotlin.Boolean): kotlin.Unit
private final var next: kotlin.Int
private final fun <get-next>(): kotlin.Int
private final fun <set-next>(/*0*/ <set-?>: kotlin.Int): kotlin.Unit
public final val step: kotlin.Int
public final fun <get-step>(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun forEachRemaining(/*0*/ p0: java.util.function.Consumer<in kotlin.Char!>!): kotlin.Unit
public open override /*1*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ /*fake_override*/ fun next(): kotlin.Char
public open override /*1*/ fun nextChar(): kotlin.Char
}
public final class CharRange : kotlin.ranges.CharProgression, kotlin.ranges.ClosedRange<kotlin.Char> {
/*primary*/ public constructor CharRange(/*0*/ start: kotlin.Char, /*1*/ endInclusive: kotlin.Char)
public open override /*1*/ val endInclusive: kotlin.Char
public open override /*1*/ fun <get-endInclusive>(): kotlin.Char
public final override /*1*/ /*fake_override*/ val first: kotlin.Char
public final override /*1*/ /*fake_override*/ fun <get-first>(): kotlin.Char
public final override /*1*/ /*fake_override*/ val last: kotlin.Char
public final override /*1*/ /*fake_override*/ fun <get-last>(): kotlin.Char
public open override /*1*/ val start: kotlin.Char
public open override /*1*/ fun <get-start>(): kotlin.Char
public final override /*1*/ /*fake_override*/ val step: kotlin.Int
public final override /*1*/ /*fake_override*/ fun <get-step>(): kotlin.Int
public open override /*1*/ fun contains(/*0*/ value: kotlin.Char): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer<in kotlin.Char!>!): kotlin.Unit
public open override /*2*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.CharIterator
public open override /*1*/ /*fake_override*/ fun spliterator(): java.util.Spliterator<kotlin.Char!>!
public companion object Companion {
/*primary*/ private constructor Companion()
public final val EMPTY: kotlin.ranges.CharRange
public final fun <get-EMPTY>(): kotlin.ranges.CharRange
}
}
public interface ClosedRange</*0*/ T : kotlin.Comparable<T>> {
public abstract val endInclusive: T
public abstract fun <get-endInclusive>(): T
public abstract val start: T
public abstract fun <get-start>(): T
public open operator fun contains(/*0*/ value: T): kotlin.Boolean
public open fun isEmpty(): kotlin.Boolean
}
public open class IntProgression : kotlin.collections.Iterable<kotlin.Int> {
/*primary*/ internal constructor IntProgression(/*0*/ start: kotlin.Int, /*1*/ endInclusive: kotlin.Int, /*2*/ step: kotlin.Int)
public final val first: kotlin.Int
public final fun <get-first>(): kotlin.Int
public final val last: kotlin.Int
public final fun <get-last>(): kotlin.Int
public final val step: kotlin.Int
public final fun <get-step>(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer<in kotlin.Int!>!): kotlin.Unit
public open fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.collections.IntIterator
public open override /*1*/ /*fake_override*/ fun spliterator(): java.util.Spliterator<kotlin.Int!>!
public companion object Companion {
/*primary*/ private constructor Companion()
public final fun fromClosedRange(/*0*/ rangeStart: kotlin.Int, /*1*/ rangeEnd: kotlin.Int, /*2*/ step: kotlin.Int): kotlin.ranges.IntProgression
}
}
internal final class IntProgressionIterator : kotlin.collections.IntIterator {
/*primary*/ public constructor IntProgressionIterator(/*0*/ first: kotlin.Int, /*1*/ last: kotlin.Int, /*2*/ step: kotlin.Int)
private final val finalElement: kotlin.Int
private final fun <get-finalElement>(): kotlin.Int
private final var hasNext: kotlin.Boolean
private final fun <get-hasNext>(): kotlin.Boolean
private final fun <set-hasNext>(/*0*/ <set-?>: kotlin.Boolean): kotlin.Unit
private final var next: kotlin.Int
private final fun <get-next>(): kotlin.Int
private final fun <set-next>(/*0*/ <set-?>: kotlin.Int): kotlin.Unit
public final val step: kotlin.Int
public final fun <get-step>(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun forEachRemaining(/*0*/ p0: java.util.function.Consumer<in kotlin.Int!>!): kotlin.Unit
public open override /*1*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ /*fake_override*/ fun next(): kotlin.Int
public open override /*1*/ fun nextInt(): kotlin.Int
}
public final class IntRange : kotlin.ranges.IntProgression, kotlin.ranges.ClosedRange<kotlin.Int> {
/*primary*/ public constructor IntRange(/*0*/ start: kotlin.Int, /*1*/ endInclusive: kotlin.Int)
public open override /*1*/ val endInclusive: kotlin.Int
public open override /*1*/ fun <get-endInclusive>(): kotlin.Int
public final override /*1*/ /*fake_override*/ val first: kotlin.Int
public final override /*1*/ /*fake_override*/ fun <get-first>(): kotlin.Int
public final override /*1*/ /*fake_override*/ val last: kotlin.Int
public final override /*1*/ /*fake_override*/ fun <get-last>(): kotlin.Int
public open override /*1*/ val start: kotlin.Int
public open override /*1*/ fun <get-start>(): kotlin.Int
public final override /*1*/ /*fake_override*/ val step: kotlin.Int
public final override /*1*/ /*fake_override*/ fun <get-step>(): kotlin.Int
public open override /*1*/ fun contains(/*0*/ value: kotlin.Int): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer<in kotlin.Int!>!): kotlin.Unit
public open override /*2*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.IntIterator
public open override /*1*/ /*fake_override*/ fun spliterator(): java.util.Spliterator<kotlin.Int!>!
public companion object Companion {
/*primary*/ private constructor Companion()
public final val EMPTY: kotlin.ranges.IntRange
public final fun <get-EMPTY>(): kotlin.ranges.IntRange
}
}
public open class LongProgression : kotlin.collections.Iterable<kotlin.Long> {
/*primary*/ internal constructor LongProgression(/*0*/ start: kotlin.Long, /*1*/ endInclusive: kotlin.Long, /*2*/ step: kotlin.Long)
public final val first: kotlin.Long
public final fun <get-first>(): kotlin.Long
public final val last: kotlin.Long
public final fun <get-last>(): kotlin.Long
public final val step: kotlin.Long
public final fun <get-step>(): kotlin.Long
public open override /*1*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer<in kotlin.Long!>!): kotlin.Unit
public open fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.collections.LongIterator
public open override /*1*/ /*fake_override*/ fun spliterator(): java.util.Spliterator<kotlin.Long!>!
public companion object Companion {
/*primary*/ private constructor Companion()
public final fun fromClosedRange(/*0*/ rangeStart: kotlin.Long, /*1*/ rangeEnd: kotlin.Long, /*2*/ step: kotlin.Long): kotlin.ranges.LongProgression
}
}
internal final class LongProgressionIterator : kotlin.collections.LongIterator {
/*primary*/ public constructor LongProgressionIterator(/*0*/ first: kotlin.Long, /*1*/ last: kotlin.Long, /*2*/ step: kotlin.Long)
private final val finalElement: kotlin.Long
private final fun <get-finalElement>(): kotlin.Long
private final var hasNext: kotlin.Boolean
private final fun <get-hasNext>(): kotlin.Boolean
private final fun <set-hasNext>(/*0*/ <set-?>: kotlin.Boolean): kotlin.Unit
private final var next: kotlin.Long
private final fun <get-next>(): kotlin.Long
private final fun <set-next>(/*0*/ <set-?>: kotlin.Long): kotlin.Unit
public final val step: kotlin.Long
public final fun <get-step>(): kotlin.Long
public open override /*1*/ /*fake_override*/ fun forEachRemaining(/*0*/ p0: java.util.function.Consumer<in kotlin.Long!>!): kotlin.Unit
public open override /*1*/ fun hasNext(): kotlin.Boolean
public final override /*1*/ /*fake_override*/ fun next(): kotlin.Long
public open override /*1*/ fun nextLong(): kotlin.Long
}
public final class LongRange : kotlin.ranges.LongProgression, kotlin.ranges.ClosedRange<kotlin.Long> {
/*primary*/ public constructor LongRange(/*0*/ start: kotlin.Long, /*1*/ endInclusive: kotlin.Long)
public open override /*1*/ val endInclusive: kotlin.Long
public open override /*1*/ fun <get-endInclusive>(): kotlin.Long
public final override /*1*/ /*fake_override*/ val first: kotlin.Long
public final override /*1*/ /*fake_override*/ fun <get-first>(): kotlin.Long
public final override /*1*/ /*fake_override*/ val last: kotlin.Long
public final override /*1*/ /*fake_override*/ fun <get-last>(): kotlin.Long
public open override /*1*/ val start: kotlin.Long
public open override /*1*/ fun <get-start>(): kotlin.Long
public final override /*1*/ /*fake_override*/ val step: kotlin.Long
public final override /*1*/ /*fake_override*/ fun <get-step>(): kotlin.Long
public open override /*1*/ fun contains(/*0*/ value: kotlin.Long): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer<in kotlin.Long!>!): kotlin.Unit
public open override /*2*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.LongIterator
public open override /*1*/ /*fake_override*/ fun spliterator(): java.util.Spliterator<kotlin.Long!>!
public companion object Companion {
/*primary*/ private constructor Companion()
public final val EMPTY: kotlin.ranges.LongRange
public final fun <get-EMPTY>(): kotlin.ranges.LongRange
}
}
+705
View File
@@ -0,0 +1,705 @@
package-fragment kotlin
public inline fun </*0*/ reified @kotlin.internal.PureReifiable() T> arrayOf(/*0*/ vararg elements: T /*kotlin.Array<out T>*/): kotlin.Array<T>
public fun </*0*/ reified @kotlin.internal.PureReifiable() T> arrayOfNulls(/*0*/ size: kotlin.Int): kotlin.Array<T?>
public fun booleanArrayOf(/*0*/ vararg elements: kotlin.Boolean /*kotlin.BooleanArray*/): kotlin.BooleanArray
public fun byteArrayOf(/*0*/ vararg elements: kotlin.Byte /*kotlin.ByteArray*/): kotlin.ByteArray
public fun charArrayOf(/*0*/ vararg elements: kotlin.Char /*kotlin.CharArray*/): kotlin.CharArray
public fun doubleArrayOf(/*0*/ vararg elements: kotlin.Double /*kotlin.DoubleArray*/): kotlin.DoubleArray
public inline fun </*0*/ reified @kotlin.internal.PureReifiable() T> emptyArray(): kotlin.Array<T>
public fun floatArrayOf(/*0*/ vararg elements: kotlin.Float /*kotlin.FloatArray*/): kotlin.FloatArray
public fun intArrayOf(/*0*/ vararg elements: kotlin.Int /*kotlin.IntArray*/): kotlin.IntArray
public fun longArrayOf(/*0*/ vararg elements: kotlin.Long /*kotlin.LongArray*/): kotlin.LongArray
public fun shortArrayOf(/*0*/ vararg elements: kotlin.Short /*kotlin.ShortArray*/): kotlin.ShortArray
public operator fun kotlin.String?.plus(/*0*/ other: kotlin.Any?): kotlin.String
public fun kotlin.Any?.toString(): kotlin.String
public interface Annotation {
}
public open class Any {
/*primary*/ public constructor Any()
}
public final class Array</*0*/ T> : kotlin.Cloneable, java.io.Serializable {
public constructor Array</*0*/ T>(/*0*/ size: kotlin.Int, /*1*/ init: (kotlin.Int) -> T)
public final val size: kotlin.Int
public final fun <get-size>(): kotlin.Int
public open override /*1*/ fun clone(): kotlin.Array<T>
public final operator fun get(/*0*/ index: kotlin.Int): T
public final operator fun iterator(): kotlin.collections.Iterator<T>
public final operator fun set(/*0*/ index: kotlin.Int, /*1*/ value: T): kotlin.Unit
}
public final class Boolean : kotlin.Comparable<kotlin.Boolean>, java.io.Serializable {
/*primary*/ private constructor Boolean()
public final infix fun and(/*0*/ other: kotlin.Boolean): kotlin.Boolean
public open override /*1*/ fun compareTo(/*0*/ other: kotlin.Boolean): kotlin.Int
public final operator fun not(): kotlin.Boolean
public final infix fun or(/*0*/ other: kotlin.Boolean): kotlin.Boolean
public final infix fun xor(/*0*/ other: kotlin.Boolean): kotlin.Boolean
}
public final class BooleanArray : kotlin.Cloneable, java.io.Serializable {
/*primary*/ public constructor BooleanArray(/*0*/ size: kotlin.Int)
public constructor BooleanArray(/*0*/ size: kotlin.Int, /*1*/ init: (kotlin.Int) -> kotlin.Boolean)
public final val size: kotlin.Int
public final fun <get-size>(): kotlin.Int
public open override /*1*/ fun clone(): kotlin.BooleanArray
public final operator fun get(/*0*/ index: kotlin.Int): kotlin.Boolean
public final operator fun iterator(): kotlin.collections.BooleanIterator
public final operator fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Boolean): kotlin.Unit
}
public final class Byte : kotlin.Number, kotlin.Comparable<kotlin.Byte>, java.io.Serializable {
/*primary*/ private constructor Byte()
public open override /*1*/ fun compareTo(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Double): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Float): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Long): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun dec(): kotlin.Byte
public final operator fun div(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun div(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun div(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun div(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun div(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun inc(): kotlin.Byte
public final operator fun minus(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun minus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun minus(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun minus(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun minus(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun mod(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun mod(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun mod(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun mod(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun mod(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun plus(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun plus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun plus(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun plus(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun plus(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun rangeTo(/*0*/ other: kotlin.Byte): kotlin.ranges.IntRange
public final operator fun rangeTo(/*0*/ other: kotlin.Int): kotlin.ranges.IntRange
public final operator fun rangeTo(/*0*/ other: kotlin.Long): kotlin.ranges.LongRange
public final operator fun rangeTo(/*0*/ other: kotlin.Short): kotlin.ranges.IntRange
public final operator fun times(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun times(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun times(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun times(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun times(/*0*/ other: kotlin.Short): kotlin.Int
public open override /*1*/ fun toByte(): kotlin.Byte
public open override /*1*/ fun toChar(): kotlin.Char
public open override /*1*/ fun toDouble(): kotlin.Double
public open override /*1*/ fun toFloat(): kotlin.Float
public open override /*1*/ fun toInt(): kotlin.Int
public open override /*1*/ fun toLong(): kotlin.Long
public open override /*1*/ fun toShort(): kotlin.Short
public final operator fun unaryMinus(): kotlin.Int
public final operator fun unaryPlus(): kotlin.Int
public companion object Companion {
/*primary*/ private constructor Companion()
public const final val MAX_VALUE: kotlin.Byte
public final fun <get-MAX_VALUE>(): kotlin.Byte
public const final val MIN_VALUE: kotlin.Byte
public final fun <get-MIN_VALUE>(): kotlin.Byte
}
}
public final class ByteArray : kotlin.Cloneable, java.io.Serializable {
/*primary*/ public constructor ByteArray(/*0*/ size: kotlin.Int)
public constructor ByteArray(/*0*/ size: kotlin.Int, /*1*/ init: (kotlin.Int) -> kotlin.Byte)
public final val size: kotlin.Int
public final fun <get-size>(): kotlin.Int
public open override /*1*/ fun clone(): kotlin.ByteArray
public final operator fun get(/*0*/ index: kotlin.Int): kotlin.Byte
public final operator fun iterator(): kotlin.collections.ByteIterator
public final operator fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Byte): kotlin.Unit
}
public final class Char : kotlin.Comparable<kotlin.Char>, java.io.Serializable {
/*primary*/ private constructor Char()
public open override /*1*/ fun compareTo(/*0*/ other: kotlin.Char): kotlin.Int
public final operator fun dec(): kotlin.Char
public final operator fun inc(): kotlin.Char
public final operator fun minus(/*0*/ other: kotlin.Char): kotlin.Int
public final operator fun minus(/*0*/ other: kotlin.Int): kotlin.Char
public final operator fun plus(/*0*/ other: kotlin.Int): kotlin.Char
public final operator fun rangeTo(/*0*/ other: kotlin.Char): kotlin.ranges.CharRange
public open fun toByte(): kotlin.Byte
public open fun toChar(): kotlin.Char
public open fun toDouble(): kotlin.Double
public open fun toFloat(): kotlin.Float
public open fun toInt(): kotlin.Int
public open fun toLong(): kotlin.Long
public open fun toShort(): kotlin.Short
public companion object Companion {
/*primary*/ private constructor Companion()
public const final val MAX_HIGH_SURROGATE: kotlin.Char
public final fun <get-MAX_HIGH_SURROGATE>(): kotlin.Char
public const final val MAX_LOW_SURROGATE: kotlin.Char
public final fun <get-MAX_LOW_SURROGATE>(): kotlin.Char
public const final val MAX_SURROGATE: kotlin.Char
public final fun <get-MAX_SURROGATE>(): kotlin.Char
public const final val MIN_HIGH_SURROGATE: kotlin.Char
public final fun <get-MIN_HIGH_SURROGATE>(): kotlin.Char
public const final val MIN_LOW_SURROGATE: kotlin.Char
public final fun <get-MIN_LOW_SURROGATE>(): kotlin.Char
public const final val MIN_SURROGATE: kotlin.Char
public final fun <get-MIN_SURROGATE>(): kotlin.Char
}
}
public final class CharArray : kotlin.Cloneable, java.io.Serializable {
/*primary*/ public constructor CharArray(/*0*/ size: kotlin.Int)
public constructor CharArray(/*0*/ size: kotlin.Int, /*1*/ init: (kotlin.Int) -> kotlin.Char)
public final val size: kotlin.Int
public final fun <get-size>(): kotlin.Int
public open override /*1*/ fun clone(): kotlin.CharArray
public final operator fun get(/*0*/ index: kotlin.Int): kotlin.Char
public final operator fun iterator(): kotlin.collections.CharIterator
public final operator fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Char): kotlin.Unit
}
public interface CharSequence {
public abstract val length: kotlin.Int
public abstract fun <get-length>(): kotlin.Int
public open fun chars(): java.util.stream.IntStream!
public open fun codePoints(): java.util.stream.IntStream!
public abstract operator fun get(/*0*/ index: kotlin.Int): kotlin.Char
public abstract fun subSequence(/*0*/ startIndex: kotlin.Int, /*1*/ endIndex: kotlin.Int): kotlin.CharSequence
}
public interface Cloneable {
protected open fun clone(): kotlin.Any
}
public interface Comparable</*0*/ in T> {
public abstract operator fun compareTo(/*0*/ other: T): kotlin.Int
}
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.PROPERTY_GETTER}) @kotlin.annotation.MustBeDocumented() public final annotation class Deprecated : kotlin.Annotation {
/*primary*/ public constructor Deprecated(/*0*/ message: kotlin.String, /*1*/ replaceWith: kotlin.ReplaceWith = ..., /*2*/ level: kotlin.DeprecationLevel = ...)
public final val level: kotlin.DeprecationLevel
public final fun <get-level>(): kotlin.DeprecationLevel
public final val message: kotlin.String
public final fun <get-message>(): kotlin.String
public final val replaceWith: kotlin.ReplaceWith
public final fun <get-replaceWith>(): kotlin.ReplaceWith
}
public final enum class DeprecationLevel : kotlin.Enum<kotlin.DeprecationLevel> {
enum entry WARNING
enum entry ERROR
enum entry HIDDEN
/*primary*/ private constructor DeprecationLevel()
public final override /*1*/ /*fake_override*/ val name: kotlin.String
public final override /*1*/ /*fake_override*/ fun <get-name>(): kotlin.String
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
public final override /*1*/ /*fake_override*/ fun <get-ordinal>(): kotlin.Int
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: kotlin.DeprecationLevel): kotlin.Int
protected/*protected and package*/ final override /*1*/ /*fake_override*/ fun finalize(): kotlin.Unit
public final override /*1*/ /*fake_override*/ fun getDeclaringClass(): java.lang.Class<kotlin.DeprecationLevel!>!
// Static members
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): kotlin.DeprecationLevel
public final /*synthesized*/ fun values(): kotlin.Array<kotlin.DeprecationLevel>
}
public final class Double : kotlin.Number, kotlin.Comparable<kotlin.Double>, java.io.Serializable {
/*primary*/ private constructor Double()
public final operator fun compareTo(/*0*/ other: kotlin.Byte): kotlin.Int
public open override /*1*/ fun compareTo(/*0*/ other: kotlin.Double): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Float): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Long): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun dec(): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Byte): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Float): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Int): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Long): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Short): kotlin.Double
public final operator fun inc(): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Byte): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Float): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Int): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Long): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Short): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Byte): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Float): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Int): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Long): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Short): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Byte): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Float): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Int): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Long): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Short): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Byte): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Float): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Int): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Long): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Short): kotlin.Double
public open override /*1*/ fun toByte(): kotlin.Byte
public open override /*1*/ fun toChar(): kotlin.Char
public open override /*1*/ fun toDouble(): kotlin.Double
public open override /*1*/ fun toFloat(): kotlin.Float
public open override /*1*/ fun toInt(): kotlin.Int
public open override /*1*/ fun toLong(): kotlin.Long
public open override /*1*/ fun toShort(): kotlin.Short
public final operator fun unaryMinus(): kotlin.Double
public final operator fun unaryPlus(): kotlin.Double
public companion object Companion {
/*primary*/ private constructor Companion()
public final val MAX_VALUE: kotlin.Double
public final fun <get-MAX_VALUE>(): kotlin.Double
public final val MIN_VALUE: kotlin.Double
public final fun <get-MIN_VALUE>(): kotlin.Double
public final val NEGATIVE_INFINITY: kotlin.Double
public final fun <get-NEGATIVE_INFINITY>(): kotlin.Double
public final val NaN: kotlin.Double
public final fun <get-NaN>(): kotlin.Double
public final val POSITIVE_INFINITY: kotlin.Double
public final fun <get-POSITIVE_INFINITY>(): kotlin.Double
}
}
public final class DoubleArray : kotlin.Cloneable, java.io.Serializable {
/*primary*/ public constructor DoubleArray(/*0*/ size: kotlin.Int)
public constructor DoubleArray(/*0*/ size: kotlin.Int, /*1*/ init: (kotlin.Int) -> kotlin.Double)
public final val size: kotlin.Int
public final fun <get-size>(): kotlin.Int
public open override /*1*/ fun clone(): kotlin.DoubleArray
public final operator fun get(/*0*/ index: kotlin.Int): kotlin.Double
public final operator fun iterator(): kotlin.collections.DoubleIterator
public final operator fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Double): kotlin.Unit
}
public abstract class Enum</*0*/ E : kotlin.Enum<E>> : kotlin.Comparable<E>, java.io.Serializable {
/*primary*/ public constructor Enum</*0*/ E : kotlin.Enum<E>>(/*0*/ name: kotlin.String, /*1*/ ordinal: kotlin.Int)
public final val name: kotlin.String
public final fun <get-name>(): kotlin.String
public final val ordinal: kotlin.Int
public final fun <get-ordinal>(): kotlin.Int
protected final fun clone(): kotlin.Any
public final override /*1*/ fun compareTo(/*0*/ other: E): kotlin.Int
protected/*protected and package*/ final fun finalize(): kotlin.Unit
public final fun getDeclaringClass(): java.lang.Class<E!>!
public companion object Companion {
/*primary*/ private constructor Companion()
}
}
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) @kotlin.annotation.MustBeDocumented() public final annotation class ExtensionFunctionType : kotlin.Annotation {
/*primary*/ public constructor ExtensionFunctionType()
}
public final class Float : kotlin.Number, kotlin.Comparable<kotlin.Float>, java.io.Serializable {
/*primary*/ private constructor Float()
public final operator fun compareTo(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Double): kotlin.Int
public open override /*1*/ fun compareTo(/*0*/ other: kotlin.Float): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Long): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun dec(): kotlin.Float
public final operator fun div(/*0*/ other: kotlin.Byte): kotlin.Float
public final operator fun div(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun div(/*0*/ other: kotlin.Int): kotlin.Float
public final operator fun div(/*0*/ other: kotlin.Long): kotlin.Float
public final operator fun div(/*0*/ other: kotlin.Short): kotlin.Float
public final operator fun inc(): kotlin.Float
public final operator fun minus(/*0*/ other: kotlin.Byte): kotlin.Float
public final operator fun minus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun minus(/*0*/ other: kotlin.Int): kotlin.Float
public final operator fun minus(/*0*/ other: kotlin.Long): kotlin.Float
public final operator fun minus(/*0*/ other: kotlin.Short): kotlin.Float
public final operator fun mod(/*0*/ other: kotlin.Byte): kotlin.Float
public final operator fun mod(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun mod(/*0*/ other: kotlin.Int): kotlin.Float
public final operator fun mod(/*0*/ other: kotlin.Long): kotlin.Float
public final operator fun mod(/*0*/ other: kotlin.Short): kotlin.Float
public final operator fun plus(/*0*/ other: kotlin.Byte): kotlin.Float
public final operator fun plus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun plus(/*0*/ other: kotlin.Int): kotlin.Float
public final operator fun plus(/*0*/ other: kotlin.Long): kotlin.Float
public final operator fun plus(/*0*/ other: kotlin.Short): kotlin.Float
public final operator fun times(/*0*/ other: kotlin.Byte): kotlin.Float
public final operator fun times(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun times(/*0*/ other: kotlin.Int): kotlin.Float
public final operator fun times(/*0*/ other: kotlin.Long): kotlin.Float
public final operator fun times(/*0*/ other: kotlin.Short): kotlin.Float
public open override /*1*/ fun toByte(): kotlin.Byte
public open override /*1*/ fun toChar(): kotlin.Char
public open override /*1*/ fun toDouble(): kotlin.Double
public open override /*1*/ fun toFloat(): kotlin.Float
public open override /*1*/ fun toInt(): kotlin.Int
public open override /*1*/ fun toLong(): kotlin.Long
public open override /*1*/ fun toShort(): kotlin.Short
public final operator fun unaryMinus(): kotlin.Float
public final operator fun unaryPlus(): kotlin.Float
public companion object Companion {
/*primary*/ private constructor Companion()
public final val MAX_VALUE: kotlin.Float
public final fun <get-MAX_VALUE>(): kotlin.Float
public final val MIN_VALUE: kotlin.Float
public final fun <get-MIN_VALUE>(): kotlin.Float
public final val NEGATIVE_INFINITY: kotlin.Float
public final fun <get-NEGATIVE_INFINITY>(): kotlin.Float
public final val NaN: kotlin.Float
public final fun <get-NaN>(): kotlin.Float
public final val POSITIVE_INFINITY: kotlin.Float
public final fun <get-POSITIVE_INFINITY>(): kotlin.Float
}
}
public final class FloatArray : kotlin.Cloneable, java.io.Serializable {
/*primary*/ public constructor FloatArray(/*0*/ size: kotlin.Int)
public constructor FloatArray(/*0*/ size: kotlin.Int, /*1*/ init: (kotlin.Int) -> kotlin.Float)
public final val size: kotlin.Int
public final fun <get-size>(): kotlin.Int
public open override /*1*/ fun clone(): kotlin.FloatArray
public final operator fun get(/*0*/ index: kotlin.Int): kotlin.Float
public final operator fun iterator(): kotlin.collections.FloatIterator
public final operator fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Float): kotlin.Unit
}
public interface Function</*0*/ out R> {
}
public final class Int : kotlin.Number, kotlin.Comparable<kotlin.Int>, java.io.Serializable {
/*primary*/ private constructor Int()
public final infix fun and(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Double): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Float): kotlin.Int
public open override /*1*/ fun compareTo(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Long): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun dec(): kotlin.Int
public final operator fun div(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun div(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun div(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun div(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun div(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun inc(): kotlin.Int
public final fun inv(): kotlin.Int
public final operator fun minus(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun minus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun minus(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun minus(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun minus(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun mod(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun mod(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun mod(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun mod(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun mod(/*0*/ other: kotlin.Short): kotlin.Int
public final infix fun or(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun plus(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun plus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun plus(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun plus(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun plus(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun rangeTo(/*0*/ other: kotlin.Byte): kotlin.ranges.IntRange
public final operator fun rangeTo(/*0*/ other: kotlin.Int): kotlin.ranges.IntRange
public final operator fun rangeTo(/*0*/ other: kotlin.Long): kotlin.ranges.LongRange
public final operator fun rangeTo(/*0*/ other: kotlin.Short): kotlin.ranges.IntRange
public final infix fun shl(/*0*/ bitCount: kotlin.Int): kotlin.Int
public final infix fun shr(/*0*/ bitCount: kotlin.Int): kotlin.Int
public final operator fun times(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun times(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun times(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun times(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun times(/*0*/ other: kotlin.Short): kotlin.Int
public open override /*1*/ fun toByte(): kotlin.Byte
public open override /*1*/ fun toChar(): kotlin.Char
public open override /*1*/ fun toDouble(): kotlin.Double
public open override /*1*/ fun toFloat(): kotlin.Float
public open override /*1*/ fun toInt(): kotlin.Int
public open override /*1*/ fun toLong(): kotlin.Long
public open override /*1*/ fun toShort(): kotlin.Short
public final operator fun unaryMinus(): kotlin.Int
public final operator fun unaryPlus(): kotlin.Int
public final infix fun ushr(/*0*/ bitCount: kotlin.Int): kotlin.Int
public final infix fun xor(/*0*/ other: kotlin.Int): kotlin.Int
public companion object Companion {
/*primary*/ private constructor Companion()
public const final val MAX_VALUE: kotlin.Int
public final fun <get-MAX_VALUE>(): kotlin.Int
public const final val MIN_VALUE: kotlin.Int
public final fun <get-MIN_VALUE>(): kotlin.Int
}
}
public final class IntArray : kotlin.Cloneable, java.io.Serializable {
/*primary*/ public constructor IntArray(/*0*/ size: kotlin.Int)
public constructor IntArray(/*0*/ size: kotlin.Int, /*1*/ init: (kotlin.Int) -> kotlin.Int)
public final val size: kotlin.Int
public final fun <get-size>(): kotlin.Int
public open override /*1*/ fun clone(): kotlin.IntArray
public final operator fun get(/*0*/ index: kotlin.Int): kotlin.Int
public final operator fun iterator(): kotlin.collections.IntIterator
public final operator fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Int): kotlin.Unit
}
public final class Long : kotlin.Number, kotlin.Comparable<kotlin.Long>, java.io.Serializable {
/*primary*/ private constructor Long()
public final infix fun and(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun compareTo(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Double): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Float): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Int): kotlin.Int
public open override /*1*/ fun compareTo(/*0*/ other: kotlin.Long): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun dec(): kotlin.Long
public final operator fun div(/*0*/ other: kotlin.Byte): kotlin.Long
public final operator fun div(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun div(/*0*/ other: kotlin.Int): kotlin.Long
public final operator fun div(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun div(/*0*/ other: kotlin.Short): kotlin.Long
public final operator fun inc(): kotlin.Long
public final fun inv(): kotlin.Long
public final operator fun minus(/*0*/ other: kotlin.Byte): kotlin.Long
public final operator fun minus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun minus(/*0*/ other: kotlin.Int): kotlin.Long
public final operator fun minus(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun minus(/*0*/ other: kotlin.Short): kotlin.Long
public final operator fun mod(/*0*/ other: kotlin.Byte): kotlin.Long
public final operator fun mod(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun mod(/*0*/ other: kotlin.Int): kotlin.Long
public final operator fun mod(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun mod(/*0*/ other: kotlin.Short): kotlin.Long
public final infix fun or(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun plus(/*0*/ other: kotlin.Byte): kotlin.Long
public final operator fun plus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun plus(/*0*/ other: kotlin.Int): kotlin.Long
public final operator fun plus(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun plus(/*0*/ other: kotlin.Short): kotlin.Long
public final operator fun rangeTo(/*0*/ other: kotlin.Byte): kotlin.ranges.LongRange
public final operator fun rangeTo(/*0*/ other: kotlin.Int): kotlin.ranges.LongRange
public final operator fun rangeTo(/*0*/ other: kotlin.Long): kotlin.ranges.LongRange
public final operator fun rangeTo(/*0*/ other: kotlin.Short): kotlin.ranges.LongRange
public final infix fun shl(/*0*/ bitCount: kotlin.Int): kotlin.Long
public final infix fun shr(/*0*/ bitCount: kotlin.Int): kotlin.Long
public final operator fun times(/*0*/ other: kotlin.Byte): kotlin.Long
public final operator fun times(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun times(/*0*/ other: kotlin.Int): kotlin.Long
public final operator fun times(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun times(/*0*/ other: kotlin.Short): kotlin.Long
public open override /*1*/ fun toByte(): kotlin.Byte
public open override /*1*/ fun toChar(): kotlin.Char
public open override /*1*/ fun toDouble(): kotlin.Double
public open override /*1*/ fun toFloat(): kotlin.Float
public open override /*1*/ fun toInt(): kotlin.Int
public open override /*1*/ fun toLong(): kotlin.Long
public open override /*1*/ fun toShort(): kotlin.Short
public final operator fun unaryMinus(): kotlin.Long
public final operator fun unaryPlus(): kotlin.Long
public final infix fun ushr(/*0*/ bitCount: kotlin.Int): kotlin.Long
public final infix fun xor(/*0*/ other: kotlin.Long): kotlin.Long
public companion object Companion {
/*primary*/ private constructor Companion()
public const final val MAX_VALUE: kotlin.Long
public final fun <get-MAX_VALUE>(): kotlin.Long
public const final val MIN_VALUE: kotlin.Long
public final fun <get-MIN_VALUE>(): kotlin.Long
}
}
public final class LongArray : kotlin.Cloneable, java.io.Serializable {
/*primary*/ public constructor LongArray(/*0*/ size: kotlin.Int)
public constructor LongArray(/*0*/ size: kotlin.Int, /*1*/ init: (kotlin.Int) -> kotlin.Long)
public final val size: kotlin.Int
public final fun <get-size>(): kotlin.Int
public open override /*1*/ fun clone(): kotlin.LongArray
public final operator fun get(/*0*/ index: kotlin.Int): kotlin.Long
public final operator fun iterator(): kotlin.collections.LongIterator
public final operator fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Long): kotlin.Unit
}
public final class Nothing {
/*primary*/ private constructor Nothing()
}
public abstract class Number : kotlin.Any, java.io.Serializable {
/*primary*/ public constructor Number()
public abstract fun toByte(): kotlin.Byte
public abstract fun toChar(): kotlin.Char
public abstract fun toDouble(): kotlin.Double
public abstract fun toFloat(): kotlin.Float
public abstract fun toInt(): kotlin.Int
public abstract fun toLong(): kotlin.Long
public abstract fun toShort(): kotlin.Short
}
@kotlin.annotation.Target(allowedTargets = {}) @kotlin.annotation.Retention(value = AnnotationRetention.BINARY) @kotlin.annotation.MustBeDocumented() public final annotation class ReplaceWith : kotlin.Annotation {
/*primary*/ public constructor ReplaceWith(/*0*/ expression: kotlin.String, /*1*/ vararg imports: kotlin.String /*kotlin.Array<out kotlin.String>*/)
public final val expression: kotlin.String
public final fun <get-expression>(): kotlin.String
public final val imports: kotlin.Array<out kotlin.String>
public final fun <get-imports>(): kotlin.Array<out kotlin.String>
}
public final class Short : kotlin.Number, kotlin.Comparable<kotlin.Short>, java.io.Serializable {
/*primary*/ private constructor Short()
public final operator fun compareTo(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Double): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Float): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun compareTo(/*0*/ other: kotlin.Long): kotlin.Int
public open override /*1*/ fun compareTo(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun dec(): kotlin.Short
public final operator fun div(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun div(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun div(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun div(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun div(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun div(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun inc(): kotlin.Short
public final operator fun minus(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun minus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun minus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun minus(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun minus(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun minus(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun mod(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun mod(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun mod(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun mod(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun mod(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun mod(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun plus(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun plus(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun plus(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun plus(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun plus(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun plus(/*0*/ other: kotlin.Short): kotlin.Int
public final operator fun rangeTo(/*0*/ other: kotlin.Byte): kotlin.ranges.IntRange
public final operator fun rangeTo(/*0*/ other: kotlin.Int): kotlin.ranges.IntRange
public final operator fun rangeTo(/*0*/ other: kotlin.Long): kotlin.ranges.LongRange
public final operator fun rangeTo(/*0*/ other: kotlin.Short): kotlin.ranges.IntRange
public final operator fun times(/*0*/ other: kotlin.Byte): kotlin.Int
public final operator fun times(/*0*/ other: kotlin.Double): kotlin.Double
public final operator fun times(/*0*/ other: kotlin.Float): kotlin.Float
public final operator fun times(/*0*/ other: kotlin.Int): kotlin.Int
public final operator fun times(/*0*/ other: kotlin.Long): kotlin.Long
public final operator fun times(/*0*/ other: kotlin.Short): kotlin.Int
public open override /*1*/ fun toByte(): kotlin.Byte
public open override /*1*/ fun toChar(): kotlin.Char
public open override /*1*/ fun toDouble(): kotlin.Double
public open override /*1*/ fun toFloat(): kotlin.Float
public open override /*1*/ fun toInt(): kotlin.Int
public open override /*1*/ fun toLong(): kotlin.Long
public open override /*1*/ fun toShort(): kotlin.Short
public final operator fun unaryMinus(): kotlin.Int
public final operator fun unaryPlus(): kotlin.Int
public companion object Companion {
/*primary*/ private constructor Companion()
public const final val MAX_VALUE: kotlin.Short
public final fun <get-MAX_VALUE>(): kotlin.Short
public const final val MIN_VALUE: kotlin.Short
public final fun <get-MIN_VALUE>(): kotlin.Short
}
}
public final class ShortArray : kotlin.Cloneable, java.io.Serializable {
/*primary*/ public constructor ShortArray(/*0*/ size: kotlin.Int)
public constructor ShortArray(/*0*/ size: kotlin.Int, /*1*/ init: (kotlin.Int) -> kotlin.Short)
public final val size: kotlin.Int
public final fun <get-size>(): kotlin.Int
public open override /*1*/ fun clone(): kotlin.ShortArray
public final operator fun get(/*0*/ index: kotlin.Int): kotlin.Short
public final operator fun iterator(): kotlin.collections.ShortIterator
public final operator fun set(/*0*/ index: kotlin.Int, /*1*/ value: kotlin.Short): kotlin.Unit
}
public final class String : kotlin.Comparable<kotlin.String>, kotlin.CharSequence, java.io.Serializable {
/*primary*/ public constructor String()
public open override /*1*/ val length: kotlin.Int
public open override /*1*/ fun <get-length>(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun chars(): java.util.stream.IntStream!
public open override /*1*/ /*fake_override*/ fun codePoints(): java.util.stream.IntStream!
public open override /*1*/ fun compareTo(/*0*/ other: kotlin.String): kotlin.Int
public open override /*1*/ fun get(/*0*/ index: kotlin.Int): kotlin.Char
public final operator fun plus(/*0*/ other: kotlin.Any?): kotlin.String
public open override /*1*/ fun subSequence(/*0*/ startIndex: kotlin.Int, /*1*/ endIndex: kotlin.Int): kotlin.CharSequence
public companion object Companion {
/*primary*/ private constructor Companion()
}
}
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.PROPERTY, AnnotationTarget.FIELD, AnnotationTarget.LOCAL_VARIABLE, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.TYPE, AnnotationTarget.EXPRESSION, AnnotationTarget.FILE}) @kotlin.annotation.Retention(value = AnnotationRetention.SOURCE) public final annotation class Suppress : kotlin.Annotation {
/*primary*/ public constructor Suppress(/*0*/ vararg names: kotlin.String /*kotlin.Array<out kotlin.String>*/)
public final val names: kotlin.Array<out kotlin.String>
public final fun <get-names>(): kotlin.Array<out kotlin.String>
}
public open class Throwable : kotlin.Any, java.io.Serializable {
public constructor Throwable()
public constructor Throwable(/*0*/ message: kotlin.String?)
/*primary*/ public constructor Throwable(/*0*/ message: kotlin.String?, /*1*/ cause: kotlin.Throwable?)
public constructor Throwable(/*0*/ cause: kotlin.Throwable?)
public open val cause: kotlin.Throwable?
public open fun <get-cause>(): kotlin.Throwable?
public open val message: kotlin.String?
public open fun <get-message>(): kotlin.String?
public final fun addSuppressed(/*0*/ p0: kotlin.Throwable!): kotlin.Unit
public open fun fillInStackTrace(): kotlin.Throwable!
public open fun getLocalizedMessage(): kotlin.String!
public open fun getStackTrace(): kotlin.Array<(out) java.lang.StackTraceElement!>!
public final fun getSuppressed(): kotlin.Array<(out) kotlin.Throwable!>!
public open fun initCause(/*0*/ p0: kotlin.Throwable!): kotlin.Throwable!
public open fun printStackTrace(): kotlin.Unit
public open fun printStackTrace(/*0*/ p0: java.io.PrintStream!): kotlin.Unit
public open fun printStackTrace(/*0*/ p0: java.io.PrintWriter!): kotlin.Unit
public open fun setStackTrace(/*0*/ p0: kotlin.Array<(out) java.lang.StackTraceElement!>!): kotlin.Unit
}
public object Unit {
/*primary*/ private constructor Unit()
}
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) @kotlin.annotation.Retention(value = AnnotationRetention.SOURCE) @kotlin.annotation.MustBeDocumented() public final annotation class UnsafeVariance : kotlin.Annotation {
/*primary*/ public constructor UnsafeVariance()
}
+33
View File
@@ -0,0 +1,33 @@
// FULL_JDK
// WITH_RUNTIME
import java.util.*
import java.util.function.Predicate
class MyList : AbstractCollection<String>(), MutableCollection<String> {
override fun iterator(): MutableIterator<String> {
throw UnsupportedOperationException()
}
override val size: Int
get() = throw UnsupportedOperationException()
override fun removeIf(predicate: Predicate<in String>) =
predicate.test("abc")
}
fun box(): String {
val ml = mutableListOf("xyz", "abc")
if (!ml.removeIf { x -> x == "abc" }) return "fail 1"
if (ml.removeIf { x -> x == "abc" }) return "fail 2"
if (ml != listOf("xyz")) return "fail 3"
val myList = MyList()
if (!myList.removeIf { x -> x == "abc" }) return "fail 4"
if (myList.removeIf { x -> x == "xyz" }) return "fail 5"
return "OK"
}
+61
View File
@@ -0,0 +1,61 @@
// FULL_JDK
// WITH_RUNTIME
import java.util.stream.*
class B<F> : List<F> {
override val size: Int
get() = throw UnsupportedOperationException()
override fun contains(element: F): Boolean {
throw UnsupportedOperationException()
}
override fun containsAll(elements: Collection<F>): Boolean {
throw UnsupportedOperationException()
}
override fun get(index: Int): F {
throw UnsupportedOperationException()
}
override fun indexOf(element: F): Int {
throw UnsupportedOperationException()
}
override fun isEmpty(): Boolean {
throw UnsupportedOperationException()
}
override fun iterator(): Iterator<F> {
throw UnsupportedOperationException()
}
override fun lastIndexOf(element: F): Int {
throw UnsupportedOperationException()
}
override fun listIterator(): ListIterator<F> {
throw UnsupportedOperationException()
}
override fun listIterator(index: Int): ListIterator<F> {
throw UnsupportedOperationException()
}
override fun subList(fromIndex: Int, toIndex: Int): List<F> {
throw UnsupportedOperationException()
}
override fun stream() = Stream.of("abc", "ab") as Stream<F>
}
fun box(): String {
val a: List<String> = listOf("abc", "a", "ab")
val b = a.stream().filter { it.length > 1 }.collect(Collectors.toList())
if (b != listOf("abc", "ab")) return "fail 1"
val c = B<String>().stream().collect(Collectors.toList())
if (c != listOf("abc", "ab")) return "fail 2"
return "OK"
}
@@ -0,0 +1,21 @@
// FILE: A.kt
import java.util.*
class Jdk6List<F> : AbstractList<F>() {
override fun get(index: Int): F {
return "OK" as F
}
override val size: Int
get() = 2
}
// FILE: B.kt
// FULL_JDK
fun box(): String {
val result = Jdk6List<String>().stream().filter { it == "OK" }.count()
if (result != 2L) return "fai1: $result"
return "OK"
}
@@ -0,0 +1,10 @@
import java.util.stream.*
interface A : MutableCollection<String> {
override fun removeIf(x: java.util.function.Predicate<in String>) = false
}
fun foo(x: MutableList<String>, y: A) {
x.removeIf { it.length > 0 }
y.removeIf { it.length > 0 }
}
@@ -0,0 +1,25 @@
package
public fun foo(/*0*/ x: kotlin.collections.MutableList<kotlin.String>, /*1*/ y: A): kotlin.Unit
public interface A : kotlin.collections.MutableCollection<kotlin.String> {
public abstract override /*1*/ /*fake_override*/ val size: kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun add(/*0*/ element: kotlin.String): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun addAll(/*0*/ elements: kotlin.collections.Collection<kotlin.String>): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun clear(): kotlin.Unit
public abstract override /*1*/ /*fake_override*/ fun contains(/*0*/ element: kotlin.String): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection<kotlin.String>): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer<in kotlin.String!>!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.MutableIterator<kotlin.String>
public open override /*1*/ /*fake_override*/ fun parallelStream(): java.util.stream.Stream<kotlin.String!>!
public abstract override /*1*/ /*fake_override*/ fun remove(/*0*/ element: kotlin.String): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun removeAll(/*0*/ elements: kotlin.collections.Collection<kotlin.String>): kotlin.Boolean
public open override /*1*/ fun removeIf(/*0*/ x: java.util.function.Predicate<in kotlin.String>): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun retainAll(/*0*/ elements: kotlin.collections.Collection<kotlin.String>): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun spliterator(): java.util.Spliterator<kotlin.String!>!
public open override /*1*/ /*fake_override*/ fun stream(): java.util.stream.Stream<kotlin.String!>!
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -0,0 +1,10 @@
import java.util.stream.*
interface A : Collection<String> {
override fun stream(): Stream<String> = Stream.of()
}
fun foo(x: List<String>, y: A) {
x.stream().filter { it.length > 0 }.collect(Collectors.toList())
y.stream().filter { it.length > 0 }
}
@@ -0,0 +1,18 @@
package
public fun foo(/*0*/ x: kotlin.collections.List<kotlin.String>, /*1*/ y: A): kotlin.Unit
public interface A : kotlin.collections.Collection<kotlin.String> {
public abstract override /*1*/ /*fake_override*/ val size: kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun contains(/*0*/ element: kotlin.String): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection<kotlin.String>): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer<in kotlin.String!>!): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.Iterator<kotlin.String>
public open override /*1*/ /*fake_override*/ fun parallelStream(): java.util.stream.Stream<kotlin.String!>!
public open override /*1*/ /*fake_override*/ fun spliterator(): java.util.Spliterator<kotlin.String!>!
public open override /*1*/ fun stream(): java.util.stream.Stream<kotlin.String>
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.PackageViewDescriptor
import org.jetbrains.kotlin.load.java.descriptors.JavaCallableMemberDescriptor
import org.jetbrains.kotlin.resolve.MemberComparator
import org.jetbrains.kotlin.resolve.scopes.MemberScope
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope
@@ -45,9 +46,10 @@ private fun validateDeserializedScope(scopeOwner: DeclarationDescriptor, scope:
}
private fun checkSorted(descriptors: Collection<DeclarationDescriptor>, declaration: DeclarationDescriptor) {
val serializedOnly = descriptors.filterNot { it is JavaCallableMemberDescriptor }
KtUsefulTestCase.assertOrderedEquals(
"Members of $declaration should be sorted by serialization.",
descriptors,
descriptors.sortedWith(MemberComparator.INSTANCE)
serializedOnly,
serializedOnly.sortedWith(MemberComparator.INSTANCE)
)
}
@@ -20,10 +20,10 @@ import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.analyzer.ModuleContent
import org.jetbrains.kotlin.analyzer.ModuleInfo
import org.jetbrains.kotlin.builtins.DefaultBuiltIns
import org.jetbrains.kotlin.container.get
import org.jetbrains.kotlin.context.ProjectContext
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.platform.JvmBuiltIns
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.resolve.CompilerEnvironment
import org.jetbrains.kotlin.resolve.jvm.JvmAnalyzerFacade
@@ -42,7 +42,7 @@ fun createResolveSessionForFiles(
{ ModuleContent(syntheticFiles, GlobalSearchScope.allScope(project)) },
JvmPlatformParameters { testModule },
CompilerEnvironment,
JvmBuiltIns.Instance
DefaultBuiltIns.Instance
)
return resolverForProject.resolverForModule(testModule).componentProvider.get<ResolveSession>()
}
@@ -22,5 +22,6 @@
<orderEntry type="module" module-name="util" />
<orderEntry type="module" module-name="compiler-tests" />
<orderEntry type="module" module-name="tests-common" />
<orderEntry type="module" module-name="descriptor.loader.java" />
</component>
</module>
@@ -112,4 +112,25 @@ public class DiagnosticsWithJava8TestGenerated extends AbstractDiagnosticsWithFu
doTest(fileName);
}
}
@TestMetadata("compiler/testData/diagnostics/testsWithJava8/targetedBuiltIns")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class TargetedBuiltIns extends AbstractDiagnosticsWithFullJdkTest {
public void testAllFilesPresentInTargetedBuiltIns() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/testsWithJava8/targetedBuiltIns"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("removeIf.kt")
public void testRemoveIf() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithJava8/targetedBuiltIns/removeIf.kt");
doTest(fileName);
}
@TestMetadata("stream.kt")
public void testStream() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithJava8/targetedBuiltIns/stream.kt");
doTest(fileName);
}
}
}
@@ -83,12 +83,24 @@ public class BlackBoxWithJava8CodegenTestGenerated extends AbstractBlackBoxCodeg
doTest(fileName);
}
@TestMetadata("removeIf.kt")
public void testRemoveIf() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/java8/box/removeIf.kt");
doTest(fileName);
}
@TestMetadata("samOnInterfaceWithDefaultMethod.kt")
public void testSamOnInterfaceWithDefaultMethod() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/java8/box/samOnInterfaceWithDefaultMethod.kt");
doTest(fileName);
}
@TestMetadata("stream.kt")
public void testStream() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/java8/box/stream.kt");
doTest(fileName);
}
@TestMetadata("useStream.kt")
public void testUseStream() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/java8/box/useStream.kt");
@@ -0,0 +1,43 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.codegen;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.runner.RunWith;
import java.io.File;
import java.util.regex.Pattern;
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("compiler/testData/compileKotlinAgainstKotlinJava8")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public class CompileKotlinAgainstKotlinTestGenerated extends AbstractCompileKotlinAgainstKotlinTest {
public void testAllFilesPresentInCompileKotlinAgainstKotlinJava8() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/compileKotlinAgainstKotlinJava8"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("jdk8Against6.kt")
public void testJdk8Against6() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/compileKotlinAgainstKotlinJava8/jdk8Against6.kt");
doTest(fileName);
}
}
@@ -0,0 +1,23 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.serialization.builtins
class Java8BuiltInsWithJDKMembersTest : AbstractBuiltInsWithJDKMembersTest() {
fun testLoadBuiltIns() {
doTest("java8")
}
}
@@ -355,7 +355,11 @@ public abstract class AbstractDiagnosticsTest extends BaseDiagnosticsTest {
@NotNull
protected ModuleDescriptorImpl createModule(@NotNull String moduleName, @NotNull StorageManager storageManager) {
return TargetPlatformKt.createModule(JvmPlatform.INSTANCE, Name.special(moduleName), storageManager, JvmBuiltIns.getInstance());
JvmBuiltIns builtIns = new JvmBuiltIns(storageManager);
ModuleDescriptorImpl module = TargetPlatformKt.createModule(
JvmPlatform.INSTANCE, Name.special(moduleName), storageManager, builtIns);
builtIns.setOwnerModuleDescriptor(module);
return module;
}
@NotNull
@@ -60,9 +60,11 @@ class MultiModuleJavaAnalysisCustomTest : KtUsefulTestCase() {
val moduleDirs = File(PATH_TO_TEST_ROOT_DIR).listFiles { it -> it.isDirectory }!!
val environment = createEnvironment(moduleDirs)
val modules = setupModules(environment, moduleDirs)
val projectContext = ProjectContext(environment.project)
val builtIns = JvmBuiltIns(projectContext.storageManager)
val resolverForProject = JvmAnalyzerFacade.setupResolverForProject(
"test",
ProjectContext(environment.project), modules,
projectContext, modules,
{ m -> ModuleContent(m.kotlinFiles, m.javaFilesScope) },
JvmPlatformParameters {
javaClass ->
@@ -70,10 +72,12 @@ class MultiModuleJavaAnalysisCustomTest : KtUsefulTestCase() {
modules.first { it._name == moduleName }
},
CompilerEnvironment,
JvmBuiltIns.Instance,
builtIns,
packagePartProviderFactory = { a, b -> JvmPackagePartProvider(environment) }
)
builtIns.setOwnerModuleDescriptor(resolverForProject.descriptorForModule(resolverForProject.allModules.first()))
performChecks(resolverForProject, modules)
}
@@ -0,0 +1,80 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.serialization.builtins
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.builtins.KotlinBuiltIns.*
import org.jetbrains.kotlin.cli.jvm.compiler.CliLightClassGenerationSupport
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.context.ModuleContext
import org.jetbrains.kotlin.descriptors.PackagePartProvider
import org.jetbrains.kotlin.frontend.java.di.createContainerForTopDownAnalyzerForJvm
import org.jetbrains.kotlin.incremental.components.LookupTracker
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.platform.JvmBuiltIns
import org.jetbrains.kotlin.renderer.DescriptorRenderer
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier
import org.jetbrains.kotlin.renderer.OverrideRenderingPolicy
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory
import org.jetbrains.kotlin.storage.LockBasedStorageManager
import org.jetbrains.kotlin.test.ConfigurationKind
import org.jetbrains.kotlin.test.KotlinTestUtils
import org.jetbrains.kotlin.test.KotlinTestWithEnvironment
import org.jetbrains.kotlin.test.TestJdkKind
import org.jetbrains.kotlin.test.util.RecursiveDescriptorComparator
import java.io.File
abstract class AbstractBuiltInsWithJDKMembersTest : KotlinTestWithEnvironment() {
override fun createEnvironment(): KotlinCoreEnvironment {
return createEnvironmentWithJdk(ConfigurationKind.JDK_ONLY, TestJdkKind.FULL_JDK)
}
protected fun doTest(builtinVersionName: String) {
val configuration = RecursiveDescriptorComparator.RECURSIVE_ALL.includeMethodsOfKotlinAny(false).withRenderer(
DescriptorRenderer.withOptions {
withDefinedIn = false
overrideRenderingPolicy = OverrideRenderingPolicy.RENDER_OPEN_OVERRIDE
verbose = true
modifiers = DescriptorRendererModifier.ALL
})
val jvmBuiltIns = JvmBuiltIns(LockBasedStorageManager.NO_LOCKS)
val emptyModule = KotlinTestUtils.createEmptyModule("<empty>", JvmPlatform, jvmBuiltIns)
jvmBuiltIns.setOwnerModuleDescriptor(emptyModule)
val moduleContext = ModuleContext(emptyModule, environment.project)
val providerFactory = FileBasedDeclarationProviderFactory(moduleContext.storageManager, emptyList())
val container = createContainerForTopDownAnalyzerForJvm(
moduleContext,
CliLightClassGenerationSupport.CliBindingTrace(), providerFactory,
GlobalSearchScope.allScope(environment.project), LookupTracker.DO_NOTHING, PackagePartProvider.EMPTY)
emptyModule.initialize(container.javaDescriptorResolver.packageFragmentProvider)
emptyModule.setDependencies(emptyModule)
val packageFragmentProvider = emptyModule.builtIns.builtInsModule.packageFragmentProvider
for (packageFqName in listOf<FqName>(BUILT_INS_PACKAGE_FQ_NAME, COLLECTIONS_PACKAGE_FQ_NAME, RANGES_PACKAGE_FQ_NAME)) {
val loaded = packageFragmentProvider.getPackageFragments(packageFqName).single()
RecursiveDescriptorComparator.validateAndCompareDescriptorWithFile(
loaded, configuration,
File("compiler/testData/builtin-classes/$builtinVersionName/" + packageFqName.asString().replace('.', '-') + ".txt"))
}
}
}
@@ -0,0 +1,23 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.serialization.builtins
class Java6BuiltInsWithJDKMembersTest : AbstractBuiltInsWithJDKMembersTest() {
fun testLoadBuiltIns() {
doTest("java6")
}
}
@@ -48,7 +48,15 @@ class JavaResolverComponents(
val packageMapper: PackagePartProvider,
val supertypeLoopChecker: SupertypeLoopChecker,
val lookupTracker: LookupTracker
)
) {
fun replace(
javaResolverCache: JavaResolverCache = this.javaResolverCache
) = JavaResolverComponents(
storageManager, finder, kotlinClassFinder, deserializedDescriptorResolver,
externalAnnotationResolver, signaturePropagator, errorReporter, javaResolverCache,
javaPropertyInitializerEvaluator, samConversionResolver, sourceElementFactory,
moduleClassResolver, packageMapper, supertypeLoopChecker, lookupTracker)
}
open class LazyJavaResolverContext(
val components: JavaResolverComponents,
@@ -68,6 +76,9 @@ fun LazyJavaResolverContext.child(
typeParameterResolver: TypeParameterResolver
) = LazyJavaResolverContext(components, packageFragmentProvider, javaClassResolver, module, reflectionTypes, typeParameterResolver)
fun LazyJavaResolverContext.replaceComponents(
components: JavaResolverComponents
) = LazyJavaResolverContext(components, packageFragmentProvider, javaClassResolver, module, reflectionTypes, typeParameterResolver)
fun LazyJavaResolverContext.child(
containingDeclaration: DeclarationDescriptor,
@@ -23,17 +23,17 @@ import org.jetbrains.kotlin.descriptors.impl.ClassDescriptorBase
import org.jetbrains.kotlin.load.java.FakePureImplementationsProvider
import org.jetbrains.kotlin.load.java.JavaVisibilities
import org.jetbrains.kotlin.load.java.JvmAnnotationNames
import org.jetbrains.kotlin.load.java.components.JavaResolverCache
import org.jetbrains.kotlin.load.java.components.TypeUsage
import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor
import org.jetbrains.kotlin.load.java.lazy.LazyJavaResolverContext
import org.jetbrains.kotlin.load.java.lazy.child
import org.jetbrains.kotlin.load.java.lazy.resolveAnnotations
import org.jetbrains.kotlin.load.java.lazy.*
import org.jetbrains.kotlin.load.java.lazy.types.toAttributes
import org.jetbrains.kotlin.load.java.structure.JavaClass
import org.jetbrains.kotlin.load.java.structure.JavaClassifierType
import org.jetbrains.kotlin.load.java.structure.JavaType
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.isValidJavaFqName
import org.jetbrains.kotlin.platform.createMappedTypeParametersSubstitution
import org.jetbrains.kotlin.resolve.constants.StringValue
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameUnsafe
@@ -48,7 +48,8 @@ import java.util.*
class LazyJavaClassDescriptor(
private val outerContext: LazyJavaResolverContext,
containingDeclaration: DeclarationDescriptor,
private val jClass: JavaClass
private val jClass: JavaClass,
private val additionalSupertypeClassDescriptor: ClassDescriptor? = null
) : ClassDescriptorBase(outerContext.storageManager, containingDeclaration, jClass.name,
outerContext.components.sourceElementFactory.source(jClass)), JavaClassDescriptor {
@@ -157,6 +158,14 @@ class LazyJavaClassDescriptor(
}
}
// Add fake supertype kotlin.collection.Collection<E> to java.util.Collection<E> class if needed
// Only needed when calculating built-ins member scope
result.addIfNotNull(
additionalSupertypeClassDescriptor?.let {
createMappedTypeParametersSubstitution(it, this@LazyJavaClassDescriptor)
.buildSubstitutor().substitute(it.defaultType, Variance.INVARIANT)
})
result.addIfNotNull(purelyImplementedSupertype)
if (incomplete.isNotEmpty()) {
@@ -213,4 +222,11 @@ class LazyJavaClassDescriptor(
override fun toString(): String = getName().asString()
}
// Only needed when calculating built-ins member scope
internal fun copy(
javaResolverCache: JavaResolverCache, additionalSupertypeClassDescriptor: ClassDescriptor?
) = LazyJavaClassDescriptor(
c.replaceComponents(c.components.replace(javaResolverCache = javaResolverCache)),
containingDeclaration, jClass, additionalSupertypeClassDescriptor)
}
@@ -82,7 +82,7 @@ class LazyJavaClassMemberScope(
result.add(descriptor)
result.addIfNotNull(c.components.samConversionResolver.resolveSamAdapter(descriptor))
}
enhanceSignatures(
result.ifEmpty { emptyOrSingletonList(createDefaultConstructor()) }
).toReadOnlyList()
@@ -346,10 +346,10 @@ class LazyJavaClassMemberScope(
}
private fun getFunctionsFromSupertypes(name: Name): Set<SimpleFunctionDescriptor> {
return ownerDescriptor.typeConstructor.supertypes.flatMapTo(LinkedHashSet()) {
it.memberScope.getContributedFunctions(name, NoLookupLocation.WHEN_GET_SUPER_MEMBERS)
}
}
return ownerDescriptor.typeConstructor.supertypes.flatMapTo(LinkedHashSet()) {
it.memberScope.getContributedFunctions(name, NoLookupLocation.WHEN_GET_SUPER_MEMBERS)
}
}
override fun computeNonDeclaredProperties(name: Name, result: MutableCollection<PropertyDescriptor>) {
if (jClass.isAnnotationType) {
@@ -17,28 +17,42 @@
package org.jetbrains.kotlin.load.kotlin
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.SourceElement
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.impl.ClassDescriptorImpl
import org.jetbrains.kotlin.descriptors.impl.PackageFragmentDescriptorImpl
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.load.java.components.JavaResolverCache
import org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaClassDescriptor
import org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaClassMemberScope
import org.jetbrains.kotlin.load.java.lazy.replaceComponents
import org.jetbrains.kotlin.load.java.sources.JavaSourceElement
import org.jetbrains.kotlin.load.java.structure.JavaClass
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.platform.JavaToKotlinClassMap
import org.jetbrains.kotlin.platform.JvmBuiltIns
import org.jetbrains.kotlin.platform.createMappedTypeParametersSubstitution
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameUnsafe
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
import org.jetbrains.kotlin.resolve.scopes.MemberScope
import org.jetbrains.kotlin.serialization.deserialization.AdditionalClassPartsProvider
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor
import org.jetbrains.kotlin.types.DelegatingType
import org.jetbrains.kotlin.types.KotlinType
import org.jetbrains.kotlin.types.Variance
import org.jetbrains.kotlin.utils.SmartSet
import org.jetbrains.kotlin.utils.addToStdlib.check
import java.io.Serializable
import java.util.*
class BuiltInClassesAreSerializableOnJvm(
private val moduleDescriptor: ModuleDescriptor
open class BuiltInClassesAreSerializableOnJvm(
private val moduleDescriptor: ModuleDescriptor,
deferredOwnerModuleDescriptor: () -> ModuleDescriptor
) : AdditionalClassPartsProvider {
private val ownerModuleDescriptor: ModuleDescriptor by lazy(deferredOwnerModuleDescriptor)
private val mockSerializableType = createMockJavaIoSerializableType()
private fun createMockJavaIoSerializableType(): KotlinType {
@@ -49,7 +63,7 @@ class BuiltInClassesAreSerializableOnJvm(
//NOTE: can't reference anyType right away, because this is sometimes called when JvmBuiltIns are initializing
val superTypes = listOf(object : DelegatingType() {
override fun getDelegate(): KotlinType {
return JvmBuiltIns.Instance.anyType
return moduleDescriptor.builtIns.anyType
}
})
@@ -68,6 +82,74 @@ class BuiltInClassesAreSerializableOnJvm(
else return listOf()
}
override fun getFunctions(name: Name, classDescriptor: DeserializedClassDescriptor): Collection<SimpleFunctionDescriptor> =
getAdditionalFunctions(classDescriptor) {
it.getContributedFunctions(name, NoLookupLocation.FROM_BUILTINS)
}
.map {
additionalMember ->
additionalMember.newCopyBuilder().apply {
setOwner(classDescriptor)
setDispatchReceiverParameter(classDescriptor.thisAsReceiverParameter)
setPreserveSourceElement()
setSubstitution(createMappedTypeParametersSubstitution(
additionalMember.containingDeclaration as ClassDescriptor, classDescriptor))
}.build()!!
}
override fun getFunctionsNames(classDescriptor: DeserializedClassDescriptor): Collection<Name> =
getAdditionalFunctions(classDescriptor) {
it.getContributedDescriptors(DescriptorKindFilter.FUNCTIONS).filterIsInstance<SimpleFunctionDescriptor>()
}.map(SimpleFunctionDescriptor::getName)
private fun getAdditionalFunctions(
classDescriptor: DeserializedClassDescriptor,
functionsByScope: (MemberScope) -> Collection<SimpleFunctionDescriptor>
): Collection<SimpleFunctionDescriptor> {
// Prevents recursive dependency: memberScope(Any) -> memberScope(Object) -> memberScope(Any)
// No additional members should be added to Any
if (classDescriptor.isAny) return emptyList()
val fqName = classDescriptor.fqNameUnsafe.check { it.isSafe }?.toSafe() ?: return emptyList()
val j2kClassMap = JavaToKotlinClassMap.INSTANCE
val javaAnalogueFqName = j2kClassMap.mapKotlinToJava(fqName.toUnsafe())?.asSingleFqName() ?: return emptyList()
if (javaAnalogueFqName in IGNORE_BY_DEFAULT_CLASS_FQ_NAMES) return emptyList()
val javaAnalogueDescriptor =
ownerModuleDescriptor.resolveClassByFqName(javaAnalogueFqName, NoLookupLocation.FROM_BUILTINS) as? LazyJavaClassDescriptor
?: return emptyList()
val platformClassDescriptors = j2kClassMap.mapPlatformClass(javaAnalogueDescriptor.fqNameSafe, DefaultBuiltIns.Instance)
val kotlinMutableClassIfContainer = platformClassDescriptors.lastOrNull() ?: return emptyList()
val platformVersions = SmartSet.create(platformClassDescriptors.map { it.fqNameSafe })
val isMutable = j2kClassMap.isMutable(classDescriptor)
val fakeJavaClassDescriptor =
javaAnalogueDescriptor.copy(
javaResolverCache = JavaResolverCache.EMPTY,
additionalSupertypeClassDescriptor = kotlinMutableClassIfContainer)
val scope = fakeJavaClassDescriptor.unsubstitutedMemberScope
return functionsByScope(scope)
.filter { analogueMember ->
if (analogueMember.kind != CallableMemberDescriptor.Kind.DECLARATION) return@filter false
if (!analogueMember.visibility.isPublicAPI) return@filter false
val methodFqName = analogueMember.fqNameSafe
if (methodFqName in BLACK_LIST_METHODS_FQ_NAMES) return@filter false
if ((methodFqName in MUTABLE_METHODS_FQ_NAMES) xor isMutable) return@filter false
analogueMember.overriddenDescriptors.none {
it.containingDeclaration.fqNameSafe in platformVersions
}
}
}
companion object {
fun isSerializableInJava(classFqName: FqName): Boolean {
val fqNameUnsafe = classFqName.toUnsafe()
@@ -84,5 +166,35 @@ class BuiltInClassesAreSerializableOnJvm(
return Serializable::class.java.isAssignableFrom(classViaReflection)
}
private val IGNORE_BY_DEFAULT_CLASS_FQ_NAMES =
setOf(FqName("java.lang.String")) +
JvmPrimitiveType.values().map { it.wrapperFqName }
private val BLACK_LIST_METHODS_FQ_NAMES =
buildPrimitiveValueMethodsSet() +
FqName("java.util.Collection.toArray") +
FqName("java.util.List.toArray") +
FqName("java.util.Set.toArray") +
FqName("java.lang.annotation.Annotation.annotationType")
private val MUTABLE_METHODS_FQ_NAMES =
inClass("java.util.Collection",
"removeIf") +
inClass("java.util.List",
"sort", "replaceAll") +
inClass("java.util.Map",
"compute", "computeIfAbsent", "computeIfPresent", "remove", "merge", "putIfAbsent", "replace", "replaceAll")
private fun buildPrimitiveValueMethodsSet() =
JvmPrimitiveType.values().mapTo(LinkedHashSet()) {
it.wrapperFqName.child(Name.identifier(it.javaKeywordName + "Value"))
}
private fun inClass(classFqName: String, vararg names: String) =
names.mapTo(LinkedHashSet()) { FqName(classFqName).child(Name.identifier(it)) }
}
}
}
private val ClassDescriptor.isAny: Boolean get() = fqNameUnsafe == KotlinBuiltIns.FQ_NAMES.any
@@ -43,7 +43,7 @@ class DeserializationComponentsForJava(
storageManager, moduleDescriptor, classDataFinder, annotationAndConstantLoader, packageFragmentProvider, localClassResolver,
errorReporter, lookupTracker, FlexibleJavaClassifierTypeFactory, ClassDescriptorFactory.EMPTY,
notFoundClasses, JavaTypeCapabilitiesLoader,
additionalClassPartsProvider = BuiltInClassesAreSerializableOnJvm(moduleDescriptor)
additionalClassPartsProvider = BuiltInClassesAreSerializableOnJvm(moduleDescriptor, { moduleDescriptor })
)
localClassResolver.setDeserializationComponents(components)
}
@@ -16,23 +16,25 @@
package org.jetbrains.kotlin.platform
import org.jetbrains.kotlin.builtins.BuiltInsInitializer
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.load.kotlin.BuiltInClassesAreSerializableOnJvm
import org.jetbrains.kotlin.serialization.deserialization.AdditionalClassPartsProvider
import org.jetbrains.kotlin.storage.StorageManager
import org.jetbrains.kotlin.utils.sure
class JvmBuiltIns private constructor() : KotlinBuiltIns() {
companion object {
private val initializer = BuiltInsInitializer {
JvmBuiltIns()
}
class JvmBuiltIns(storageManager: StorageManager) : KotlinBuiltIns(storageManager) {
// Module containing JDK classes or having them among dependencies
private var ownerModuleDescriptor: ModuleDescriptor? = null
@JvmStatic
val Instance: KotlinBuiltIns
get() = initializer.get()
fun setOwnerModuleDescriptor(moduleDescriptor: ModuleDescriptor) {
assert(ownerModuleDescriptor == null) { "JvmBuiltins repeated initialization" }
this.ownerModuleDescriptor = moduleDescriptor
}
override fun getAdditionalClassPartsProvider(): AdditionalClassPartsProvider {
return BuiltInClassesAreSerializableOnJvm(builtInsModule)
return BuiltInClassesAreSerializableOnJvm(builtInsModule, {
ownerModuleDescriptor.sure { "JvmBuiltins has not been initialized properly" }
})
}
}
}
@@ -0,0 +1,34 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.platform
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
import org.jetbrains.kotlin.types.TypeConstructorSubstitution
import org.jetbrains.kotlin.types.typeUtil.asTypeProjection
fun createMappedTypeParametersSubstitution(from: ClassDescriptor, to: ClassDescriptor): TypeConstructorSubstitution {
assert(from.declaredTypeParameters.size == to.declaredTypeParameters.size) {
"$from and $to should have same number of type parameters, " +
"but ${from.declaredTypeParameters.size} / ${to.declaredTypeParameters.size} found"
}
return TypeConstructorSubstitution.createByConstructorsMap(
from.declaredTypeParameters.map(TypeParameterDescriptor::getTypeConstructor).zip(
to.declaredTypeParameters.map { it.defaultType.asTypeProjection() }
).toMap())
}
@@ -46,8 +46,8 @@ class RuntimeModuleData private constructor(val deserialization: Deserialization
companion object {
fun create(classLoader: ClassLoader): RuntimeModuleData {
val builtIns = JvmBuiltIns.Instance
val storageManager = LockBasedStorageManager()
val builtIns = JvmBuiltIns(storageManager)
val module = ModuleDescriptorImpl(Name.special("<runtime module for $classLoader>"), storageManager,
ModuleParameters(listOf(), JavaToKotlinClassMap.INSTANCE), builtIns)
@@ -64,6 +64,9 @@ class RuntimeModuleData private constructor(val deserialization: Deserialization
val lazyJavaPackageFragmentProvider =
LazyJavaPackageFragmentProvider(globalJavaResolverContext, module, ReflectionTypes(module))
builtIns.setOwnerModuleDescriptor(module)
val javaDescriptorResolver = JavaDescriptorResolver(lazyJavaPackageFragmentProvider)
val javaClassDataFinder = JavaClassDataFinder(reflectKotlinClassFinder, deserializedDescriptorResolver)
val notFoundClasses = NotFoundClasses(storageManager, module)
@@ -16,7 +16,9 @@
package org.jetbrains.kotlin.builtins
class DefaultBuiltIns private constructor() : KotlinBuiltIns() {
import org.jetbrains.kotlin.storage.LockBasedStorageManager
class DefaultBuiltIns private constructor() : KotlinBuiltIns(LockBasedStorageManager()) {
companion object {
private val initializer = BuiltInsInitializer {
DefaultBuiltIns()
@@ -32,7 +32,7 @@ import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.resolve.DescriptorUtils;
import org.jetbrains.kotlin.resolve.scopes.MemberScope;
import org.jetbrains.kotlin.serialization.deserialization.AdditionalClassPartsProvider;
import org.jetbrains.kotlin.storage.LockBasedStorageManager;
import org.jetbrains.kotlin.storage.StorageManager;
import org.jetbrains.kotlin.types.*;
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker;
@@ -71,12 +71,10 @@ public abstract class KotlinBuiltIns {
private final Map<PrimitiveType, KotlinType> primitiveTypeToArrayKotlinType;
private final Map<KotlinType, KotlinType> primitiveKotlinTypeToKotlinArrayType;
private final Map<KotlinType, KotlinType> kotlinArrayTypeToPrimitiveKotlinType;
private final Map<FqName, PackageFragmentDescriptor> packageNameToPackageFragment;
public static final FqNames FQ_NAMES = new FqNames();
protected KotlinBuiltIns() {
LockBasedStorageManager storageManager = new LockBasedStorageManager();
protected KotlinBuiltIns(@NotNull StorageManager storageManager) {
builtInsModule = new ModuleDescriptorImpl(
Name.special("<built-ins module>"), storageManager, ModuleParameters.Empty.INSTANCE, this
);
@@ -96,7 +94,7 @@ public abstract class KotlinBuiltIns {
builtInsModule.initialize(packageFragmentProvider);
builtInsModule.setDependencies(builtInsModule);
packageNameToPackageFragment = new LinkedHashMap<FqName, PackageFragmentDescriptor>();
Map<FqName, PackageFragmentDescriptor> packageNameToPackageFragment = new LinkedHashMap<FqName, PackageFragmentDescriptor>();
builtInsPackageFragment = createPackage(packageFragmentProvider, packageNameToPackageFragment, BUILT_INS_PACKAGE_FQ_NAME);
collectionsPackageFragment = createPackage(packageFragmentProvider, packageNameToPackageFragment, COLLECTIONS_PACKAGE_FQ_NAME);
@@ -290,23 +288,7 @@ public abstract class KotlinBuiltIns {
@Nullable
public ClassDescriptor getBuiltInClassByFqNameNullable(@NotNull FqName fqName) {
if (!fqName.isRoot()) {
FqName parent = fqName.parent();
PackageFragmentDescriptor packageFragment = packageNameToPackageFragment.get(parent);
if (packageFragment != null) {
ClassDescriptor descriptor = getBuiltInClassByNameNullable(fqName.shortName(), packageFragment);
if (descriptor != null) {
return descriptor;
}
}
ClassDescriptor possiblyOuterClass = getBuiltInClassByFqNameNullable(parent);
if (possiblyOuterClass != null) {
return (ClassDescriptor) possiblyOuterClass.getUnsubstitutedInnerClassesScope().getContributedClassifier(
fqName.shortName(), NoLookupLocation.FROM_BUILTINS);
}
}
return null;
return DescriptorUtilKt.resolveClassByFqName(builtInsModule, fqName, NoLookupLocation.FROM_BUILTINS);
}
@NotNull
@@ -20,6 +20,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.types.KotlinType;
import org.jetbrains.kotlin.types.TypeSubstitution;
import org.jetbrains.kotlin.types.TypeSubstitutor;
import java.util.Collection;
@@ -109,6 +110,9 @@ public interface FunctionDescriptor extends CallableMemberDescriptor {
@NotNull
CopyBuilder<D> setExtensionReceiverType(@Nullable KotlinType type);
@NotNull
CopyBuilder<D> setDispatchReceiverParameter(@Nullable ReceiverParameterDescriptor dispatchReceiverParameter);
@NotNull
CopyBuilder<D> setOriginal(@NotNull FunctionDescriptor original);
@@ -124,6 +128,9 @@ public interface FunctionDescriptor extends CallableMemberDescriptor {
@NotNull
CopyBuilder<D> setHiddenToOvercomeSignatureClash();
@NotNull
CopyBuilder<D> setSubstitution(@NotNull TypeSubstitution substitution);
@Nullable
D build();
}
@@ -0,0 +1,31 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.descriptors
import org.jetbrains.kotlin.incremental.components.LookupLocation
import org.jetbrains.kotlin.name.FqName
fun ModuleDescriptor.resolveClassByFqName(fqName: FqName, lookupLocation: LookupLocation): ClassDescriptor? {
if (fqName.isRoot) return null
(getPackage(fqName.parent())
.memberScope.getContributedClassifier(fqName.shortName(), lookupLocation) as? ClassDescriptor)?.let { return it }
return resolveClassByFqName(fqName.parent(), lookupLocation)
?.unsubstitutedInnerClassesScope
?.getContributedClassifier(fqName.shortName(), lookupLocation) as? ClassDescriptor
}
@@ -299,6 +299,7 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo
protected @NotNull Kind kind;
protected @NotNull List<ValueParameterDescriptor> newValueParameterDescriptors;
protected @Nullable KotlinType newExtensionReceiverParameterType;
protected @Nullable ReceiverParameterDescriptor dispatchReceiverParameter;
protected @NotNull KotlinType newReturnType;
protected @Nullable Name name;
protected boolean copyOverrides = true;
@@ -326,6 +327,7 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo
this.kind = kind;
this.newValueParameterDescriptors = newValueParameterDescriptors;
this.newExtensionReceiverParameterType = newExtensionReceiverParameterType;
this.dispatchReceiverParameter = FunctionDescriptorImpl.this.dispatchReceiverParameter;
this.newReturnType = newReturnType;
this.name = name;
this.isHiddenToOvercomeSignatureClash = isHiddenToOvercomeSignatureClash();
@@ -401,6 +403,13 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo
return this;
}
@Override
@NotNull
public CopyConfiguration setDispatchReceiverParameter(@Nullable ReceiverParameterDescriptor dispatchReceiverParameter) {
this.dispatchReceiverParameter = dispatchReceiverParameter;
return this;
}
@Override
@NotNull
public CopyConfiguration setOriginal(@NotNull FunctionDescriptor original) {
@@ -436,6 +445,13 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo
return this;
}
@NotNull
@Override
public CopyConfiguration setSubstitution(@NotNull TypeSubstitution substitution) {
this.substitution = substitution;
return this;
}
@Override
@Nullable
public FunctionDescriptor build() {
@@ -498,7 +514,7 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo
}
ReceiverParameterDescriptor substitutedExpectedThis = null;
if (dispatchReceiverParameter != null) {
if (configuration.dispatchReceiverParameter != null) {
// When generating fake-overridden member it's dispatch receiver parameter has type of Base, and it's correct.
// E.g.
// class Base { fun foo() }
@@ -509,7 +525,7 @@ public abstract class FunctionDescriptorImpl extends DeclarationDescriptorNonRoo
// // but it would if fake-overridden `foo` had `Derived` as it's dispatch receiver parameter type
// x.foo()
// }
substitutedExpectedThis = dispatchReceiverParameter.substitute(substitutor);
substitutedExpectedThis = configuration.dispatchReceiverParameter.substitute(substitutor);
if (substitutedExpectedThis == null) {
return null;
}
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.descriptors.impl.SimpleFunctionDescriptorImpl;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.types.ErrorUtils;
import org.jetbrains.kotlin.types.KotlinType;
import org.jetbrains.kotlin.types.TypeSubstitution;
import java.util.Collection;
import java.util.List;
@@ -103,6 +104,12 @@ public class ErrorSimpleFunctionDescriptorImpl extends SimpleFunctionDescriptorI
return this;
}
@NotNull
@Override
public CopyBuilder<SimpleFunctionDescriptor> setSubstitution(@NotNull TypeSubstitution substitution) {
return this;
}
@NotNull
@Override
public CopyBuilder<SimpleFunctionDescriptor> setTypeParameters(@NotNull List<TypeParameterDescriptor> parameters) {
@@ -121,6 +128,12 @@ public class ErrorSimpleFunctionDescriptorImpl extends SimpleFunctionDescriptorI
return this;
}
@NotNull
@Override
public CopyBuilder<SimpleFunctionDescriptor> setDispatchReceiverParameter(@Nullable ReceiverParameterDescriptor dispatchReceiverParameter) {
return this;
}
@NotNull
@Override
public CopyBuilder<SimpleFunctionDescriptor> setOriginal(@NotNull FunctionDescriptor original) {
@@ -16,13 +16,19 @@
package org.jetbrains.kotlin.serialization.deserialization
import org.jetbrains.kotlin.descriptors.SimpleFunctionDescriptor
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor
import org.jetbrains.kotlin.types.KotlinType
interface AdditionalClassPartsProvider {
fun getSupertypes(classDescriptor: DeserializedClassDescriptor): Collection<KotlinType>
fun getFunctions(name: Name, classDescriptor: DeserializedClassDescriptor): Collection<SimpleFunctionDescriptor>
fun getFunctionsNames(classDescriptor: DeserializedClassDescriptor): Collection<Name>
object None : AdditionalClassPartsProvider {
override fun getSupertypes(classDescriptor: DeserializedClassDescriptor): Collection<KotlinType> = emptyList()
override fun getFunctions(name: Name, classDescriptor: DeserializedClassDescriptor): Collection<SimpleFunctionDescriptor> = emptyList()
override fun getFunctionsNames(classDescriptor: DeserializedClassDescriptor): Collection<Name> = emptyList()
}
}
@@ -199,6 +199,8 @@ class DeserializedClassDescriptor(
for (supertype in classDescriptor.getTypeConstructor().supertypes) {
fromSupertypes.addAll(supertype.memberScope.getContributedFunctions(name, NoLookupLocation.FOR_ALREADY_TRACKED))
}
functions.addAll(c.components.additionalClassPartsProvider.getFunctions(name, this@DeserializedClassDescriptor))
generateFakeOverrides(name, fromSupertypes, functions)
}
@@ -229,7 +231,7 @@ class DeserializedClassDescriptor(
override fun getNonDeclaredFunctionNames(location: LookupLocation): Set<Name> {
return classDescriptor.typeConstructor.supertypes.flatMapTo(LinkedHashSet()) {
it.memberScope.getContributedDescriptors().filterIsInstance<SimpleFunctionDescriptor>().map { it.name }
}
} + c.components.additionalClassPartsProvider.getFunctionsNames(this@DeserializedClassDescriptor)
}
override fun getNonDeclaredVariableNames(location: LookupLocation): Set<Name> {
@@ -33,7 +33,7 @@ class SmartSet<T> private constructor() : AbstractSet<T>() {
fun <T> create() = SmartSet<T>()
@JvmStatic
fun <T> create(set: Set<T>) = SmartSet<T>().apply { this.addAll(set) }
fun <T> create(set: Collection<T>) = SmartSet<T>().apply { this.addAll(set) }
}
// null if size = 0, object if size = 1, array of objects if size < threshold, linked hash set otherwise
@@ -362,8 +362,11 @@ fun main(args: Array<String>) {
testClass<AbstractJvm8RuntimeDescriptorLoaderTest>() {
model("loadJava8/compiledJava", extension = "java", excludeDirs = listOf("sam", "kotlinSignature/propagation"))
}
}
testClass<AbstractCompileKotlinAgainstKotlinTest>() {
model("compileKotlinAgainstKotlinJava8")
}
}
testGroup("idea/tests", "idea/testData") {
testClass<AbstractAdditionalResolveDescriptorRendererTest>() {
@@ -874,6 +877,10 @@ fun main(args: Array<String>) {
testClass<AbstractJvmBasicCompletionTest>("org.jetbrains.kotlin.idea.completion.test.KDocCompletionTestGenerated") {
model("kdoc")
}
testClass<AbstractJava8BasicCompletionTest>() {
model("basic/java8")
}
}
//TODO: move these tests into idea-completion module
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.idea.caches.resolve
import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.project.Project
import com.intellij.openapi.projectRoots.Sdk
import com.intellij.openapi.roots.ProjectRootModificationTracker
import com.intellij.openapi.util.ModificationTracker
import com.intellij.psi.util.CachedValue
@@ -44,8 +45,8 @@ import org.jetbrains.kotlin.resolve.TargetPlatform
import org.jetbrains.kotlin.resolve.diagnostics.KotlinSuppressCache
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
import org.jetbrains.kotlin.utils.addToStdlib.sumByLong
import org.jetbrains.kotlin.utils.keysToMap
internal val LOG = Logger.getInstance(KotlinCacheService::class.java)
@@ -56,14 +57,20 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
override fun getSuppressionCache(): KotlinSuppressCache = kotlinSuppressCache.value
private val globalFacadesPerPlatform = listOf(JvmPlatform, JsPlatform).keysToMap { platform -> GlobalFacade(platform) }
private val globalFacadesPerPlatformAndSdk: SLRUCache<Pair<TargetPlatform, Sdk?>, GlobalFacade> =
object : SLRUCache<Pair<TargetPlatform, Sdk?>, GlobalFacade>(2 * 3, 2 * 3) {
override fun createValue(key: Pair<TargetPlatform, Sdk?>): GlobalFacade {
return GlobalFacade(key.first, key.second)
}
}
private inner class GlobalFacade(platform: TargetPlatform) {
private inner class GlobalFacade(platform: TargetPlatform, sdk: Sdk?) {
val facadeForLibraries = ProjectResolutionFacade(project) {
globalResolveSessionProvider(
"project libraries for platform $platform",
project,
platform,
sdk,
logProcessCanceled = true,
moduleFilter = { it.isLibraryClasses() },
dependencies = listOf(
@@ -78,6 +85,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
"project source roots and libraries for platform $platform",
project,
platform,
sdk,
reuseDataFrom = facadeForLibraries,
moduleFilter = { !it.isLibraryClasses() },
dependencies = listOf(PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT))
@@ -86,17 +94,24 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
@Deprecated("Use JetElement.getResolutionFacade(), please avoid introducing new usages")
fun <T : Any> getProjectService(platform: TargetPlatform, ideaModuleInfo: IdeaModuleInfo, serviceClass: Class<T>): T {
return globalFacade(platform).resolverForModuleInfo(ideaModuleInfo).componentProvider.getService(serviceClass)
return globalFacade(platform, ideaModuleInfo.sdk).resolverForModuleInfo(ideaModuleInfo).componentProvider.getService(serviceClass)
}
private fun globalFacade(platform: TargetPlatform) = globalFacadesPerPlatform[platform]!!.facadeForModules
private fun globalFacade(platform: TargetPlatform, sdk: Sdk?) =
getOrBuildGlobalFacade(platform, sdk).facadeForModules
private fun librariesFacade(platform: TargetPlatform) = globalFacadesPerPlatform[platform]!!.facadeForLibraries
private fun librariesFacade(platform: TargetPlatform, sdk: Sdk?) = getOrBuildGlobalFacade(platform, sdk).facadeForLibraries
@Synchronized
private fun getOrBuildGlobalFacade(platform: TargetPlatform, sdk: Sdk?) = globalFacadesPerPlatformAndSdk[Pair(platform, sdk)]
private val IdeaModuleInfo.sdk: Sdk? get() = dependencies().firstIsInstanceOrNull<SdkInfo>()?.sdk
private fun createFacadeForSyntheticFiles(files: Set<KtFile>): ProjectResolutionFacade {
// we assume that all files come from the same module
val targetPlatform = files.map { TargetPlatformDetector.getPlatform(it) }.toSet().single()
val syntheticFileModule = files.map { it.getModuleInfo() }.toSet().single()
val sdk = syntheticFileModule.sdk
val filesModificationTracker = ModificationTracker {
files.sumByLong { it.outOfBlockModificationCount }
}
@@ -110,8 +125,9 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
debugName,
project,
targetPlatform,
sdk,
syntheticFiles = files,
reuseDataFrom = globalFacade(targetPlatform),
reuseDataFrom = globalFacade(targetPlatform, sdk),
moduleFilter = { it in dependentModules },
dependencies = dependenciesForSyntheticFileCache
)
@@ -124,8 +140,9 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
debugName,
project,
targetPlatform,
sdk,
syntheticFiles = files,
reuseDataFrom = librariesFacade(targetPlatform),
reuseDataFrom = librariesFacade(targetPlatform, sdk),
moduleFilter = { it == syntheticFileModule },
dependencies = dependenciesForSyntheticFileCache
)
@@ -142,6 +159,7 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
debugName,
project,
targetPlatform,
sdk,
syntheticFiles = files,
moduleFilter = { true },
dependencies = dependenciesForSyntheticFileCache
@@ -201,13 +219,14 @@ class KotlinCacheServiceImpl(val project: Project) : KotlinCacheService {
private fun getFacadeToAnalyzeFiles(files: Collection<KtFile>): ResolutionFacade {
val syntheticFiles = findSyntheticFiles(files)
val file = files.first()
val moduleInfo = file.getModuleInfo()
val projectFacade = if (syntheticFiles.isNotEmpty()) {
getFacadeForSyntheticFiles(syntheticFiles)
}
else {
globalFacade(TargetPlatformDetector.getPlatform(file))
globalFacade(TargetPlatformDetector.getPlatform(file), moduleInfo.sdk)
}
return ResolutionFacadeImpl(projectFacade, file.getModuleInfo())
return ResolutionFacadeImpl(projectFacade, moduleInfo)
}
private fun findSyntheticFiles(files: Collection<KtFile>) = files.mapNotNull {
@@ -228,6 +247,7 @@ private fun globalResolveSessionProvider(
debugName: String,
project: Project,
platform: TargetPlatform,
sdk: Sdk?,
dependencies: Collection<Any>,
moduleFilter: (IdeaModuleInfo) -> Boolean,
reuseDataFrom: ProjectResolutionFacade? = null,
@@ -242,16 +262,24 @@ private fun globalResolveSessionProvider(
val builtIns: KotlinBuiltIns = when (platform) {
is JsPlatform -> JsPlatform.builtIns
is JvmPlatform -> JvmBuiltIns.Instance
is JvmPlatform -> JvmBuiltIns(globalContext.storageManager)
else -> DefaultBuiltIns.Instance
}
val moduleResolverProvider = createModuleResolverProvider(
debugName, project, globalContext,
debugName, project, globalContext, sdk,
AnalyzerFacadeProvider.getAnalyzerFacade(platform),
syntheticFiles, delegateResolverForProject, moduleFilter,
builtIns
)
if (builtIns is JvmBuiltIns) {
val moduleInfoToUse = sdk?.let { SdkInfo(project, it) } ?: moduleResolverProvider.resolverForProject.allModules.firstOrNull()
if (moduleInfoToUse != null) {
builtIns.setOwnerModuleDescriptor(moduleResolverProvider.resolverForProject.descriptorForModule(moduleInfoToUse))
}
}
val allDependencies = dependencies + listOf(moduleResolverProvider.exceptionTracker)
return CachedValueProvider.Result.create(moduleResolverProvider, allDependencies)
}
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.idea.caches.resolve
import com.intellij.openapi.module.ModuleManager
import com.intellij.openapi.project.Project
import com.intellij.openapi.projectRoots.Sdk
import com.intellij.openapi.roots.JdkOrderEntry
import com.intellij.openapi.roots.LibraryOrderEntry
import com.intellij.openapi.roots.ModuleRootManager
@@ -38,6 +39,7 @@ fun createModuleResolverProvider(
debugName: String,
project: Project,
globalContext: GlobalContextImpl,
sdk: Sdk?,
analyzerFacade: AnalyzerFacade<JvmPlatformParameters>,
syntheticFiles: Collection<KtFile>,
delegateResolver: ResolverForProject<IdeaModuleInfo>,
@@ -67,7 +69,8 @@ fun createModuleResolverProvider(
val resolverForProject = analyzerFacade.setupResolverForProject(
debugName, globalContext.withProject(project), modulesToCreateResolversFor, modulesContent,
jvmPlatformParameters, IdeaEnvironment, builtIns,
delegateResolver, { m, c -> IDEPackagePartProvider(c.moduleContentScope) }
delegateResolver, { m, c -> IDEPackagePartProvider(c.moduleContentScope) },
sdk?.let { SdkInfo(project, it) }
)
return resolverForProject
}
@@ -0,0 +1,7 @@
fun foo(x: MutableList<String>) {
x.<caret>
}
// EXIST: {"lookupString":"stream","tailText":"()","typeText":"Stream<String!>!"}
// EXIST: {"lookupString":"removeIf","tailText":"(Predicate<in String!>!)","typeText":"Boolean"}
// EXIST: {"lookupString":"removeIf","tailText":" {...} (((String!) -> Boolean)!)","typeText":"Boolean"}
@@ -0,0 +1,7 @@
fun foo(x: List<String>) {
x.stream().<caret>
}
// EXIST: {"lookupString":"allMatch","tailText":" {...} (((String!) -> Boolean)!)","typeText":"Boolean","attributes":"bold"}
// EXIST: {"lookupString":"allMatch","tailText":"(Predicate<in String!>!)","typeText":"Boolean","attributes":"bold"}
// EXIST: {"lookupString":"count","tailText":"()","typeText":"Long","attributes":"bold"}
@@ -0,0 +1,29 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.idea.completion.test;
import com.intellij.testFramework.LightProjectDescriptor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor;
public abstract class AbstractJava8BasicCompletionTest extends AbstractJvmBasicCompletionTest {
@NotNull
@Override
protected LightProjectDescriptor getProjectDescriptor() {
return KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE_FULL_JDK;
}
}
@@ -0,0 +1,49 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.idea.completion.test;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.runner.RunWith;
import java.io.File;
import java.util.regex.Pattern;
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("idea/idea-completion/testData/basic/java8")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public class Java8BasicCompletionTestGenerated extends AbstractJava8BasicCompletionTest {
public void testAllFilesPresentInJava8() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/idea-completion/testData/basic/java8"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("CollectionMethods.kt")
public void testCollectionMethods() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/idea-completion/testData/basic/java8/CollectionMethods.kt");
doTest(fileName);
}
@TestMetadata("StreamMethods.kt")
public void testStreamMethods() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/idea-completion/testData/basic/java8/StreamMethods.kt");
doTest(fileName);
}
}
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.idea.test;
import com.intellij.openapi.projectRoots.Sdk;
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime;
public class KotlinWithJdkAndRuntimeLightProjectDescriptor extends KotlinJdkAndLibraryProjectDescriptor {
@@ -24,4 +25,10 @@ public class KotlinWithJdkAndRuntimeLightProjectDescriptor extends KotlinJdkAndL
}
public static final KotlinWithJdkAndRuntimeLightProjectDescriptor INSTANCE = new KotlinWithJdkAndRuntimeLightProjectDescriptor();
public static final KotlinWithJdkAndRuntimeLightProjectDescriptor INSTANCE_FULL_JDK = new KotlinWithJdkAndRuntimeLightProjectDescriptor() {
@Override
public Sdk getSdk() {
return PluginTestCaseBase.fullJdk();
}
};
}
@@ -0,0 +1,3 @@
abstract class A : List<String> {
<caret>
}
@@ -0,0 +1,7 @@
import java.util.stream.Stream
abstract class A : List<String> {
override fun stream(): Stream<String>? {
<selection><caret>return super.stream()</selection>
}
}
@@ -0,0 +1,13 @@
package foo
fun mainJdk8(x: List<String>, j6List: Jdk6List<String>) {
x.stream().filter { it.length > 0 }
j6List.size
// TODO: stream should be available
j6List.stream()
buildList().stream()
myFile().toPath()
}
@@ -0,0 +1,54 @@
package foo
import java.io.File
class Jdk6List<F> : List<F> {
override val size: Int
get() = null!!
override fun contains(element: F): Boolean {
null!!
}
override fun containsAll(elements: Collection<F>): Boolean {
null!!
}
override fun get(index: Int): F {
null!!
}
override fun indexOf(element: F): Int {
null!!
}
override fun isEmpty(): Boolean {
null!!
}
override fun iterator(): Iterator<F> {
null!!
}
override fun lastIndexOf(element: F): Int {
null!!
}
override fun listIterator(): ListIterator<F> {
null!!
}
override fun listIterator(index: Int): ListIterator<F> {
null!!
}
override fun subList(fromIndex: Int, toIndex: Int): List<F> {
null!!
}
}
fun buildList(): List<String> = null!!
fun myFile(): File = null!!
fun mainJdk6(x: List<String>) {
x.<error descr="[UNRESOLVED_REFERENCE] Unresolved reference: stream">stream</error>().filter { <error descr="[UNRESOLVED_REFERENCE] Unresolved reference: it">it</error>.length > 0 }
}
@@ -0,0 +1,81 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.idea.caches.resolve
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
import com.intellij.openapi.module.StdModuleTypes
import com.intellij.openapi.roots.ModuleRootModificationUtil
import org.jetbrains.kotlin.idea.project.PluginJetFilesProvider
import com.intellij.codeInsight.daemon.DaemonAnalyzerTestCase
import com.intellij.openapi.module.Module
import com.intellij.openapi.vfs.LocalFileSystem
import com.intellij.openapi.command.WriteCommandAction
import com.intellij.testFramework.PsiTestUtil
import java.io.File
import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.roots.DependencyScope
import com.intellij.testFramework.IdeaTestUtil
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil
import org.junit.Assert
abstract class AbstractMultiModuleHighlightingTest : DaemonAnalyzerTestCase() {
private val TEST_DATA_PATH = PluginTestCaseBase.getTestDataPathBase() + "/multiModuleHighlighting/"
protected fun checkHighlightingInAllFiles() {
var atLeastOneFile = false
PluginJetFilesProvider.allFilesInProject(myProject!!).forEach { file ->
atLeastOneFile = true
configureByExistingFile(file.virtualFile!!)
checkHighlighting(myEditor, true, false)
}
Assert.assertTrue(atLeastOneFile)
}
protected fun module(name: String, hasTestRoot: Boolean = false, useFullJdk: Boolean = false): Module {
val srcDir = TEST_DATA_PATH + "${getTestName(true)}/$name"
val moduleWithSrcRootSet = createModuleFromTestData(srcDir, "$name", StdModuleTypes.JAVA, true)!!
if (hasTestRoot) {
setTestRoot(moduleWithSrcRootSet, name)
}
val jdkToUse = if (useFullJdk) PluginTestCaseBase.fullJdk() else PluginTestCaseBase.mockJdk()
ConfigLibraryUtil.configureSdk(moduleWithSrcRootSet, jdkToUse)
return moduleWithSrcRootSet
}
protected fun setTestRoot(module: Module, name: String) {
val testDir = TEST_DATA_PATH + "${getTestName(true)}/${name}Test"
val testRootDirInTestData = File(testDir)
val testRootDir = createTempDirectory()!!
FileUtil.copyDir(testRootDirInTestData, testRootDir)
val testRoot = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(testRootDir)!!
object : WriteCommandAction.Simple<Unit>(project) {
override fun run() {
testRoot.refresh(false, true)
}
}.execute().throwException()
PsiTestUtil.addSourceRoot(module, testRoot, true)
}
protected fun Module.addDependency(
other: Module,
dependencyScope: DependencyScope = DependencyScope.COMPILE,
exported: Boolean = false
) = ModuleRootModificationUtil.addDependency(this, other, dependencyScope, exported)
}
@@ -0,0 +1,28 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.idea.caches.resolve
class Java8MultiModuleHighlightingTest : AbstractMultiModuleHighlightingTest() {
fun testDifferentJdk() {
val module1 = module("jdk8", useFullJdk = true)
val module2 = module("mockJdk")
module1.addDependency(module2)
checkHighlightingInAllFiles()
}
}
@@ -16,24 +16,9 @@
package org.jetbrains.kotlin.idea.caches.resolve
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
import com.intellij.openapi.module.StdModuleTypes
import com.intellij.openapi.roots.ModuleRootModificationUtil
import org.jetbrains.kotlin.idea.project.PluginJetFilesProvider
import com.intellij.codeInsight.daemon.DaemonAnalyzerTestCase
import com.intellij.openapi.module.Module
import com.intellij.openapi.vfs.LocalFileSystem
import com.intellij.openapi.command.WriteCommandAction
import com.intellij.testFramework.PsiTestUtil
import java.io.File
import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.roots.DependencyScope
import org.junit.Assert
class MultiModuleHighlightingTest : DaemonAnalyzerTestCase() {
private val TEST_DATA_PATH = PluginTestCaseBase.getTestDataPathBase() + "/multiModuleHighlighting/"
class MultiModuleHighlightingTest : AbstractMultiModuleHighlightingTest() {
fun testVisibility() {
val module1 = module("m1")
val module2 = module("m2")
@@ -73,43 +58,4 @@ class MultiModuleHighlightingTest : DaemonAnalyzerTestCase() {
checkHighlightingInAllFiles()
}
private fun checkHighlightingInAllFiles() {
var atLeastOneFile = false
PluginJetFilesProvider.allFilesInProject(myProject!!).forEach { file ->
atLeastOneFile = true
configureByExistingFile(file.virtualFile!!)
checkHighlighting(myEditor, true, false)
}
Assert.assertTrue(atLeastOneFile)
}
private fun module(name: String, hasTestRoot: Boolean = false): Module {
val srcDir = TEST_DATA_PATH + "${getTestName(true)}/$name"
val moduleWithSrcRootSet = createModuleFromTestData(srcDir, "$name", StdModuleTypes.JAVA, true)!!
if (hasTestRoot) {
setTestRoot(moduleWithSrcRootSet, name)
}
return moduleWithSrcRootSet
}
private fun setTestRoot(module: Module, name: String) {
val testDir = TEST_DATA_PATH + "${getTestName(true)}/${name}Test"
val testRootDirInTestData = File(testDir)
val testRootDir = createTempDirectory()!!
FileUtil.copyDir(testRootDirInTestData, testRootDir)
val testRoot = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(testRootDir)!!
object : WriteCommandAction.Simple<Unit>(project) {
override fun run() {
testRoot.refresh(false, true)
}
}.execute().throwException()
PsiTestUtil.addSourceRoot(module, testRoot, true)
}
private fun Module.addDependency(
other: Module,
dependencyScope: DependencyScope = DependencyScope.COMPILE,
exported: Boolean = false
) = ModuleRootModificationUtil.addDependency(this, other, dependencyScope, exported)
}
@@ -0,0 +1,37 @@
/*
* Copyright 2010-2016 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.idea.codeInsight
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
class Java8OverrideImplementTest : AbstractOverrideImplementTest() {
companion object {
private val TEST_PATH = PluginTestCaseBase.getTestDataPathBase() + "/codeInsight/overrideImplement/jdk8"
}
override fun setUp() {
super.setUp()
myFixture.testDataPath = TEST_PATH
}
override fun getProjectDescriptor() = KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE_FULL_JDK
fun testOverrideCollectionStream() {
doOverrideFileTest("stream")
}
}
@@ -48,7 +48,7 @@ public final class TopDownAnalyzerFacadeForJS {
BindingTrace trace = new BindingTraceContext();
MutableModuleContext newModuleContext = ContextKt.ContextForNewModule(
config.getProject(), Name.special("<" + config.getModuleId() + ">"), JsPlatform.INSTANCE,
ContextKt.ProjectContext(config.getProject()), Name.special("<" + config.getModuleId() + ">"), JsPlatform.INSTANCE,
JsPlatform.INSTANCE.getBuiltIns()
);
newModuleContext.setDependencies(computeDependencies(newModuleContext.getModule(), config));