KT-7922 Added Boolean Companion Object

This commit is contained in:
Kerooker
2018-07-11 11:17:27 -03:00
committed by Ilya Gorbunov
parent cd0906a357
commit af5f78076c
10 changed files with 26 additions and 11 deletions
@@ -48,15 +48,14 @@ fun box(): String {
assertEquals(listOf("Entry"), nestedNames(MutableMap::class))
// Primitives
for (primitive in listOf(Byte::class, Double::class, Float::class, Int::class, Long::class, Short::class, Char::class)) {
for (primitive in listOf(Byte::class, Double::class, Float::class, Int::class, Long::class, Short::class, Char::class, Boolean::class)) {
assertEquals(listOf("Companion"), nestedNames(primitive))
}
assertEquals(emptyList<String>(), nestedNames(Boolean::class))
// Primitive arrays
for (primitiveArray in listOf(
ByteArray::class, DoubleArray::class, FloatArray::class, IntArray::class,
LongArray::class, ShortArray::class, CharArray::class, BooleanArray::class
ByteArray::class, DoubleArray::class, FloatArray::class, IntArray::class,
LongArray::class, ShortArray::class, CharArray::class, BooleanArray::class
)) {
assertEquals(emptyList<String>(), nestedNames(primitiveArray))
}
@@ -6,5 +6,6 @@ public interface IntrinsicCompanionObject {
void testInt(IntCompanionObject i);
void testChar(CharCompanionObject c);
void testString(StringCompanionObject s);
void testBoolean(BooleanCompanionObject b);
void testEnum(EnumCompanionObject e);
}
@@ -1,6 +1,7 @@
package test
public interface IntrinsicCompanionObject {
public abstract fun testBoolean(/*0*/ p0: kotlin.Boolean.Companion!): kotlin.Unit
public abstract fun testChar(/*0*/ p0: kotlin.Char.Companion!): kotlin.Unit
public abstract fun testEnum(/*0*/ p0: kotlin.Enum.Companion!): kotlin.Unit
public abstract fun testInt(/*0*/ p0: kotlin.Int.Companion!): kotlin.Unit
+2
View File
@@ -21,6 +21,8 @@ package kotlin
* represented as values of the primitive type `boolean`.
*/
public class Boolean private constructor() : Comparable<Boolean> {
companion object {}
/**
* Returns the inverse of this boolean.
*/
@@ -24,13 +24,14 @@ import java.util.*
object CompanionObjectMapping {
private val classIds =
(PrimitiveType.NUMBER_TYPES.map(KotlinBuiltIns::getPrimitiveFqName) +
KotlinBuiltIns.FQ_NAMES.string.toSafe() +
KotlinBuiltIns.FQ_NAMES._enum.toSafe()).mapTo(linkedSetOf<ClassId>(), ClassId::topLevel)
(PrimitiveType.NUMBER_TYPES.map(KotlinBuiltIns::getPrimitiveFqName) +
KotlinBuiltIns.FQ_NAMES.string.toSafe() +
KotlinBuiltIns.FQ_NAMES._boolean.toSafe() +
KotlinBuiltIns.FQ_NAMES._enum.toSafe()).mapTo(linkedSetOf<ClassId>(), ClassId::topLevel)
fun allClassesWithIntrinsicCompanions(): Set<ClassId> =
Collections.unmodifiableSet(classIds)
Collections.unmodifiableSet(classIds)
fun isMappedIntrinsicCompanionObject(classDescriptor: ClassDescriptor): Boolean =
DescriptorUtils.isCompanionObject(classDescriptor) && classDescriptor.classId?.outerClassId in classIds
DescriptorUtils.isCompanionObject(classDescriptor) && classDescriptor.classId?.outerClassId in classIds
}
@@ -63,7 +63,7 @@ object ClassMapperLite {
add("reflect/KFunction$i", "kotlin/reflect/KFunction")
}
for (klass in listOf("Char", "Byte", "Short", "Int", "Float", "Long", "Double", "String", "Enum")) {
for (klass in listOf("Char", "Byte", "Short", "Int", "Float", "Long", "Double", "String", "Enum", "Boolean")) {
add("$klass.Companion", "kotlin/jvm/internal/${klass}CompanionObject")
}
}
@@ -100,3 +100,5 @@ private object CharCompanionObject {
private object StringCompanionObject {}
private object BooleanCompanionObject {}
@@ -52,4 +52,5 @@ internal object CharCompanionObject {
}
internal object StringCompanionObject {}
internal object EnumCompanionObject {}
internal object EnumCompanionObject {}
internal object BooleanCompanionObject {}
@@ -365,6 +365,10 @@ public final class kotlin/jvm/internal/ArrayIteratorsKt {
public static final fun iterator ([Z)Lkotlin/collections/BooleanIterator;
}
public final class kotlin/jvm/internal/BooleanCompanionObject {
public static final field INSTANCE Lkotlin/jvm/internal/BooleanCompanionObject;
}
public final class kotlin/jvm/internal/BooleanSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder {
public fun <init> (I)V
public final fun add (Z)V
@@ -3179,6 +3179,10 @@ public final class kotlin/jvm/internal/ArrayIteratorsKt {
public static final fun iterator ([Z)Lkotlin/collections/BooleanIterator;
}
public final class kotlin/jvm/internal/BooleanCompanionObject {
public static final field INSTANCE Lkotlin/jvm/internal/BooleanCompanionObject;
}
public final class kotlin/jvm/internal/BooleanSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder {
public fun <init> (I)V
public final fun add (Z)V