From 71a9ba479095fe88e8b4fb72371f217eb80bed81 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Fri, 20 Oct 2017 13:25:42 +0300 Subject: [PATCH] Minor. Move helpers for javaslang to a separate package --- .../jetbrains/kotlin/cfg/ControlFlowInfo.kt | 11 +++---- .../kotlin/cfg/PseudocodeVariablesData.kt | 4 +++ .../util/javaslang/javaslangAdapters.kt | 31 +++++++++++++++++++ 3 files changed, 39 insertions(+), 7 deletions(-) create mode 100644 compiler/frontend/src/org/jetbrains/kotlin/util/javaslang/javaslangAdapters.kt diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowInfo.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowInfo.kt index fbc3ac53947..1a0d3dede13 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowInfo.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowInfo.kt @@ -16,11 +16,11 @@ package org.jetbrains.kotlin.cfg -import javaslang.Tuple2 import org.jetbrains.kotlin.descriptors.VariableDescriptor - -typealias ImmutableMap = javaslang.collection.Map -typealias ImmutableHashMap = javaslang.collection.HashMap +import org.jetbrains.kotlin.util.javaslang.ImmutableHashMap +import org.jetbrains.kotlin.util.javaslang.ImmutableMap +import org.jetbrains.kotlin.util.javaslang.component1 +import org.jetbrains.kotlin.util.javaslang.component2 abstract class ControlFlowInfo, D : Any> internal constructor( @@ -53,9 +53,6 @@ internal constructor( override fun toString() = map.toString() } -operator fun Tuple2.component1(): T = _1() -operator fun Tuple2<*, T>.component2(): T = _2() - interface ReadOnlyControlFlowInfo { fun getOrNull(variableDescriptor: VariableDescriptor): D? // Only used in tests diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/PseudocodeVariablesData.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/PseudocodeVariablesData.kt index f8e19329bd0..b6ba0acca98 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/PseudocodeVariablesData.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/PseudocodeVariablesData.kt @@ -32,6 +32,10 @@ import org.jetbrains.kotlin.descriptors.VariableDescriptor import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.BindingContextUtils.variableDescriptorForDeclaration +import org.jetbrains.kotlin.util.javaslang.ImmutableHashMap +import org.jetbrains.kotlin.util.javaslang.ImmutableMap +import org.jetbrains.kotlin.util.javaslang.component1 +import org.jetbrains.kotlin.util.javaslang.component2 import org.jetbrains.kotlin.utils.addToStdlib.safeAs private typealias ImmutableSet = javaslang.collection.Set diff --git a/compiler/frontend/src/org/jetbrains/kotlin/util/javaslang/javaslangAdapters.kt b/compiler/frontend/src/org/jetbrains/kotlin/util/javaslang/javaslangAdapters.kt new file mode 100644 index 00000000000..340d0a4b15f --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/kotlin/util/javaslang/javaslangAdapters.kt @@ -0,0 +1,31 @@ +/* + * Copyright 2010-2017 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.kotlin.util.javaslang + +import javaslang.Tuple2 +import javaslang.control.Option + +typealias ImmutableMap = javaslang.collection.Map +typealias ImmutableHashMap = javaslang.collection.HashMap +typealias ImmutableSet = javaslang.collection.Set +typealias ImmutableHashSet = javaslang.collection.HashSet +typealias ImmutableLinkedHashSet = javaslang.collection.LinkedHashSet + +operator fun Tuple2.component1(): T = _1() +operator fun Tuple2<*, T>.component2(): T = _2() + +fun Option.getOrNull(): T? = getOrElse(null as T?)