Address JDK8/JDK6 issues with computeIfAbsent
This commit is contained in:
committed by
Dmitriy Novozhilov
parent
374d287d08
commit
3c4989b672
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.fir
|
||||
|
||||
import org.jetbrains.kotlin.fir.types.impl.*
|
||||
import org.jetbrains.kotlin.fir.util.ConeTypeRegistry
|
||||
import org.jetbrains.kotlin.util.ArrayMapAccessor
|
||||
import org.jetbrains.kotlin.util.ComponentArrayOwner
|
||||
import org.jetbrains.kotlin.util.NullableArrayMapAccessor
|
||||
@@ -18,7 +19,7 @@ abstract class FirSession @PrivateSessionConstructor constructor(
|
||||
val sessionProvider: FirSessionProvider?,
|
||||
val kind: Kind
|
||||
) : ComponentArrayOwner<FirSessionComponent, FirSessionComponent>() {
|
||||
companion object : TypeRegistry<FirSessionComponent, FirSessionComponent>() {
|
||||
companion object : ConeTypeRegistry<FirSessionComponent, FirSessionComponent>() {
|
||||
inline fun <reified T : FirSessionComponent> sessionComponentAccessor(): ArrayMapAccessor<FirSessionComponent, FirSessionComponent, T> {
|
||||
return generateAccessor(T::class)
|
||||
}
|
||||
|
||||
+2
-1
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.declarations
|
||||
|
||||
import org.jetbrains.kotlin.fir.util.ConeTypeRegistry
|
||||
import org.jetbrains.kotlin.util.ArrayMap
|
||||
import org.jetbrains.kotlin.util.AttributeArrayOwner
|
||||
import org.jetbrains.kotlin.util.NullableArrayMapAccessor
|
||||
@@ -47,7 +48,7 @@ class FirDeclarationAttributes : AttributeArrayOwner<FirDeclarationDataKey, Any>
|
||||
* object SomeKey : FirDeclarationDataKey()
|
||||
* var FirDeclaration.someString: String? by FirDeclarationDataRegistry.data(SomeKey)
|
||||
*/
|
||||
object FirDeclarationDataRegistry : TypeRegistry<FirDeclarationDataKey, Any>() {
|
||||
object FirDeclarationDataRegistry : ConeTypeRegistry<FirDeclarationDataKey, Any>() {
|
||||
fun <K : FirDeclarationDataKey> data(key: K): DeclarationDataAccessor {
|
||||
val kClass = key::class
|
||||
return DeclarationDataAccessor(generateAnyNullableAccessor(kClass), kClass)
|
||||
|
||||
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.extensions
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.FirSessionComponent
|
||||
import org.jetbrains.kotlin.fir.NoMutableState
|
||||
import org.jetbrains.kotlin.fir.util.ConeTypeRegistry
|
||||
import org.jetbrains.kotlin.util.ArrayMapAccessor
|
||||
import org.jetbrains.kotlin.util.ComponentArrayOwner
|
||||
import org.jetbrains.kotlin.util.TypeRegistry
|
||||
@@ -18,7 +19,7 @@ annotation class PluginServicesInitialization
|
||||
|
||||
@NoMutableState
|
||||
class FirExtensionService(val session: FirSession) : ComponentArrayOwner<FirExtension, List<FirExtension>>(), FirSessionComponent {
|
||||
companion object : TypeRegistry<FirExtension, List<FirExtension>>() {
|
||||
companion object : ConeTypeRegistry<FirExtension, List<FirExtension>>() {
|
||||
inline fun <reified P : FirExtension, V : List<P>> registeredExtensions(): ArrayMapAccessor<FirExtension, List<FirExtension>, V> {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
return generateAccessor(P::class, default = emptyList<P>() as V)
|
||||
|
||||
Reference in New Issue
Block a user