From ce569ca6e04e22d9622dfa6d3b6a19f8efc02491 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Mon, 10 Jun 2019 19:26:58 +0300 Subject: [PATCH] New J2K: remove static modifier for the case when member is converted without containing class --- .../kotlin/nj2k/ConversionsRunner.kt | 1 + ...raModifiersForSingleFunctionsConversion.kt | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 nj2k/src/org/jetbrains/kotlin/nj2k/conversions/RemoveWrongExtraModifiersForSingleFunctionsConversion.kt diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt index db80b4ca7c3..a23e398b116 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt @@ -78,6 +78,7 @@ object ConversionsRunner { +StaticsToCompanionExtractConversion() +InterfaceWithFieldConversion() +ClassToObjectPromotionConversion(context) + +RemoveWrongExtraModifiersForSingleFunctionsConversion() +MethodReferenceToLambdaConversion(context) +BuiltinMembersConversion(context) +ImplicitCastsConversion(context) diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/RemoveWrongExtraModifiersForSingleFunctionsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/RemoveWrongExtraModifiersForSingleFunctionsConversion.kt new file mode 100644 index 00000000000..2e7900182e1 --- /dev/null +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/RemoveWrongExtraModifiersForSingleFunctionsConversion.kt @@ -0,0 +1,20 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.nj2k.conversions + +import org.jetbrains.kotlin.nj2k.tree.* + +class RemoveWrongExtraModifiersForSingleFunctionsConversion : RecursiveApplicableConversionBase() { + override fun applyToElement(element: JKTreeElement): JKTreeElement { + if (element !is JKExtraModifiersOwner) return recurse(element) + if (element.parentOfType() == null) { + element.elementByModifier(ExtraModifier.STATIC)?.also { modifierElement -> + element.extraModifierElements -= modifierElement + } + } + return recurse(element) + } +}