Minor: revert changes in StackValue and fix tes data.

(this commit should be reverted after make Unit object)
This commit is contained in:
Zalim Bashorov
2014-07-10 23:40:14 +04:00
parent 9b36327046
commit dc68d78d9d
5 changed files with 22 additions and 35 deletions
@@ -26,7 +26,6 @@ import org.jetbrains.jet.codegen.state.JetTypeMapper;
import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.psi.JetExpression; import org.jetbrains.jet.lang.psi.JetExpression;
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall; 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.lang.resolve.scopes.receivers.ReceiverValue;
import org.jetbrains.jet.lexer.JetTokens; import org.jetbrains.jet.lexer.JetTokens;
import org.jetbrains.org.objectweb.asm.Label; import org.jetbrains.org.objectweb.asm.Label;
@@ -284,7 +283,7 @@ public abstract class StackValue {
} }
public static void putUnitInstance(InstructionAdapter v) { public static void putUnitInstance(InstructionAdapter v) {
v.visitFieldInsn(GETSTATIC, UNIT_TYPE.getInternalName(), JvmAbi.INSTANCE_FIELD, UNIT_TYPE.getDescriptor()); v.visitFieldInsn(GETSTATIC, UNIT_TYPE.getInternalName(), "VALUE", UNIT_TYPE.getDescriptor());
} }
protected void putAsBoolean(InstructionAdapter v) { protected void putAsBoolean(InstructionAdapter v) {
+15 -27
View File
@@ -802,30 +802,30 @@ public final enum class InlineStrategy : kotlin.Enum<kotlin.InlineStrategy> {
/*primary*/ private constructor InlineStrategy() /*primary*/ private constructor InlineStrategy()
public final override /*1*/ /*fake_override*/ fun name(): kotlin.String public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
public class object <class-object-for-InlineStrategy> { public class object <class-object-for-InlineStrategy> {
/*primary*/ private constructor <class-object-for-InlineStrategy>() /*primary*/ private constructor <class-object-for-InlineStrategy>()
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): kotlin.InlineStrategy public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): kotlin.InlineStrategy
public final /*synthesized*/ fun values(): kotlin.Array<kotlin.InlineStrategy> public final /*synthesized*/ fun values(): kotlin.Array<kotlin.InlineStrategy>
} }
public enum entry AS_FUNCTION : kotlin.InlineStrategy { public enum entry AS_FUNCTION : kotlin.InlineStrategy {
/*primary*/ private constructor AS_FUNCTION() /*primary*/ private constructor AS_FUNCTION()
public final override /*1*/ /*fake_override*/ fun name(): kotlin.String public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
public class object <class-object-for-AS_FUNCTION> : kotlin.InlineStrategy.AS_FUNCTION { public class object <class-object-for-AS_FUNCTION> : kotlin.InlineStrategy.AS_FUNCTION {
/*primary*/ private constructor <class-object-for-AS_FUNCTION>() /*primary*/ private constructor <class-object-for-AS_FUNCTION>()
public final override /*1*/ /*fake_override*/ fun name(): kotlin.String public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
} }
} }
public enum entry IN_PLACE : kotlin.InlineStrategy { public enum entry IN_PLACE : kotlin.InlineStrategy {
/*primary*/ private constructor IN_PLACE() /*primary*/ private constructor IN_PLACE()
public final override /*1*/ /*fake_override*/ fun name(): kotlin.String public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int public final override /*1*/ /*fake_override*/ fun ordinal(): kotlin.Int
public class object <class-object-for-IN_PLACE> : kotlin.InlineStrategy.IN_PLACE { public class object <class-object-for-IN_PLACE> : kotlin.InlineStrategy.IN_PLACE {
/*primary*/ private constructor <class-object-for-IN_PLACE>() /*primary*/ private constructor <class-object-for-IN_PLACE>()
public final override /*1*/ /*fake_override*/ fun name(): kotlin.String public final override /*1*/ /*fake_override*/ fun name(): kotlin.String
@@ -963,7 +963,7 @@ public final class IntRange : kotlin.Range<kotlin.Int>, kotlin.Progression<kotli
public open override /*1*/ fun contains(/*0*/ item: kotlin.Int): kotlin.Boolean public open override /*1*/ fun contains(/*0*/ item: kotlin.Int): kotlin.Boolean
public open override /*1*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.IntIterator public open override /*1*/ fun iterator(): kotlin.IntIterator
public class object <class-object-for-IntRange> { public class object <class-object-for-IntRange> {
/*primary*/ private constructor <class-object-for-IntRange>() /*primary*/ private constructor <class-object-for-IntRange>()
public final val EMPTY: kotlin.IntRange public final val EMPTY: kotlin.IntRange
@@ -1132,7 +1132,7 @@ public final class LongRange : kotlin.Range<kotlin.Long>, kotlin.Progression<kot
public open override /*1*/ fun contains(/*0*/ item: kotlin.Long): kotlin.Boolean public open override /*1*/ fun contains(/*0*/ item: kotlin.Long): kotlin.Boolean
public open override /*1*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.LongIterator public open override /*1*/ fun iterator(): kotlin.LongIterator
public class object <class-object-for-LongRange> { public class object <class-object-for-LongRange> {
/*primary*/ private constructor <class-object-for-LongRange>() /*primary*/ private constructor <class-object-for-LongRange>()
public final val EMPTY: kotlin.LongRange public final val EMPTY: kotlin.LongRange
@@ -1149,7 +1149,7 @@ public trait Map</*0*/ K, /*1*/ out V> {
public abstract fun keySet(): kotlin.Set<K> public abstract fun keySet(): kotlin.Set<K>
public abstract fun size(): kotlin.Int public abstract fun size(): kotlin.Int
public abstract fun values(): kotlin.Collection<V> public abstract fun values(): kotlin.Collection<V>
public trait Entry</*0*/ out K, /*1*/ out V> { public trait Entry</*0*/ out K, /*1*/ out V> {
public abstract fun getKey(): K public abstract fun getKey(): K
public abstract fun getValue(): V public abstract fun getValue(): V
@@ -1229,7 +1229,7 @@ public trait MutableMap</*0*/ K, /*1*/ V> : kotlin.Map<K, V> {
public abstract fun remove(/*0*/ key: kotlin.Any?): V? public abstract fun remove(/*0*/ key: kotlin.Any?): V?
public abstract override /*1*/ /*fake_override*/ fun size(): kotlin.Int public abstract override /*1*/ /*fake_override*/ fun size(): kotlin.Int
public abstract override /*1*/ fun values(): kotlin.MutableCollection<V> public abstract override /*1*/ fun values(): kotlin.MutableCollection<V>
public trait MutableEntry</*0*/ K, /*1*/ V> : kotlin.Map.Entry<K, V> { public trait MutableEntry</*0*/ K, /*1*/ V> : kotlin.Map.Entry<K, V> {
public abstract override /*1*/ /*fake_override*/ fun getKey(): K public abstract override /*1*/ /*fake_override*/ fun getKey(): K
public abstract override /*1*/ /*fake_override*/ fun getValue(): V public abstract override /*1*/ /*fake_override*/ fun getValue(): V
@@ -1266,16 +1266,6 @@ public abstract class Number {
public abstract fun toShort(): kotlin.Short public abstract fun toShort(): kotlin.Short
} }
private open class OldUnit {
/*primary*/ public constructor OldUnit()
private class object <class-object-for-OldUnit> {
/*primary*/ private constructor <class-object-for-OldUnit>()
public final val VALUE: kotlin.Unit
public final fun <get-VALUE>(): kotlin.Unit
}
}
public trait Progression</*0*/ out N : kotlin.Any> : kotlin.Iterable<N> { public trait Progression</*0*/ out N : kotlin.Any> : kotlin.Iterable<N> {
public abstract val end: N public abstract val end: N
public abstract fun <get-end>(): N public abstract fun <get-end>(): N
@@ -1436,7 +1426,7 @@ public final class ShortRange : kotlin.Range<kotlin.Short>, kotlin.Progression<k
public open override /*1*/ fun contains(/*0*/ item: kotlin.Short): kotlin.Boolean public open override /*1*/ fun contains(/*0*/ item: kotlin.Short): kotlin.Boolean
public open override /*1*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun isEmpty(): kotlin.Boolean
public open override /*1*/ fun iterator(): kotlin.ShortIterator public open override /*1*/ fun iterator(): kotlin.ShortIterator
public class object <class-object-for-ShortRange> { public class object <class-object-for-ShortRange> {
/*primary*/ private constructor <class-object-for-ShortRange>() /*primary*/ private constructor <class-object-for-ShortRange>()
public final val EMPTY: kotlin.ShortRange public final val EMPTY: kotlin.ShortRange
@@ -1460,15 +1450,13 @@ public open class Throwable {
public final fun printStackTrace(): kotlin.Unit public final fun printStackTrace(): kotlin.Unit
} }
public object Unit : kotlin.OldUnit { public open class Unit {
/*primary*/ private constructor Unit() /*primary*/ internal constructor Unit()
public final val VALUE: kotlin.Unit
public final fun <get-VALUE>(): kotlin.Unit
public class object <class-object-for-Unit> : kotlin.Unit { public class object <class-object-for-Unit> : kotlin.Unit {
/*primary*/ private constructor <class-object-for-Unit>() /*primary*/ private constructor <class-object-for-Unit>()
public final override /*1*/ /*fake_override*/ val VALUE: kotlin.Unit public final val VALUE: kotlin.Unit
public final override /*1*/ /*fake_override*/ fun <get-VALUE>(): kotlin.Unit public final fun <get-VALUE>(): kotlin.Unit
} }
} }
@@ -268,8 +268,8 @@ fun t11() {
} }
} }
--------------------- ---------------------
1 <v0>: * NEW: r(1) -> <v0> 1 <v0>: * NEW: r(1) -> <v0>
2 <v1>: Unit NEW: r(2) -> <v1> 2 <v1>: {<: Unit} NEW: r(2) -> <v1>
===================== =====================
== t12 == == t12 ==
fun t12() : Int { fun t12() : Int {
+1 -1
View File
@@ -8,5 +8,5 @@ tailRecursive fun foo() {
} }
--------------------- ---------------------
<v1>: {<: Throwable} NEW: magic[FAKE_INITIALIZER](e: Throwable) -> <v1> <v1>: {<: Throwable} NEW: magic[FAKE_INITIALIZER](e: Throwable) -> <v1>
foo() <v0>: Unit NEW: call(foo(), foo) -> <v0> foo() <v0>: {<: Unit} NEW: call(foo(), foo) -> <v0>
===================== =====================
@@ -3,14 +3,14 @@ trait <info textAttributesKey="KOTLIN_TRAIT">FunctionLike</info> {
} }
} }
var <info textAttributesKey="KOTLIN_PACKAGE_PROPERTY"><info textAttributesKey="KOTLIN_PROPERTY_WITH_BACKING_FIELD"><info textAttributesKey="KOTLIN_MUTABLE_VARIABLE">global</info></info></info> : () -> <info textAttributesKey="KOTLIN_OBJECT">Unit</info> = {} var <info textAttributesKey="KOTLIN_PACKAGE_PROPERTY"><info textAttributesKey="KOTLIN_PROPERTY_WITH_BACKING_FIELD"><info textAttributesKey="KOTLIN_MUTABLE_VARIABLE">global</info></info></info> : () -> <info textAttributesKey="KOTLIN_CLASS">Unit</info> = {}
val <info textAttributesKey="KOTLIN_CLASS">Int</info>.<info textAttributesKey="KOTLIN_EXTENSION_PROPERTY"><info textAttributesKey="KOTLIN_PACKAGE_PROPERTY">ext</info></info> : () -> <info textAttributesKey="KOTLIN_OBJECT">Unit</info> val <info textAttributesKey="KOTLIN_CLASS">Int</info>.<info textAttributesKey="KOTLIN_EXTENSION_PROPERTY"><info textAttributesKey="KOTLIN_PACKAGE_PROPERTY">ext</info></info> : () -> <info textAttributesKey="KOTLIN_CLASS">Unit</info>
<info textAttributesKey="KOTLIN_KEYWORD">get</info>() { <info textAttributesKey="KOTLIN_KEYWORD">get</info>() {
return {} return {}
} }
fun <info textAttributesKey="KOTLIN_FUNCTION_DECLARATION">foo</info>(<info textAttributesKey="KOTLIN_PARAMETER">a</info> : () -> <info textAttributesKey="KOTLIN_OBJECT">Unit</info>, <info textAttributesKey="KOTLIN_PARAMETER">functionLike</info>: <info textAttributesKey="KOTLIN_TRAIT">FunctionLike</info>) { fun <info textAttributesKey="KOTLIN_FUNCTION_DECLARATION">foo</info>(<info textAttributesKey="KOTLIN_PARAMETER">a</info> : () -> <info textAttributesKey="KOTLIN_CLASS">Unit</info>, <info textAttributesKey="KOTLIN_PARAMETER">functionLike</info>: <info textAttributesKey="KOTLIN_TRAIT">FunctionLike</info>) {
<info textAttributesKey="KOTLIN_PARAMETER"><info textAttributesKey="KOTLIN_VARIABLE_AS_FUNCTION">a</info></info>() <info textAttributesKey="KOTLIN_PARAMETER"><info textAttributesKey="KOTLIN_VARIABLE_AS_FUNCTION">a</info></info>()
<info textAttributesKey="KOTLIN_PARAMETER"><info textAttributesKey="KOTLIN_VARIABLE_AS_FUNCTION_LIKE">functionLike</info></info>() <info textAttributesKey="KOTLIN_PARAMETER"><info textAttributesKey="KOTLIN_VARIABLE_AS_FUNCTION_LIKE">functionLike</info></info>()
<info textAttributesKey="KOTLIN_PACKAGE_PROPERTY"><info textAttributesKey="KOTLIN_MUTABLE_VARIABLE"><info textAttributesKey="KOTLIN_VARIABLE_AS_FUNCTION">global</info></info></info>() <info textAttributesKey="KOTLIN_PACKAGE_PROPERTY"><info textAttributesKey="KOTLIN_MUTABLE_VARIABLE"><info textAttributesKey="KOTLIN_VARIABLE_AS_FUNCTION">global</info></info></info>()