Add external keyword support for UL

Fixed #KT-34923
This commit is contained in:
Igor Yakovlev
2019-11-21 19:03:38 +03:00
parent f80a71517f
commit 8f9895e64e
3 changed files with 6 additions and 0 deletions
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.annotations.Annotated
import org.jetbrains.kotlin.extensions.DeclarationAttributeAltererExtension
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.lexer.KtTokens.EXTERNAL_KEYWORD
import org.jetbrains.kotlin.lexer.KtTokens.REIFIED_KEYWORD
import org.jetbrains.kotlin.load.java.JvmAbi
import org.jetbrains.kotlin.load.kotlin.TypeMappingMode
@@ -283,6 +284,7 @@ internal class UltraLightMembersCreator(
PsiModifier.STATIC -> forceStatic || containingClassIsNamedObject && (outerDeclaration.isJvmStatic(support) || declaration.isJvmStatic(support))
PsiModifier.STRICTFP -> declaration is KtFunction && declaration.hasAnnotation(STRICTFP_ANNOTATION_FQ_NAME)
PsiModifier.SYNCHRONIZED -> declaration is KtFunction && declaration.hasAnnotation(SYNCHRONIZED_ANNOTATION_FQ_NAME)
PsiModifier.NATIVE -> declaration is KtFunction && declaration.hasModifier(EXTERNAL_KEYWORD)
else -> false
}
}
@@ -9,5 +9,7 @@ class Foo {
operator fun plus(increment: Int): Foo {}
fun String.onString(a: (Int) -> Any?): Foo {}
external fun externalFun(a: Int): String { return "" }
class Inner {}
}
@@ -7,3 +7,5 @@ public fun nullableVararg(vararg o: Any?): Unit
operator fun plus(increment: Int): Foo {}
fun String.onString(a: (Int) -> Any?): Foo {}
external fun externalFun(a: Int): String { return "" }