Do not use LanguageVersionSettings.languageVersion directly
This commit is contained in:
@@ -51,7 +51,6 @@ import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper;
|
||||
import org.jetbrains.kotlin.codegen.when.SwitchCodegen;
|
||||
import org.jetbrains.kotlin.codegen.when.SwitchCodegenUtil;
|
||||
import org.jetbrains.kotlin.config.ApiVersion;
|
||||
import org.jetbrains.kotlin.config.LanguageVersion;
|
||||
import org.jetbrains.kotlin.descriptors.*;
|
||||
import org.jetbrains.kotlin.descriptors.impl.LocalVariableDescriptor;
|
||||
import org.jetbrains.kotlin.descriptors.impl.SyntheticFieldDescriptor;
|
||||
@@ -145,8 +144,6 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
|
||||
private boolean shouldMarkLineNumbers = true;
|
||||
private int finallyDepth = 0;
|
||||
|
||||
private static final ApiVersion apiVersion1_1 = ApiVersion.createByLanguageVersion(LanguageVersion.KOTLIN_1_1);
|
||||
|
||||
public ExpressionCodegen(
|
||||
@NotNull MethodVisitor mv,
|
||||
@NotNull FrameMap frameMap,
|
||||
@@ -3656,8 +3653,7 @@ public class ExpressionCodegen extends KtVisitor<StackValue, StackValue> impleme
|
||||
// of version 1.0 is used and the user forgot to explicitly specify language version / API version.
|
||||
// This should be enabled when/if we decide to drop support for "-language-version 1.0" / "-api-version 1.0"
|
||||
//noinspection ConstantConditions, PointlessBooleanExpression
|
||||
if (false && state.getLanguageVersionSettings().getLanguageVersion() != LanguageVersion.KOTLIN_1_0 &&
|
||||
state.getLanguageVersionSettings().getApiVersion().compareTo(apiVersion1_1) >= 0) {
|
||||
if (false && state.getLanguageVersionSettings().getApiVersion().compareTo(ApiVersion.KOTLIN_1_1) >= 0) {
|
||||
return StackValue.operation(Type.BOOLEAN_TYPE, new Function1<InstructionAdapter, Unit>() {
|
||||
@Override
|
||||
public Unit invoke(InstructionAdapter v) {
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
package org.jetbrains.kotlin.resolve.jvm
|
||||
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.config.LanguageVersion
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
@@ -29,7 +29,8 @@ import org.jetbrains.kotlin.serialization.deserialization.PLATFORM_DEPENDENT_ANN
|
||||
object JvmDelegationFilter : DelegationFilter {
|
||||
|
||||
override fun filter(interfaceMember: CallableMemberDescriptor, languageVersionSettings: LanguageVersionSettings): Boolean {
|
||||
if (languageVersionSettings.languageVersion == LanguageVersion.KOTLIN_1_0) return true
|
||||
if (!languageVersionSettings.supportsFeature(LanguageFeature.NoDelegationToJavaDefaultInterfaceMembers)) return true
|
||||
|
||||
//We always have only one implementation otherwise it's an error in kotlin and java
|
||||
val realMember = DescriptorUtils.unwrapFakeOverride(interfaceMember)
|
||||
return !isJavaDefaultMethod(realMember) && !isBuiltInMemberMappedToJavaDefault(realMember)
|
||||
|
||||
@@ -34,6 +34,9 @@ class ApiVersion private constructor(
|
||||
override fun toString() = versionString
|
||||
|
||||
companion object {
|
||||
@JvmField
|
||||
val KOTLIN_1_1 = createByLanguageVersion(LanguageVersion.KOTLIN_1_1)
|
||||
|
||||
@JvmField
|
||||
val LATEST: ApiVersion = createByLanguageVersion(LanguageVersion.Companion.LATEST)
|
||||
|
||||
|
||||
@@ -41,6 +41,7 @@ enum class LanguageFeature(val sinceVersion: LanguageVersion?, val hintUrl: Stri
|
||||
RefinedSamAdaptersPriority(KOTLIN_1_1),
|
||||
SafeCallBoundSmartCasts(KOTLIN_1_1),
|
||||
TypeInferenceOnGenericsForCallableReferences(KOTLIN_1_1),
|
||||
NoDelegationToJavaDefaultInterfaceMembers(KOTLIN_1_1),
|
||||
|
||||
// Experimental features
|
||||
MultiPlatformProjects(null),
|
||||
@@ -89,8 +90,10 @@ enum class LanguageVersion(val major: Int, val minor: Int) : DescriptionAware {
|
||||
interface LanguageVersionSettings {
|
||||
fun supportsFeature(feature: LanguageFeature): Boolean
|
||||
|
||||
val languageVersion: LanguageVersion
|
||||
val apiVersion: ApiVersion
|
||||
|
||||
// Please do not use this to enable/disable specific features/checks. Instead add a new LanguageFeature entry and call supportsFeature
|
||||
val languageVersion: LanguageVersion
|
||||
}
|
||||
|
||||
class LanguageVersionSettingsImpl @JvmOverloads constructor(
|
||||
|
||||
Reference in New Issue
Block a user