Fixed loading integral constants from compiled classes.

This commit is contained in:
Evgeny Gerashchenko
2014-06-20 17:47:48 +04:00
parent 111feb2574
commit bf442a9700
9 changed files with 125 additions and 1 deletions
@@ -0,0 +1,18 @@
package constants
import java.lang.annotation.Retention
import java.lang.annotation.RetentionPolicy
public val b: Byte = 100
public val s: Short = 20000
public val i: Int = 2000000
public val l: Long = 2000000000000L
public val f: Float = 3.14f
public val d: Double = 3.14
public val bb: Boolean = true
public val c: Char = '\u03c0' // pi symbol
public val str: String = ":)"
[Retention(RetentionPolicy.RUNTIME)]
public annotation class AnnotationClass(public val value: String)
@@ -0,0 +1,12 @@
import constants.*
AnnotationClass("$b $s $i $l $f $d $bb $c $str")
class DummyClass()
fun main(args: Array<String>) {
val klass = javaClass<DummyClass>()!!
val annotationClass = javaClass<AnnotationClass>()
val annotation = klass.getAnnotation(annotationClass)!!
val value = annotation.value
require(value == "100 20000 2000000 2000000000000 3.14 3.14 true \u03c0 :)", "Annotation value: $value")
}
@@ -0,0 +1,17 @@
//ALLOW_AST_ACCESS
package test
val b: Byte = 100
val b1: Byte = 1
val s: Short = 20000
val s1: Short = 1
val i: Int = 2000000
val i1: Short = 1
val l: Long = 2000000000000L
val l1: Long = 1
val f: Float = 3.14f
val d: Double = 3.14
val bb: Boolean = true
val c: Char = '\u03c0' // pi symbol
val str: String = ":)"
@@ -0,0 +1,28 @@
package test
internal val b: kotlin.Byte = 100.toByte()
internal fun <get-b>(): kotlin.Byte
internal val b1: kotlin.Byte = 1.toByte()
internal fun <get-b1>(): kotlin.Byte
internal val bb: kotlin.Boolean = true
internal fun <get-bb>(): kotlin.Boolean
internal val c: kotlin.Char = #960(π)
internal fun <get-c>(): kotlin.Char
internal val d: kotlin.Double = 3.14.toDouble()
internal fun <get-d>(): kotlin.Double
internal val f: kotlin.Float = 3.14.toFloat()
internal fun <get-f>(): kotlin.Float
internal val i: kotlin.Int = 2000000
internal fun <get-i>(): kotlin.Int
internal val i1: kotlin.Short = 1.toShort()
internal fun <get-i1>(): kotlin.Short
internal val l: kotlin.Long = 2000000000000.toLong()
internal fun <get-l>(): kotlin.Long
internal val l1: kotlin.Long = 1.toLong()
internal fun <get-l1>(): kotlin.Long
internal val s: kotlin.Short = 20000.toShort()
internal fun <get-s>(): kotlin.Short
internal val s1: kotlin.Short = 1.toShort()
internal fun <get-s1>(): kotlin.Short
internal val str: kotlin.String = ":)"
internal fun <get-str>(): kotlin.String
@@ -66,6 +66,11 @@ public class CompileKotlinAgainstKotlinTestGenerated extends AbstractCompileKotl
doTest("compiler/testData/compileKotlinAgainstKotlin/ImportObject.A.kt");
}
@TestMetadata("InlinedConstants.A.kt")
public void testInlinedConstants() throws Exception {
doTest("compiler/testData/compileKotlinAgainstKotlin/InlinedConstants.A.kt");
}
@TestMetadata("InnerClass.A.kt")
public void testInnerClass() throws Exception {
doTest("compiler/testData/compileKotlinAgainstKotlin/InnerClass.A.kt");
@@ -2593,6 +2593,11 @@ public class LoadJavaTestGenerated extends AbstractLoadJavaTest {
doTestCompiledKotlin("compiler/testData/loadJava/compiledKotlin/prop/CollectionSize.kt");
}
@TestMetadata("Constants.kt")
public void testConstants() throws Exception {
doTestCompiledKotlin("compiler/testData/loadJava/compiledKotlin/prop/Constants.kt");
}
@TestMetadata("ExtValClass.kt")
public void testExtValClass() throws Exception {
doTestCompiledKotlin("compiler/testData/loadJava/compiledKotlin/prop/ExtValClass.kt");
@@ -1061,6 +1061,11 @@ public class LazyResolveRecursiveComparingTestGenerated extends AbstractLazyReso
doTestCheckingPrimaryConstructorsAndAccessors("compiler/testData/loadJava/compiledKotlin/prop/CollectionSize.kt");
}
@TestMetadata("Constants.kt")
public void testConstants() throws Exception {
doTestCheckingPrimaryConstructorsAndAccessors("compiler/testData/loadJava/compiledKotlin/prop/Constants.kt");
}
@TestMetadata("ExtValClass.kt")
public void testExtValClass() throws Exception {
doTestCheckingPrimaryConstructorsAndAccessors("compiler/testData/loadJava/compiledKotlin/prop/ExtValClass.kt");