Merge ResolutionFacadeImpl and KotlinResolveCache, rewrite JavaResolveExtension

This commit is contained in:
Pavel V. Talanov
2015-08-05 12:34:20 +03:00
parent 94431bc3fa
commit d09f4a4dbb
17 changed files with 194 additions and 283 deletions
@@ -16,8 +16,6 @@
package org.jetbrains.kotlin.container
import kotlin.properties.ReadOnlyProperty
public fun createContainer(id: String, init: StorageComponentContainer.() -> Unit): StorageComponentContainer {
val c = StorageComponentContainer(id)
c.init()
@@ -30,7 +28,12 @@ public inline fun <reified T> StorageComponentContainer.useImpl() {
}
public inline fun <reified T> ComponentProvider.get(): T {
return resolve(javaClass<T>())!!.getValue() as T
return getService(javaClass<T>())
}
@suppress("UNCHECKED_CAST")
public fun <T> ComponentProvider.getService(request: Class<T>): T {
return resolve(request)!!.getValue() as T
}
public fun StorageComponentContainer.useInstance(instance: Any) {
@@ -38,5 +41,5 @@ public fun StorageComponentContainer.useInstance(instance: Any) {
}
public inline fun <reified T> ComponentProvider.get(thisRef: Any?, desc: PropertyMetadata): T {
return resolve(javaClass<T>())!!.getValue() as T
return getService(javaClass<T>())
}