add flexibleTypeCapabilitiesDeserializer field to BuiltinsPackageFragment

This commit is contained in:
Michael Nedzelsky
2015-03-07 18:58:13 +03:00
parent 77e9ab8ad7
commit a7ba93c1d1
3 changed files with 17 additions and 13 deletions
@@ -16,16 +16,17 @@
package org.jetbrains.kotlin.serialization.builtins package org.jetbrains.kotlin.serialization.builtins
import org.jetbrains.kotlin.test.TestCaseWithTmpdir
import java.io.File
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime
import org.jetbrains.kotlin.test.JetTestUtils
import org.jetbrains.kotlin.storage.LockBasedStorageManager
import java.io.FileInputStream
import org.jetbrains.kotlin.builtins.BuiltinsPackageFragment import org.jetbrains.kotlin.builtins.BuiltinsPackageFragment
import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.test.util.RecursiveDescriptorComparator import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime
import org.jetbrains.kotlin.jvm.compiler.LoadDescriptorUtil.TEST_PACKAGE_FQNAME import org.jetbrains.kotlin.jvm.compiler.LoadDescriptorUtil.TEST_PACKAGE_FQNAME
import org.jetbrains.kotlin.serialization.deserialization.FlexibleTypeCapabilitiesDeserializer
import org.jetbrains.kotlin.storage.LockBasedStorageManager
import org.jetbrains.kotlin.test.JetTestUtils
import org.jetbrains.kotlin.test.TestCaseWithTmpdir
import org.jetbrains.kotlin.test.util.RecursiveDescriptorComparator
import java.io.File
import java.io.FileInputStream
public class BuiltInsSerializerTest : TestCaseWithTmpdir() { public class BuiltInsSerializerTest : TestCaseWithTmpdir() {
private fun doTest(fileName: String) { private fun doTest(fileName: String) {
@@ -39,11 +40,11 @@ public class BuiltInsSerializerTest : TestCaseWithTmpdir() {
val module = JetTestUtils.createEmptyModule("<module>") val module = JetTestUtils.createEmptyModule("<module>")
val packageFragment = BuiltinsPackageFragment(TEST_PACKAGE_FQNAME, LockBasedStorageManager(), module) { val packageFragment =
path -> BuiltinsPackageFragment(TEST_PACKAGE_FQNAME, LockBasedStorageManager(), module, FlexibleTypeCapabilitiesDeserializer.ThrowException) {
val file = File(tmpdir, path) val file = File(tmpdir, it)
if (file.exists()) FileInputStream(file) else null if (file.exists()) FileInputStream(file) else null
} }
module.initialize(packageFragment.provider) module.initialize(packageFragment.provider)
module.addDependencyOnModule(module) module.addDependencyOnModule(module)
@@ -40,6 +40,7 @@ public class BuiltinsPackageFragment(
fqName: FqName, fqName: FqName,
storageManager: StorageManager, storageManager: StorageManager,
module: ModuleDescriptor, module: ModuleDescriptor,
flexibleTypeCapabilitiesDeserializer: FlexibleTypeCapabilitiesDeserializer,
private val loadResource: (path: String) -> InputStream? private val loadResource: (path: String) -> InputStream?
) : PackageFragmentDescriptorImpl(module, fqName) { ) : PackageFragmentDescriptorImpl(module, fqName) {
@@ -64,7 +65,7 @@ public class BuiltinsPackageFragment(
storageManager, module, BuiltInsClassDataFinder(), storageManager, module, BuiltInsClassDataFinder(),
BuiltInsAnnotationAndConstantLoader(getContainingDeclaration()), BuiltInsAnnotationAndConstantLoader(getContainingDeclaration()),
provider, localClassResolver, provider, localClassResolver,
FlexibleTypeCapabilitiesDeserializer.ThrowException flexibleTypeCapabilitiesDeserializer
) )
localClassResolver.setDeserializationComponents(components) localClassResolver.setDeserializationComponents(components)
DeserializedPackageMemberScope(this, proto, nameResolver, components, { readClassNames(proto) }) DeserializedPackageMemberScope(this, proto, nameResolver, components, { readClassNames(proto) })
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
import org.jetbrains.kotlin.resolve.DescriptorUtils; import org.jetbrains.kotlin.resolve.DescriptorUtils;
import org.jetbrains.kotlin.resolve.ImportPath; import org.jetbrains.kotlin.resolve.ImportPath;
import org.jetbrains.kotlin.resolve.scopes.JetScope; import org.jetbrains.kotlin.resolve.scopes.JetScope;
import org.jetbrains.kotlin.serialization.deserialization.FlexibleTypeCapabilitiesDeserializer;
import org.jetbrains.kotlin.storage.LockBasedStorageManager; import org.jetbrains.kotlin.storage.LockBasedStorageManager;
import org.jetbrains.kotlin.types.*; import org.jetbrains.kotlin.types.*;
import org.jetbrains.kotlin.types.checker.JetTypeChecker; import org.jetbrains.kotlin.types.checker.JetTypeChecker;
@@ -110,6 +111,7 @@ public class KotlinBuiltIns {
); );
builtinsPackageFragment = new BuiltinsPackageFragment( builtinsPackageFragment = new BuiltinsPackageFragment(
BUILT_INS_PACKAGE_FQ_NAME, new LockBasedStorageManager(), builtInsModule, BUILT_INS_PACKAGE_FQ_NAME, new LockBasedStorageManager(), builtInsModule,
FlexibleTypeCapabilitiesDeserializer.ThrowException.INSTANCE$,
new Function1<String, InputStream>() { new Function1<String, InputStream>() {
@Override @Override
public InputStream invoke(String path) { public InputStream invoke(String path) {