diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/StackValue.java b/compiler/backend/src/org/jetbrains/jet/codegen/StackValue.java index 30777a568f0..34b30dba56f 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/StackValue.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/StackValue.java @@ -26,6 +26,7 @@ import org.jetbrains.jet.codegen.state.JetTypeMapper; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.JetExpression; import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall; +import org.jetbrains.jet.lang.resolve.java.JvmAbi; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue; import org.jetbrains.jet.lexer.JetTokens; import org.jetbrains.org.objectweb.asm.Label; @@ -283,7 +284,7 @@ public abstract class StackValue { } public static void putUnitInstance(InstructionAdapter v) { - v.visitFieldInsn(GETSTATIC, UNIT_TYPE.getInternalName(), "VALUE", UNIT_TYPE.getDescriptor()); + v.visitFieldInsn(GETSTATIC, UNIT_TYPE.getInternalName(), JvmAbi.INSTANCE_FIELD, UNIT_TYPE.getDescriptor()); } protected void putAsBoolean(InstructionAdapter v) { diff --git a/compiler/testData/builtin-classes.txt b/compiler/testData/builtin-classes.txt index 4b78d8def81..5f9938510fd 100644 --- a/compiler/testData/builtin-classes.txt +++ b/compiler/testData/builtin-classes.txt @@ -802,30 +802,30 @@ public final enum class InlineStrategy : kotlin.Enum { /*primary*/ private constructor InlineStrategy() public final override /*1*/ /*fake_override*/ fun name(): kotlin.String public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int - + public class object { /*primary*/ private constructor () public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): kotlin.InlineStrategy public final /*synthesized*/ fun values(): kotlin.Array } - + public enum entry AS_FUNCTION : kotlin.InlineStrategy { /*primary*/ private constructor AS_FUNCTION() public final override /*1*/ /*fake_override*/ fun name(): kotlin.String public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int - + public class object : kotlin.InlineStrategy.AS_FUNCTION { /*primary*/ private constructor () public final override /*1*/ /*fake_override*/ fun name(): kotlin.String public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int } } - + public enum entry IN_PLACE : kotlin.InlineStrategy { /*primary*/ private constructor IN_PLACE() public final override /*1*/ /*fake_override*/ fun name(): kotlin.String public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int - + public class object : kotlin.InlineStrategy.IN_PLACE { /*primary*/ private constructor () public final override /*1*/ /*fake_override*/ fun name(): kotlin.String @@ -963,7 +963,7 @@ public final class IntRange : kotlin.Range, kotlin.Progression { /*primary*/ private constructor () public final val EMPTY: kotlin.IntRange @@ -1132,7 +1132,7 @@ public final class LongRange : kotlin.Range, kotlin.Progression { /*primary*/ private constructor () public final val EMPTY: kotlin.LongRange @@ -1149,7 +1149,7 @@ public trait Map { public abstract fun keySet(): kotlin.Set public abstract fun size(): kotlin.Int public abstract fun values(): kotlin.Collection - + public trait Entry { public abstract fun getKey(): K public abstract fun getValue(): V @@ -1229,7 +1229,7 @@ public trait MutableMap : kotlin.Map { public abstract fun remove(/*0*/ key: kotlin.Any?): V? public abstract override /*1*/ /*fake_override*/ fun size(): kotlin.Int public abstract override /*1*/ fun values(): kotlin.MutableCollection - + public trait MutableEntry : kotlin.Map.Entry { public abstract override /*1*/ /*fake_override*/ fun getKey(): K public abstract override /*1*/ /*fake_override*/ fun getValue(): V @@ -1266,6 +1266,16 @@ public abstract class Number { public abstract fun toShort(): kotlin.Short } +private open class OldUnit { + /*primary*/ public constructor OldUnit() + + private class object { + /*primary*/ private constructor () + public final val VALUE: kotlin.Unit + public final fun (): kotlin.Unit + } +} + public trait Progression : kotlin.Iterable { public abstract val end: N public abstract fun (): N @@ -1426,7 +1436,7 @@ public final class ShortRange : kotlin.Range, kotlin.Progression { /*primary*/ private constructor () public final val EMPTY: kotlin.ShortRange @@ -1450,13 +1460,15 @@ public open class Throwable { public final fun printStackTrace(): kotlin.Unit } -public open class Unit { - /*primary*/ internal constructor Unit() - +public object Unit : kotlin.OldUnit { + /*primary*/ private constructor Unit() + public final val VALUE: kotlin.Unit + public final fun (): kotlin.Unit + public class object : kotlin.Unit { /*primary*/ private constructor () - public final val VALUE: kotlin.Unit - public final fun (): kotlin.Unit + public final override /*1*/ /*fake_override*/ val VALUE: kotlin.Unit + public final override /*1*/ /*fake_override*/ fun (): kotlin.Unit } } diff --git a/compiler/testData/cfg/controlStructures/Finally.values b/compiler/testData/cfg/controlStructures/Finally.values index 28d72aa301b..0287b18c72b 100644 --- a/compiler/testData/cfg/controlStructures/Finally.values +++ b/compiler/testData/cfg/controlStructures/Finally.values @@ -268,8 +268,8 @@ fun t11() { } } --------------------- -1 : * NEW: r(1) -> -2 : {<: Unit} NEW: r(2) -> +1 : * NEW: r(1) -> +2 : Unit NEW: r(2) -> ===================== == t12 == fun t12() : Int { diff --git a/compiler/testData/cfg/tailCalls/try.values b/compiler/testData/cfg/tailCalls/try.values index de3d0760b53..3270934a9e1 100644 --- a/compiler/testData/cfg/tailCalls/try.values +++ b/compiler/testData/cfg/tailCalls/try.values @@ -8,5 +8,5 @@ tailRecursive fun foo() { } --------------------- : {<: Throwable} NEW: magic[FAKE_INITIALIZER](e: Throwable) -> -foo() : {<: Unit} NEW: call(foo(), foo) -> +foo() : Unit NEW: call(foo(), foo) -> ===================== diff --git a/idea/testData/highlighter/VariablesAsFunctions.kt b/idea/testData/highlighter/VariablesAsFunctions.kt index 27205d2b43b..3f55a7efd31 100644 --- a/idea/testData/highlighter/VariablesAsFunctions.kt +++ b/idea/testData/highlighter/VariablesAsFunctions.kt @@ -3,14 +3,14 @@ trait FunctionLike { } } -var global : () -> Unit = {} +var global : () -> Unit = {} -val Int.ext : () -> Unit +val Int.ext : () -> Unit get() { return {} } -fun foo(a : () -> Unit, functionLike: FunctionLike) { +fun foo(a : () -> Unit, functionLike: FunctionLike) { a() functionLike() global()