From 572ce47c2532697d92a8471188428152465b8fb2 Mon Sep 17 00:00:00 2001 From: Michael Nedzelsky Date: Wed, 20 May 2015 12:14:59 +0300 Subject: [PATCH] add tests for serializaion of nested classes and objects (builtins and js) --- .../nestedClassesAndObjects.kt | 40 +++++++++++++++ .../nestedClassesAndObjects.txt | 50 +++++++++++++++++++ .../builtins/BuiltInsSerializerTest.kt | 4 ++ .../js/KotlinJavascriptSerializerTest.kt | 4 ++ 4 files changed, 98 insertions(+) create mode 100644 compiler/testData/serialization/builtinsSerializer/nestedClassesAndObjects.kt create mode 100644 compiler/testData/serialization/builtinsSerializer/nestedClassesAndObjects.txt diff --git a/compiler/testData/serialization/builtinsSerializer/nestedClassesAndObjects.kt b/compiler/testData/serialization/builtinsSerializer/nestedClassesAndObjects.kt new file mode 100644 index 00000000000..5c61f9cd560 --- /dev/null +++ b/compiler/testData/serialization/builtinsSerializer/nestedClassesAndObjects.kt @@ -0,0 +1,40 @@ +package test + +class ClassA { + class classB { + fun memberFromB(): Int = 100 + + class BC { + val memberFromBB: Int = 150 + } + + object BO { + val memberFromBO: Int = 175 + } + } + + inner class classC { + val memberFromC: Int = 200 + + class CC { + val memberFromCC: Int = 250 + } + + object CO { + val memberFromCO: Int = 265 + } + } + + companion object { + val stat: Int + + class D { + val memberFromD: Int = 275 + } + } + + object ObjA { + val memberFromObjA: Int = 300 + } +} + diff --git a/compiler/testData/serialization/builtinsSerializer/nestedClassesAndObjects.txt b/compiler/testData/serialization/builtinsSerializer/nestedClassesAndObjects.txt new file mode 100644 index 00000000000..462a0e828c8 --- /dev/null +++ b/compiler/testData/serialization/builtinsSerializer/nestedClassesAndObjects.txt @@ -0,0 +1,50 @@ +package test + +internal final class ClassA { + public constructor ClassA() + + internal companion object Companion { + private constructor Companion() + internal final val stat: kotlin.Int + + internal final class D { + public constructor D() + internal final val memberFromD: kotlin.Int = 275 + } + } + + internal object ObjA { + private constructor ObjA() + internal final val memberFromObjA: kotlin.Int = 300 + } + + internal final class classB { + public constructor classB() + internal final fun memberFromB(): kotlin.Int + + internal final class BC { + public constructor BC() + internal final val memberFromBB: kotlin.Int = 150 + } + + internal object BO { + private constructor BO() + internal final val memberFromBO: kotlin.Int = 175 + } + } + + internal final inner class classC { + public constructor classC() + internal final val memberFromC: kotlin.Int = 200 + + internal final class CC { + public constructor CC() + internal final val memberFromCC: kotlin.Int = 250 + } + + internal object CO { + private constructor CO() + internal final val memberFromCO: kotlin.Int = 265 + } + } +} diff --git a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerTest.kt b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerTest.kt index 1c34a00bb16..520d3bd81a5 100644 --- a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerTest.kt @@ -64,6 +64,10 @@ public class BuiltInsSerializerTest : TestCaseWithTmpdir() { doTest("simple.kt") } + fun testNestedClassesAndObjects() { + doTest("nestedClassesAndObjects.kt") + } + fun testCompileTimeConstants() { doTest("compileTimeConstants.kt") } diff --git a/compiler/tests/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerTest.kt b/compiler/tests/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerTest.kt index 405165b98b0..fd50422e429 100644 --- a/compiler/tests/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerTest.kt @@ -101,6 +101,10 @@ public class KotlinJavascriptSerializerTest : TestCaseWithTmpdir() { doTest("builtinsSerializer/simple.kt") } + fun testNestedClassesAndObjects() { + doTest("builtinsSerializer/nestedClassesAndObjects.kt") + } + fun testCompileTimeConstants() { doTest("builtinsSerializer/compileTimeConstants.kt") }