Capitalize/decapitalize only ASCII characters across project
Use {de,}capitalizeAsciiOnly and to{Lower,Upper}CaseAsciiOnly where
possible, and stdlib's functions with Locale.US everywhere else.
Otherwise, if the default system locale is Turkish, the capital latin
letter "I" is transformed in toLowerCase to "ı" (see
https://github.com/JetBrains/kotlin/blob/66bc142f92085047a1ca64f9a291f0496e33dd98/libraries/stdlib/jvm/test/text/StringJVMTest.kt#L119),
which for example breaks the codegen for `intArrayOf` in
KT-25400/KT-43405.
Similarly, lower case latin letter "i" is transformed to "İ".
#KT-13631 Fixed
#KT-25400 Fixed
#KT-43405 Fixed
This commit is contained in:
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.name.parentOrNull
|
|||||||
import org.jetbrains.kotlin.serialization.SerializerExtensionProtocol
|
import org.jetbrains.kotlin.serialization.SerializerExtensionProtocol
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.getClassId
|
import org.jetbrains.kotlin.serialization.deserialization.getClassId
|
||||||
import org.jetbrains.kotlin.serialization.js.JsSerializerProtocol
|
import org.jetbrains.kotlin.serialization.js.JsSerializerProtocol
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||||
import java.io.DataInput
|
import java.io.DataInput
|
||||||
import java.io.DataOutput
|
import java.io.DataOutput
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -326,7 +327,7 @@ private class ProtoDataProvider(private val serializerProtocol: SerializerExtens
|
|||||||
proto.`package`.apply {
|
proto.`package`.apply {
|
||||||
val packageNameId = getExtensionOrNull(serializerProtocol.packageFqName)
|
val packageNameId = getExtensionOrNull(serializerProtocol.packageFqName)
|
||||||
val packageFqName = packageNameId?.let { FqName(nameResolver.getPackageFqName(it)) } ?: FqName.ROOT
|
val packageFqName = packageNameId?.let { FqName(nameResolver.getPackageFqName(it)) } ?: FqName.ROOT
|
||||||
val packagePartClassId = ClassId(packageFqName, Name.identifier(sourceFile.nameWithoutExtension.capitalize() + "Kt"))
|
val packagePartClassId = ClassId(packageFqName, Name.identifier(sourceFile.nameWithoutExtension.capitalizeAsciiOnly() + "Kt"))
|
||||||
classes[packagePartClassId] = PackagePartProtoData(this, nameResolver, packageFqName)
|
classes[packagePartClassId] = PackagePartProtoData(this, nameResolver, packageFqName)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -347,7 +348,7 @@ fun getProtoData(sourceFile: File, metadata: ByteArray): Map<ClassId, ProtoData>
|
|||||||
|
|
||||||
proto.`package`.apply {
|
proto.`package`.apply {
|
||||||
val packageFqName = getExtensionOrNull(JsProtoBuf.packageFqName)?.let(nameResolver::getPackageFqName)?.let(::FqName) ?: FqName.ROOT
|
val packageFqName = getExtensionOrNull(JsProtoBuf.packageFqName)?.let(nameResolver::getPackageFqName)?.let(::FqName) ?: FqName.ROOT
|
||||||
val packagePartClassId = ClassId(packageFqName, Name.identifier(sourceFile.nameWithoutExtension.capitalize() + "Kt"))
|
val packagePartClassId = ClassId(packageFqName, Name.identifier(sourceFile.nameWithoutExtension.capitalizeAsciiOnly() + "Kt"))
|
||||||
classes[packagePartClassId] = PackagePartProtoData(this, nameResolver, packageFqName)
|
classes[packagePartClassId] = PackagePartProtoData(this, nameResolver, packageFqName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,11 +17,10 @@
|
|||||||
package org.jetbrains.kotlin.codegen.intrinsics;
|
package org.jetbrains.kotlin.codegen.intrinsics;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import kotlin.text.StringsKt;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.kotlin.builtins.StandardNames;
|
|
||||||
import org.jetbrains.kotlin.builtins.PrimitiveType;
|
import org.jetbrains.kotlin.builtins.PrimitiveType;
|
||||||
|
import org.jetbrains.kotlin.builtins.StandardNames;
|
||||||
import org.jetbrains.kotlin.codegen.AsmUtil;
|
import org.jetbrains.kotlin.codegen.AsmUtil;
|
||||||
import org.jetbrains.kotlin.config.JvmTarget;
|
import org.jetbrains.kotlin.config.JvmTarget;
|
||||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor;
|
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor;
|
||||||
@@ -30,6 +29,7 @@ import org.jetbrains.kotlin.name.FqNameUnsafe;
|
|||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType;
|
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType;
|
||||||
import org.jetbrains.kotlin.types.expressions.OperatorConventions;
|
import org.jetbrains.kotlin.types.expressions.OperatorConventions;
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.CapitalizeDecapitalizeKt;
|
||||||
import org.jetbrains.org.objectweb.asm.Type;
|
import org.jetbrains.org.objectweb.asm.Type;
|
||||||
|
|
||||||
import static org.jetbrains.kotlin.builtins.StandardNames.*;
|
import static org.jetbrains.kotlin.builtins.StandardNames.*;
|
||||||
@@ -122,7 +122,9 @@ public class IntrinsicMethods {
|
|||||||
declareIntrinsicFunction(typeFqName, "toString", 0, TO_STRING);
|
declareIntrinsicFunction(typeFqName, "toString", 0, TO_STRING);
|
||||||
|
|
||||||
intrinsicsMap.registerIntrinsic(
|
intrinsicsMap.registerIntrinsic(
|
||||||
BUILT_INS_PACKAGE_FQ_NAME, null, StringsKt.decapitalize(type.getArrayTypeName().asString()) + "Of", 1, new ArrayOf()
|
BUILT_INS_PACKAGE_FQ_NAME, null,
|
||||||
|
CapitalizeDecapitalizeKt.decapitalizeAsciiOnly(type.getArrayTypeName().asString()) + "Of",
|
||||||
|
1, new ArrayOf()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -23,6 +23,7 @@ import org.fusesource.jansi.Ansi;
|
|||||||
import org.fusesource.jansi.internal.CLibrary;
|
import org.fusesource.jansi.internal.CLibrary;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.CapitalizeDecapitalizeKt;
|
||||||
|
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -130,7 +131,7 @@ public abstract class PlainTextMessageRenderer implements MessageRenderer {
|
|||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
return StringsKt.decapitalize(message);
|
return CapitalizeDecapitalizeKt.decapitalizeAsciiOnly(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
+2
-1
@@ -30,6 +30,7 @@ import org.xml.sax.SAXException
|
|||||||
import org.xml.sax.helpers.DefaultHandler
|
import org.xml.sax.helpers.DefaultHandler
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.io.Reader
|
import java.io.Reader
|
||||||
|
import java.util.*
|
||||||
import javax.xml.parsers.SAXParserFactory
|
import javax.xml.parsers.SAXParserFactory
|
||||||
|
|
||||||
object CompilerOutputParser {
|
object CompilerOutputParser {
|
||||||
@@ -124,7 +125,7 @@ object CompilerOutputParser {
|
|||||||
// We're directly inside the root tag: <MESSAGES>
|
// We're directly inside the root tag: <MESSAGES>
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
val qNameLowerCase = qName.toLowerCase()
|
val qNameLowerCase = qName.toLowerCase(Locale.US)
|
||||||
var category: CompilerMessageSeverity? = CATEGORIES[qNameLowerCase]
|
var category: CompilerMessageSeverity? = CATEGORIES[qNameLowerCase]
|
||||||
if (category == null) {
|
if (category == null) {
|
||||||
messageCollector.report(ERROR, "Unknown compiler message tag: $qName")
|
messageCollector.report(ERROR, "Unknown compiler message tag: $qName")
|
||||||
|
|||||||
+2
-1
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.daemon.common
|
package org.jetbrains.kotlin.daemon.common
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
enum class OSKind {
|
enum class OSKind {
|
||||||
@@ -25,7 +26,7 @@ enum class OSKind {
|
|||||||
Unknown;
|
Unknown;
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
val current: OSKind = System.getProperty("os.name").toLowerCase().let {
|
val current: OSKind = System.getProperty("os.name").toLowerCaseAsciiOnly().let {
|
||||||
when {
|
when {
|
||||||
// partly taken from http://www.code4copy.com/java/post/detecting-os-type-in-java
|
// partly taken from http://www.code4copy.com/java/post/detecting-os-type-in-java
|
||||||
it.startsWith("windows") -> Windows
|
it.startsWith("windows") -> Windows
|
||||||
|
|||||||
+2
-1
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
|||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
|
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
|
||||||
|
|
||||||
open class FirJvmMangleComputer(
|
open class FirJvmMangleComputer(
|
||||||
@@ -210,7 +211,7 @@ open class FirJvmMangleComputer(
|
|||||||
is ConeStarProjection -> appendSignature(MangleConstant.STAR_MARK)
|
is ConeStarProjection -> appendSignature(MangleConstant.STAR_MARK)
|
||||||
is ConeKotlinTypeProjection -> {
|
is ConeKotlinTypeProjection -> {
|
||||||
if (arg.kind != ProjectionKind.INVARIANT) {
|
if (arg.kind != ProjectionKind.INVARIANT) {
|
||||||
appendSignature(arg.kind.name.toLowerCase())
|
appendSignature(arg.kind.name.toLowerCaseAsciiOnly())
|
||||||
appendSignature(MangleConstant.VARIANCE_SEPARATOR)
|
appendSignature(MangleConstant.VARIANCE_SEPARATOR)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ import org.jetbrains.kotlin.name.ClassId
|
|||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.types.Variance.*
|
import org.jetbrains.kotlin.types.Variance.*
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.runIf
|
import org.jetbrains.kotlin.utils.addToStdlib.runIf
|
||||||
import java.lang.Deprecated
|
import java.lang.Deprecated
|
||||||
import java.lang.annotation.Documented
|
import java.lang.annotation.Documented
|
||||||
@@ -140,7 +141,7 @@ internal fun JavaType?.toConeKotlinTypeWithoutEnhancement(
|
|||||||
val primitiveType = type
|
val primitiveType = type
|
||||||
val kotlinPrimitiveName = when (val javaName = primitiveType?.typeName?.asString()) {
|
val kotlinPrimitiveName = when (val javaName = primitiveType?.typeName?.asString()) {
|
||||||
null -> "Unit"
|
null -> "Unit"
|
||||||
else -> javaName.capitalize()
|
else -> javaName.capitalizeAsciiOnly()
|
||||||
}
|
}
|
||||||
|
|
||||||
val classId = StandardClassIds.byName(kotlinPrimitiveName)
|
val classId = StandardClassIds.byName(kotlinPrimitiveName)
|
||||||
@@ -194,7 +195,7 @@ private fun JavaArrayType.toConeKotlinTypeWithoutEnhancement(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
val javaComponentName = componentType.type?.typeName?.asString()?.capitalize() ?: error("Array of voids")
|
val javaComponentName = componentType.type?.typeName?.asString()?.capitalizeAsciiOnly() ?: error("Array of voids")
|
||||||
val classId = StandardClassIds.byName(javaComponentName + "Array")
|
val classId = StandardClassIds.byName(javaComponentName + "Array")
|
||||||
|
|
||||||
if (forAnnotationValueParameter) {
|
if (forAnnotationValueParameter) {
|
||||||
|
|||||||
+2
-2
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.fir.NoMutableState
|
|||||||
import org.jetbrains.kotlin.fir.resolve.calls.FirSyntheticNamesProvider
|
import org.jetbrains.kotlin.fir.resolve.calls.FirSyntheticNamesProvider
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.decapitalizeAsciiOnly
|
||||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toUpperCaseAsciiOnly
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toUpperCaseAsciiOnly
|
||||||
|
|
||||||
@NoMutableState
|
@NoMutableState
|
||||||
@@ -91,7 +92,7 @@ object FirJavaSyntheticNamesProvider : FirSyntheticNamesProvider() {
|
|||||||
else -> return emptyList()
|
else -> return emptyList()
|
||||||
}
|
}
|
||||||
val withoutPrefix = identifier.removePrefix(prefix)
|
val withoutPrefix = identifier.removePrefix(prefix)
|
||||||
val withoutPrefixName = Name.identifier(withoutPrefix.decapitalize())
|
val withoutPrefixName = Name.identifier(withoutPrefix.decapitalizeAsciiOnly())
|
||||||
return if (prefix == SETTER_PREFIX) {
|
return if (prefix == SETTER_PREFIX) {
|
||||||
listOf(withoutPrefixName, Name.identifier(IS_PREFIX + withoutPrefix))
|
listOf(withoutPrefixName, Name.identifier(IS_PREFIX + withoutPrefix))
|
||||||
} else {
|
} else {
|
||||||
@@ -99,4 +100,3 @@ object FirJavaSyntheticNamesProvider : FirSyntheticNamesProvider() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.fir.types.*
|
|||||||
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
|
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
|
||||||
import org.jetbrains.kotlin.name.SpecialNames
|
import org.jetbrains.kotlin.name.SpecialNames
|
||||||
import org.jetbrains.kotlin.types.Variance
|
import org.jetbrains.kotlin.types.Variance
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||||
import org.jetbrains.kotlin.utils.Printer
|
import org.jetbrains.kotlin.utils.Printer
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||||
|
|
||||||
@@ -226,7 +227,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun FirMemberDeclaration.modalityAsString(): String {
|
private fun FirMemberDeclaration.modalityAsString(): String {
|
||||||
return modality?.name?.toLowerCase() ?: run {
|
return modality?.name?.toLowerCaseAsciiOnly() ?: run {
|
||||||
if (this is FirCallableMemberDeclaration<*> && this.isOverride) {
|
if (this is FirCallableMemberDeclaration<*> && this.isOverride) {
|
||||||
"open?"
|
"open?"
|
||||||
} else {
|
} else {
|
||||||
@@ -343,7 +344,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
|
|||||||
declaration.renderPhaseIfNeeded()
|
declaration.renderPhaseIfNeeded()
|
||||||
print(
|
print(
|
||||||
when (declaration) {
|
when (declaration) {
|
||||||
is FirRegularClass -> declaration.classKind.name.toLowerCase().replace("_", " ")
|
is FirRegularClass -> declaration.classKind.name.toLowerCaseAsciiOnly().replace("_", " ")
|
||||||
is FirTypeAlias -> "typealias"
|
is FirTypeAlias -> "typealias"
|
||||||
is FirSimpleFunction -> "fun"
|
is FirSimpleFunction -> "fun"
|
||||||
is FirProperty -> {
|
is FirProperty -> {
|
||||||
|
|||||||
@@ -7,18 +7,22 @@ package org.jetbrains.kotlin.ir.interpreter
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.builtins.StandardNames
|
import org.jetbrains.kotlin.builtins.StandardNames
|
||||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||||
import org.jetbrains.kotlin.ir.interpreter.builtins.evaluateIntrinsicAnnotation
|
|
||||||
import org.jetbrains.kotlin.ir.interpreter.stack.Variable
|
|
||||||
import org.jetbrains.kotlin.ir.interpreter.state.*
|
|
||||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.expressions.*
|
import org.jetbrains.kotlin.ir.expressions.*
|
||||||
import org.jetbrains.kotlin.ir.expressions.impl.IrConstImpl
|
import org.jetbrains.kotlin.ir.expressions.impl.IrConstImpl
|
||||||
import org.jetbrains.kotlin.ir.symbols.*
|
import org.jetbrains.kotlin.ir.interpreter.builtins.evaluateIntrinsicAnnotation
|
||||||
|
import org.jetbrains.kotlin.ir.interpreter.stack.Variable
|
||||||
|
import org.jetbrains.kotlin.ir.interpreter.state.*
|
||||||
|
import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol
|
||||||
|
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||||
|
import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol
|
||||||
|
import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.*
|
import org.jetbrains.kotlin.ir.types.*
|
||||||
import org.jetbrains.kotlin.ir.util.*
|
import org.jetbrains.kotlin.ir.util.*
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||||
|
|
||||||
internal fun IrFunction.getDispatchReceiver(): IrValueParameterSymbol? = this.dispatchReceiverParameter?.symbol
|
internal fun IrFunction.getDispatchReceiver(): IrValueParameterSymbol? = this.dispatchReceiverParameter?.symbol
|
||||||
@@ -202,7 +206,7 @@ internal fun State?.getCorrectReceiverByFunction(irFunction: IrFunction): State?
|
|||||||
return generateSequence(original) { it.superClass }.firstOrNull { it.irClass.thisReceiver == other } ?: this
|
return generateSequence(original) { it.superClass }.firstOrNull { it.irClass.thisReceiver == other } ?: this
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun IrFunction.getCapitalizedFileName() = this.file.name.replace(".kt", "Kt").capitalize()
|
internal fun IrFunction.getCapitalizedFileName() = this.file.name.replace(".kt", "Kt").capitalizeAsciiOnly()
|
||||||
|
|
||||||
internal fun IrType.isUnsigned() = this.isUByte() || this.isUShort() || this.isUInt() || this.isULong()
|
internal fun IrType.isUnsigned() = this.isUByte() || this.isUShort() || this.isUInt() || this.isULong()
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.ir.util.defaultType
|
|||||||
import org.jetbrains.kotlin.ir.util.fqNameForIrSerialization
|
import org.jetbrains.kotlin.ir.util.fqNameForIrSerialization
|
||||||
import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable
|
import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable
|
||||||
import org.jetbrains.kotlin.ir.util.parentAsClass
|
import org.jetbrains.kotlin.ir.util.parentAsClass
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||||
import java.lang.invoke.MethodHandle
|
import java.lang.invoke.MethodHandle
|
||||||
import java.lang.invoke.MethodHandles
|
import java.lang.invoke.MethodHandles
|
||||||
import java.lang.invoke.MethodType
|
import java.lang.invoke.MethodType
|
||||||
@@ -30,7 +31,7 @@ internal class Wrapper(val value: Any, override val irClass: IrClass) : Complex(
|
|||||||
if (irFunction.getEvaluateIntrinsicValue()?.isEmpty() == true) return null // this method will handle IntrinsicEvaluator
|
if (irFunction.getEvaluateIntrinsicValue()?.isEmpty() == true) return null // this method will handle IntrinsicEvaluator
|
||||||
// if function is actually a getter, then use "get${property.name.capitalize()}" as method name
|
// if function is actually a getter, then use "get${property.name.capitalize()}" as method name
|
||||||
val propertyName = (irFunction as? IrSimpleFunction)?.correspondingPropertySymbol?.owner?.name?.asString()
|
val propertyName = (irFunction as? IrSimpleFunction)?.correspondingPropertySymbol?.owner?.name?.asString()
|
||||||
val propertyCall = listOfNotNull(propertyName, "get${propertyName?.capitalize()}")
|
val propertyCall = listOfNotNull(propertyName, "get${propertyName?.capitalizeAsciiOnly()}")
|
||||||
.firstOrNull { receiverClass.methods.any { method -> method.name == it } }
|
.firstOrNull { receiverClass.methods.any { method -> method.name == it } }
|
||||||
|
|
||||||
val intrinsicName = getJavaOriginalName(irFunction)
|
val intrinsicName = getJavaOriginalName(irFunction)
|
||||||
|
|||||||
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.kdoc.parser
|
package org.jetbrains.kotlin.kdoc.parser
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toUpperCaseAsciiOnly
|
||||||
|
|
||||||
enum class KDocKnownTag(val isReferenceRequired: Boolean, val isSectionStart: Boolean) {
|
enum class KDocKnownTag(val isReferenceRequired: Boolean, val isSectionStart: Boolean) {
|
||||||
AUTHOR(false, false),
|
AUTHOR(false, false),
|
||||||
THROWS(true, false),
|
THROWS(true, false),
|
||||||
@@ -37,7 +39,7 @@ enum class KDocKnownTag(val isReferenceRequired: Boolean, val isSectionStart: Bo
|
|||||||
tagName.subSequence(1, tagName.length)
|
tagName.subSequence(1, tagName.length)
|
||||||
} else tagName
|
} else tagName
|
||||||
try {
|
try {
|
||||||
return valueOf(name.toString().toUpperCase())
|
return valueOf(name.toString().toUpperCaseAsciiOnly())
|
||||||
} catch (ignored: IllegalArgumentException) {
|
} catch (ignored: IllegalArgumentException) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,13 +10,14 @@ import com.intellij.psi.impl.source.tree.LazyParseablePsiElement
|
|||||||
import com.intellij.psi.tree.IElementType
|
import com.intellij.psi.tree.IElementType
|
||||||
import org.jetbrains.kotlin.idea.KotlinLanguage
|
import org.jetbrains.kotlin.idea.KotlinLanguage
|
||||||
import org.jetbrains.kotlin.kdoc.lexer.KDocTokens
|
import org.jetbrains.kotlin.kdoc.lexer.KDocTokens
|
||||||
|
import org.jetbrains.kotlin.kdoc.parser.KDocKnownTag
|
||||||
import org.jetbrains.kotlin.kdoc.psi.api.KDoc
|
import org.jetbrains.kotlin.kdoc.psi.api.KDoc
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
|
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.getChildOfType
|
import org.jetbrains.kotlin.psi.psiUtil.getChildOfType
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType
|
import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType
|
||||||
import org.jetbrains.kotlin.kdoc.parser.KDocKnownTag
|
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||||
|
|
||||||
class KDocImpl(buffer: CharSequence?) : LazyParseablePsiElement(KDocTokens.KDOC, buffer), KDoc {
|
class KDocImpl(buffer: CharSequence?) : LazyParseablePsiElement(KDocTokens.KDOC, buffer), KDoc {
|
||||||
|
|
||||||
@@ -37,10 +38,10 @@ class KDocImpl(buffer: CharSequence?) : LazyParseablePsiElement(KDocTokens.KDOC,
|
|||||||
getChildrenOfType<KDocSection>().firstOrNull { it.name == name }
|
getChildrenOfType<KDocSection>().firstOrNull { it.name == name }
|
||||||
|
|
||||||
override fun findSectionByTag(tag: KDocKnownTag): KDocSection? =
|
override fun findSectionByTag(tag: KDocKnownTag): KDocSection? =
|
||||||
findSectionByName(tag.name.toLowerCase())
|
findSectionByName(tag.name.toLowerCaseAsciiOnly())
|
||||||
|
|
||||||
override fun findSectionByTag(tag: KDocKnownTag, subjectName: String): KDocSection? =
|
override fun findSectionByTag(tag: KDocKnownTag, subjectName: String): KDocSection? =
|
||||||
getChildrenOfType<KDocSection>().firstOrNull {
|
getChildrenOfType<KDocSection>().firstOrNull {
|
||||||
it.name == tag.name.toLowerCase() && it.getSubjectName() == subjectName
|
it.name == tag.name.toLowerCaseAsciiOnly() && it.getSubjectName() == subjectName
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.name.ClassId
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType
|
import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||||
|
|
||||||
private typealias Stack = MutableList<Pair<String, MutableList<String>>>
|
private typealias Stack = MutableList<Pair<String, MutableList<String>>>
|
||||||
|
|
||||||
@@ -452,7 +453,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() {
|
|||||||
resolvedQualifier.symbol?.let {
|
resolvedQualifier.symbol?.let {
|
||||||
val fir = it.fir
|
val fir = it.fir
|
||||||
if (fir is FirClass) {
|
if (fir is FirClass) {
|
||||||
data.append(fir.classKind.name.toLowerCase()).append(" ")
|
data.append(fir.classKind.name.toLowerCaseAsciiOnly()).append(" ")
|
||||||
data.append((fir as? FirRegularClass)?.name ?: Name.special("<anonymous>"))
|
data.append((fir as? FirRegularClass)?.name ?: Name.special("<anonymous>"))
|
||||||
if (fir.superTypeRefs.any { it.render() != "kotlin/Any" }) {
|
if (fir.superTypeRefs.any { it.render() != "kotlin/Any" }) {
|
||||||
data.append(": ")
|
data.append(": ")
|
||||||
|
|||||||
+7
-5
@@ -16,16 +16,18 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.descriptors.annotations
|
package org.jetbrains.kotlin.descriptors.annotations
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||||
|
|
||||||
enum class AnnotationUseSiteTarget(renderName: String? = null) {
|
enum class AnnotationUseSiteTarget(renderName: String? = null) {
|
||||||
FIELD(),
|
FIELD,
|
||||||
FILE(),
|
FILE,
|
||||||
PROPERTY(),
|
PROPERTY,
|
||||||
PROPERTY_GETTER("get"),
|
PROPERTY_GETTER("get"),
|
||||||
PROPERTY_SETTER("set"),
|
PROPERTY_SETTER("set"),
|
||||||
RECEIVER(),
|
RECEIVER,
|
||||||
CONSTRUCTOR_PARAMETER("param"),
|
CONSTRUCTOR_PARAMETER("param"),
|
||||||
SETTER_PARAMETER("setparam"),
|
SETTER_PARAMETER("setparam"),
|
||||||
PROPERTY_DELEGATE_FIELD("delegate");
|
PROPERTY_DELEGATE_FIELD("delegate");
|
||||||
|
|
||||||
val renderName: String = renderName ?: name.toLowerCase()
|
val renderName: String = renderName ?: name.toLowerCaseAsciiOnly()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.name.Name
|
|||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.types.*
|
import org.jetbrains.kotlin.types.*
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||||
import kotlin.reflect.KProperty
|
import kotlin.reflect.KProperty
|
||||||
|
|
||||||
class ReflectionTypes(module: ModuleDescriptor, private val notFoundClasses: NotFoundClasses) {
|
class ReflectionTypes(module: ModuleDescriptor, private val notFoundClasses: NotFoundClasses) {
|
||||||
@@ -35,7 +36,7 @@ class ReflectionTypes(module: ModuleDescriptor, private val notFoundClasses: Not
|
|||||||
|
|
||||||
private class ClassLookup(val numberOfTypeParameters: Int) {
|
private class ClassLookup(val numberOfTypeParameters: Int) {
|
||||||
operator fun getValue(types: ReflectionTypes, property: KProperty<*>): ClassDescriptor {
|
operator fun getValue(types: ReflectionTypes, property: KProperty<*>): ClassDescriptor {
|
||||||
return types.find(property.name.capitalize(), numberOfTypeParameters)
|
return types.find(property.name.capitalizeAsciiOnly(), numberOfTypeParameters)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.declaresOrInheritsDefaultValu
|
|||||||
import org.jetbrains.kotlin.types.*
|
import org.jetbrains.kotlin.types.*
|
||||||
import org.jetbrains.kotlin.types.ErrorUtils.UninferredParameterTypeConstructor
|
import org.jetbrains.kotlin.types.ErrorUtils.UninferredParameterTypeConstructor
|
||||||
import org.jetbrains.kotlin.types.TypeUtils.CANT_INFER_FUNCTION_PARAM_TYPE
|
import org.jetbrains.kotlin.types.TypeUtils.CANT_INFER_FUNCTION_PARAM_TYPE
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
internal class DescriptorRendererImpl(
|
internal class DescriptorRendererImpl(
|
||||||
@@ -494,7 +495,7 @@ internal class DescriptorRendererImpl(
|
|||||||
|
|
||||||
private fun renderModality(modality: Modality, builder: StringBuilder, defaultModality: Modality) {
|
private fun renderModality(modality: Modality, builder: StringBuilder, defaultModality: Modality) {
|
||||||
if (!renderDefaultModality && modality == defaultModality) return
|
if (!renderDefaultModality && modality == defaultModality) return
|
||||||
renderModifier(builder, DescriptorRendererModifier.MODALITY in modifiers, modality.name.toLowerCase())
|
renderModifier(builder, DescriptorRendererModifier.MODALITY in modifiers, modality.name.toLowerCaseAsciiOnly())
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun MemberDescriptor.implicitModalityWithoutExtensions(): Modality {
|
private fun MemberDescriptor.implicitModalityWithoutExtensions(): Modality {
|
||||||
@@ -538,7 +539,7 @@ internal class DescriptorRendererImpl(
|
|||||||
private fun renderMemberKind(callableMember: CallableMemberDescriptor, builder: StringBuilder) {
|
private fun renderMemberKind(callableMember: CallableMemberDescriptor, builder: StringBuilder) {
|
||||||
if (DescriptorRendererModifier.MEMBER_KIND !in modifiers) return
|
if (DescriptorRendererModifier.MEMBER_KIND !in modifiers) return
|
||||||
if (verbose && callableMember.kind != CallableMemberDescriptor.Kind.DECLARATION) {
|
if (verbose && callableMember.kind != CallableMemberDescriptor.Kind.DECLARATION) {
|
||||||
builder.append("/*").append(callableMember.kind.name.toLowerCase()).append("*/ ")
|
builder.append("/*").append(callableMember.kind.name.toLowerCaseAsciiOnly()).append("*/ ")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -43,6 +43,7 @@ import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType
|
|||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.resolve.scopes.utils.collectDescriptorsFiltered
|
import org.jetbrains.kotlin.resolve.scopes.utils.collectDescriptorsFiltered
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class KDocCompletionContributor : CompletionContributor() {
|
class KDocCompletionContributor : CompletionContributor() {
|
||||||
init {
|
init {
|
||||||
@@ -157,7 +158,7 @@ object KDocTagCompletionProvider : CompletionProvider<CompletionParameters>() {
|
|||||||
val resultWithPrefix = result.withPrefixMatcher(prefix)
|
val resultWithPrefix = result.withPrefixMatcher(prefix)
|
||||||
KDocKnownTag.values().forEach {
|
KDocKnownTag.values().forEach {
|
||||||
if (kdocOwner == null || it.isApplicable(kdocOwner)) {
|
if (kdocOwner == null || it.isApplicable(kdocOwner)) {
|
||||||
resultWithPrefix.addElement(LookupElementBuilder.create("@" + it.name.toLowerCase()))
|
resultWithPrefix.addElement(LookupElementBuilder.create("@" + it.name.toLowerCase(Locale.US)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-2
@@ -24,7 +24,6 @@ import com.intellij.openapi.progress.ProgressManager
|
|||||||
import com.intellij.openapi.util.Key
|
import com.intellij.openapi.util.Key
|
||||||
import com.intellij.psi.PsiClass
|
import com.intellij.psi.PsiClass
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager
|
|
||||||
import com.intellij.psi.codeStyle.NameUtil
|
import com.intellij.psi.codeStyle.NameUtil
|
||||||
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
@@ -69,7 +68,7 @@ class VariableOrParameterNameWithTypeCompletion(
|
|||||||
prefixWords.indices.map { index -> if (index == 0) prefix else prefixWords.drop(index).joinToString("") }
|
prefixWords.indices.map { index -> if (index == 0) prefix else prefixWords.drop(index).joinToString("") }
|
||||||
|
|
||||||
userPrefixes = nameSuggestionPrefixes.indices.map { prefixWords.take(it).joinToString("") }
|
userPrefixes = nameSuggestionPrefixes.indices.map { prefixWords.take(it).joinToString("") }
|
||||||
classNamePrefixMatchers = nameSuggestionPrefixes.map { CamelHumpMatcher(it.capitalize(), false) }
|
classNamePrefixMatchers = nameSuggestionPrefixes.map { CamelHumpMatcher(it.capitalize(Locale.US), false) }
|
||||||
}
|
}
|
||||||
|
|
||||||
private val suggestionsByTypesAdded = HashSet<Type>()
|
private val suggestionsByTypesAdded = HashSet<Type>()
|
||||||
|
|||||||
@@ -164,7 +164,7 @@ object KotlinNameSuggester {
|
|||||||
val argText = typeArguments.joinToString(separator = "") { it.typeReference?.typeElement?.render() ?: "" }
|
val argText = typeArguments.joinToString(separator = "") { it.typeReference?.typeElement?.render() ?: "" }
|
||||||
"$argText${referenceExpression?.text ?: ""}"
|
"$argText${referenceExpression?.text ?: ""}"
|
||||||
}
|
}
|
||||||
else -> text.capitalize()
|
else -> text.capitalizeAsciiOnly()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -13,6 +13,7 @@ import com.intellij.openapi.module.Module
|
|||||||
import org.jetbrains.kotlin.config.KotlinFacetSettingsProvider
|
import org.jetbrains.kotlin.config.KotlinFacetSettingsProvider
|
||||||
import org.jetbrains.kotlin.idea.caches.project.isMPPModule
|
import org.jetbrains.kotlin.idea.caches.project.isMPPModule
|
||||||
import org.jetbrains.kotlin.idea.configuration.KotlinTargetData
|
import org.jetbrains.kotlin.idea.configuration.KotlinTargetData
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||||
import org.jetbrains.plugins.gradle.execution.test.runner.GradleTestTasksProvider
|
import org.jetbrains.plugins.gradle.execution.test.runner.GradleTestTasksProvider
|
||||||
import org.jetbrains.plugins.gradle.service.project.GradleProjectResolverUtil
|
import org.jetbrains.plugins.gradle.service.project.GradleProjectResolverUtil
|
||||||
import org.jetbrains.plugins.gradle.util.GradleConstants
|
import org.jetbrains.plugins.gradle.util.GradleConstants
|
||||||
@@ -57,6 +58,6 @@ class KotlinMPPGradleTestTasksProvider : GradleTestTasksProvider {
|
|||||||
|
|
||||||
private fun getTaskNames(task: TaskData, namePrefix: String): List<String> {
|
private fun getTaskNames(task: TaskData, namePrefix: String): List<String> {
|
||||||
val name = task.name
|
val name = task.name
|
||||||
return listOf(namePrefix + CLEAN_NAME_PREFIX + name.capitalize(), namePrefix + name)
|
return listOf(namePrefix + CLEAN_NAME_PREFIX + name.capitalizeAsciiOnly(), namePrefix + name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.config.ExternalSystemRunTask
|
|||||||
import org.jetbrains.kotlin.config.ExternalSystemTestRunTask
|
import org.jetbrains.kotlin.config.ExternalSystemTestRunTask
|
||||||
import org.jetbrains.kotlin.idea.facet.externalSystemTestRunTasks
|
import org.jetbrains.kotlin.idea.facet.externalSystemTestRunTasks
|
||||||
import org.jetbrains.kotlin.idea.util.module
|
import org.jetbrains.kotlin.idea.util.module
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||||
import org.jetbrains.plugins.gradle.execution.test.runner.*
|
import org.jetbrains.plugins.gradle.execution.test.runner.*
|
||||||
import org.jetbrains.plugins.gradle.util.TasksToRun
|
import org.jetbrains.plugins.gradle.util.TasksToRun
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -56,7 +57,7 @@ class MultiplatformTestTasksChooser : TestTasksChooser() {
|
|||||||
return { it.targetName == targetName }
|
return { it.targetName == targetName }
|
||||||
}
|
}
|
||||||
|
|
||||||
val taskPrefix = targetName + parts[1].capitalize()
|
val taskPrefix = targetName + parts[1].capitalizeAsciiOnly()
|
||||||
|
|
||||||
return { it.targetName == targetName && it.taskName.startsWith(taskPrefix) }
|
return { it.targetName == targetName && it.taskName.startsWith(taskPrefix) }
|
||||||
}
|
}
|
||||||
@@ -119,7 +120,7 @@ class MultiplatformTestTasksChooser : TestTasksChooser() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun getTaskNames(task: ExternalSystemRunTask): List<String> {
|
private fun getTaskNames(task: ExternalSystemRunTask): List<String> {
|
||||||
return listOf("clean" + task.taskName.capitalize(), task.taskName)
|
return listOf("clean" + task.taskName.capitalizeAsciiOnly(), task.taskName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ import org.jetbrains.kotlin.config.TestSourceKotlinRootType
|
|||||||
import org.jetbrains.kotlin.idea.configuration.RepositoryDescription
|
import org.jetbrains.kotlin.idea.configuration.RepositoryDescription
|
||||||
import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator
|
import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType
|
import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||||
import org.jetbrains.kotlin.utils.SmartList
|
import org.jetbrains.kotlin.utils.SmartList
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
@@ -116,7 +117,7 @@ class PomFile private constructor(private val xmlFile: XmlFile, val domModel: Ma
|
|||||||
dependency.classifier.stringValue = classifier
|
dependency.classifier.stringValue = classifier
|
||||||
|
|
||||||
if (scope != null && scope != MavenArtifactScope.COMPILE) {
|
if (scope != null && scope != MavenArtifactScope.COMPILE) {
|
||||||
dependency.scope.stringValue = scope.name.toLowerCase()
|
dependency.scope.stringValue = scope.name.toLowerCaseAsciiOnly()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (optional) {
|
if (optional) {
|
||||||
@@ -635,7 +636,8 @@ internal fun MavenDomDependencies.findDependencies(artifacts: List<MavenId>, sco
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun MavenDomDependency.matches(artifact: MavenId, scope: MavenArtifactScope?) =
|
private fun MavenDomDependency.matches(artifact: MavenId, scope: MavenArtifactScope?) =
|
||||||
this.matches(artifact) && (this.scope.stringValue == scope?.name?.toLowerCase() || scope == null && this.scope.stringValue == "compile")
|
this.matches(artifact) &&
|
||||||
|
(this.scope.stringValue == scope?.name?.toLowerCaseAsciiOnly() || scope == null && this.scope.stringValue == "compile")
|
||||||
|
|
||||||
private fun MavenDomArtifactCoordinates.matches(artifact: MavenId) =
|
private fun MavenDomArtifactCoordinates.matches(artifact: MavenId) =
|
||||||
(artifact.groupId == null || groupId.stringValue == artifact.groupId)
|
(artifact.groupId == null || groupId.stringValue == artifact.groupId)
|
||||||
|
|||||||
+2
-1
@@ -40,6 +40,7 @@ import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.firstStep.FirstWizardS
|
|||||||
import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.runWithProgressBar
|
import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.runWithProgressBar
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.secondStep.SecondStepWizardComponent
|
import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.secondStep.SecondStepWizardComponent
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.util.*
|
||||||
import javax.swing.JButton
|
import javax.swing.JButton
|
||||||
import javax.swing.JComponent
|
import javax.swing.JComponent
|
||||||
import com.intellij.openapi.module.Module as IdeaModule
|
import com.intellij.openapi.module.Module as IdeaModule
|
||||||
@@ -217,7 +218,7 @@ class ModuleNewWizardFirstStep(wizard: IdeWizard) : WizardStep(wizard, Generatio
|
|||||||
private fun suggestGroupId(): String {
|
private fun suggestGroupId(): String {
|
||||||
val username = SystemProperties.getUserName() ?: return DEFAULT_GROUP_ID
|
val username = SystemProperties.getUserName() ?: return DEFAULT_GROUP_ID
|
||||||
if (!username.matches("[\\w\\s]+".toRegex())) return DEFAULT_GROUP_ID
|
if (!username.matches("[\\w\\s]+".toRegex())) return DEFAULT_GROUP_ID
|
||||||
val usernameAsGroupId = username.trim().toLowerCase().split("\\s+".toRegex()).joinToString(separator = ".")
|
val usernameAsGroupId = username.trim().toLowerCase(Locale.US).split("\\s+".toRegex()).joinToString(separator = ".")
|
||||||
return "me.$usernameAsGroupId"
|
return "me.$usernameAsGroupId"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Sourceset
|
|||||||
import org.jetbrains.kotlin.tools.projectWizard.wizard.KotlinNewProjectWizardUIBundle
|
import org.jetbrains.kotlin.tools.projectWizard.wizard.KotlinNewProjectWizardUIBundle
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.createPanelWithPopupHandler
|
import org.jetbrains.kotlin.tools.projectWizard.wizard.ui.createPanelWithPopupHandler
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||||
|
import java.util.*
|
||||||
import javax.swing.JComponent
|
import javax.swing.JComponent
|
||||||
|
|
||||||
class ModulesEditorToolbarDecorator(
|
class ModulesEditorToolbarDecorator(
|
||||||
@@ -72,7 +73,7 @@ class ModulesEditorToolbarDecorator(
|
|||||||
null -> ""
|
null -> ""
|
||||||
}
|
}
|
||||||
|
|
||||||
text = KotlinNewProjectWizardUIBundle.message("editor.modules.add", moduleKindTextToAdd.capitalize())
|
text = KotlinNewProjectWizardUIBundle.message("editor.modules.add", moduleKindTextToAdd.capitalize(Locale.US))
|
||||||
}
|
}
|
||||||
event.presentation.isEnabled
|
event.presentation.isEnabled
|
||||||
}
|
}
|
||||||
@@ -103,7 +104,7 @@ class ModulesEditorToolbarDecorator(
|
|||||||
isEnabled = tree.selectedSettingItem is Module
|
isEnabled = tree.selectedSettingItem is Module
|
||||||
text = KotlinNewProjectWizardUIBundle.message(
|
text = KotlinNewProjectWizardUIBundle.message(
|
||||||
"editor.modules.remove.tooltip",
|
"editor.modules.remove.tooltip",
|
||||||
selectedModuleKindText?.let { " ${it.capitalize()}" }.orEmpty()
|
selectedModuleKindText?.let { " ${it.capitalize(Locale.US)}" }.orEmpty()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
event.presentation.isEnabled
|
event.presentation.isEnabled
|
||||||
|
|||||||
+2
-1
@@ -29,6 +29,7 @@ import org.jetbrains.kotlin.resolve.BindingContext
|
|||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.varargParameterPosition
|
import org.jetbrains.kotlin.resolve.descriptorUtil.varargParameterPosition
|
||||||
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||||
import org.jetbrains.kotlin.utils.keysToMap
|
import org.jetbrains.kotlin.utils.keysToMap
|
||||||
import kotlin.jvm.internal.FunctionBase
|
import kotlin.jvm.internal.FunctionBase
|
||||||
|
|
||||||
@@ -172,7 +173,7 @@ abstract class FileRankingCalculator(private val checkClassFqName: Boolean = tru
|
|||||||
return -MAJOR
|
return -MAJOR
|
||||||
|
|
||||||
// boolean is
|
// boolean is
|
||||||
return if (methodName.drop(3) == propertyName.capitalize()) MAJOR else -NORMAL
|
return if (methodName.drop(3) == propertyName.capitalizeAsciiOnly()) MAJOR else -NORMAL
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun rankingForVisibility(descriptor: DeclarationDescriptorWithVisibility, accessible: Accessible): Ranking {
|
private fun rankingForVisibility(descriptor: DeclarationDescriptorWithVisibility, accessible: Accessible): Ranking {
|
||||||
|
|||||||
+2
-1
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.resolve.BindingContext
|
|||||||
import org.jetbrains.kotlin.resolve.BindingContext.DECLARATION_TO_DESCRIPTOR
|
import org.jetbrains.kotlin.resolve.BindingContext.DECLARATION_TO_DESCRIPTOR
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext.REFERENCE_TARGET
|
import org.jetbrains.kotlin.resolve.BindingContext.REFERENCE_TARGET
|
||||||
import org.jetbrains.kotlin.synthetic.SyntheticJavaPropertyDescriptor
|
import org.jetbrains.kotlin.synthetic.SyntheticJavaPropertyDescriptor
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||||
|
|
||||||
class RecursivePropertyAccessorInspection : AbstractKotlinInspection() {
|
class RecursivePropertyAccessorInspection : AbstractKotlinInspection() {
|
||||||
|
|
||||||
@@ -98,7 +99,7 @@ class RecursivePropertyAccessorInspection : AbstractKotlinInspection() {
|
|||||||
if (element !is KtSimpleNameExpression) return false
|
if (element !is KtSimpleNameExpression) return false
|
||||||
val namedFunction = element.getParentOfType<KtDeclarationWithBody>(true) as? KtNamedFunction ?: return false
|
val namedFunction = element.getParentOfType<KtDeclarationWithBody>(true) as? KtNamedFunction ?: return false
|
||||||
val name = namedFunction.name ?: return false
|
val name = namedFunction.name ?: return false
|
||||||
val referencedName = element.text.capitalize()
|
val referencedName = element.text.capitalizeAsciiOnly()
|
||||||
val isGetter = name == "get$referencedName"
|
val isGetter = name == "get$referencedName"
|
||||||
val isSetter = name == "set$referencedName"
|
val isSetter = name == "set$referencedName"
|
||||||
if (!isGetter && !isSetter) return false
|
if (!isGetter && !isSetter) return false
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.psi.KtPsiFactory
|
|||||||
import org.jetbrains.kotlin.psi.createExpressionByPattern
|
import org.jetbrains.kotlin.psi.createExpressionByPattern
|
||||||
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||||
import org.jetbrains.kotlin.types.KotlinType
|
import org.jetbrains.kotlin.types.KotlinType
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class AddArrayOfTypeFix(expression: KtExpression, expectedType: KotlinType) : KotlinQuickFixAction<KtExpression>(expression) {
|
class AddArrayOfTypeFix(expression: KtExpression, expectedType: KotlinType) : KotlinQuickFixAction<KtExpression>(expression) {
|
||||||
|
|
||||||
@@ -22,7 +23,7 @@ class AddArrayOfTypeFix(expression: KtExpression, expectedType: KotlinType) : Ko
|
|||||||
"arrayOf"
|
"arrayOf"
|
||||||
} else {
|
} else {
|
||||||
val typeName = DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(expectedType)
|
val typeName = DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(expectedType)
|
||||||
"${typeName.decapitalize()}Of"
|
"${typeName.decapitalize(Locale.US)}Of"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.cfg.pseudocodeTraverser.traverseFollowingInstruction
|
|||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.descriptors.impl.LocalVariableDescriptor
|
import org.jetbrains.kotlin.descriptors.impl.LocalVariableDescriptor
|
||||||
import org.jetbrains.kotlin.diagnostics.Errors
|
import org.jetbrains.kotlin.diagnostics.Errors
|
||||||
|
import org.jetbrains.kotlin.idea.KotlinBundle
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.analyzeWithContent
|
import org.jetbrains.kotlin.idea.caches.resolve.analyzeWithContent
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.findModuleDescriptor
|
import org.jetbrains.kotlin.idea.caches.resolve.findModuleDescriptor
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
|
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
|
||||||
@@ -34,7 +35,6 @@ import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
|
|||||||
import org.jetbrains.kotlin.idea.core.KotlinNameSuggester
|
import org.jetbrains.kotlin.idea.core.KotlinNameSuggester
|
||||||
import org.jetbrains.kotlin.idea.core.NewDeclarationNameValidator
|
import org.jetbrains.kotlin.idea.core.NewDeclarationNameValidator
|
||||||
import org.jetbrains.kotlin.idea.core.compareDescriptors
|
import org.jetbrains.kotlin.idea.core.compareDescriptors
|
||||||
import org.jetbrains.kotlin.idea.KotlinBundle
|
|
||||||
import org.jetbrains.kotlin.idea.refactoring.createTempCopy
|
import org.jetbrains.kotlin.idea.refactoring.createTempCopy
|
||||||
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.AnalysisResult.ErrorMessage
|
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.AnalysisResult.ErrorMessage
|
||||||
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.AnalysisResult.Status
|
import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.AnalysisResult.Status
|
||||||
@@ -56,6 +56,7 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.getCalleeExpressionIfAny
|
|||||||
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
import org.jetbrains.kotlin.resolve.scopes.LexicalScope
|
||||||
import org.jetbrains.kotlin.types.*
|
import org.jetbrains.kotlin.types.*
|
||||||
import org.jetbrains.kotlin.types.typeUtil.makeNullable
|
import org.jetbrains.kotlin.types.typeUtil.makeNullable
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||||
import org.jetbrains.kotlin.utils.DFS.*
|
import org.jetbrains.kotlin.utils.DFS.*
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
@@ -736,7 +737,7 @@ private fun ExtractionData.suggestFunctionNames(returnType: KotlinType): List<St
|
|||||||
expressions.singleOrNull()?.let { expr ->
|
expressions.singleOrNull()?.let { expr ->
|
||||||
val property = expr.getStrictParentOfType<KtProperty>()
|
val property = expr.getStrictParentOfType<KtProperty>()
|
||||||
if (property?.initializer == expr) {
|
if (property?.initializer == expr) {
|
||||||
property.name?.let { functionNames.add(KotlinNameSuggester.suggestNameByName("get" + it.capitalize(), validator)) }
|
property.name?.let { functionNames.add(KotlinNameSuggester.suggestNameByName("get" + it.capitalizeAsciiOnly(), validator)) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -40,6 +40,7 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
|
|||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.isAncestorOf
|
import org.jetbrains.kotlin.resolve.descriptorUtil.isAncestorOf
|
||||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver
|
import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver
|
||||||
import org.jetbrains.kotlin.resolve.scopes.utils.getImplicitReceiversHierarchy
|
import org.jetbrains.kotlin.resolve.scopes.utils.getImplicitReceiversHierarchy
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||||
import org.jetbrains.kotlin.util.containingNonLocalDeclaration
|
import org.jetbrains.kotlin.util.containingNonLocalDeclaration
|
||||||
|
|
||||||
class MoveKotlinMethodProcessor(
|
class MoveKotlinMethodProcessor(
|
||||||
@@ -197,7 +198,7 @@ class MoveKotlinMethodProcessor(
|
|||||||
argumentExpression
|
argumentExpression
|
||||||
} else return
|
} else return
|
||||||
} else {
|
} else {
|
||||||
val getterName = "get${targetVariable.nameAsSafeName.identifier.capitalize()}"
|
val getterName = "get${targetVariable.nameAsSafeName.identifier.capitalizeAsciiOnly()}"
|
||||||
JavaPsiFacade.getElementFactory(myProject).createExpressionFromText("${oldReceiver.text}.$getterName()", null)
|
JavaPsiFacade.getElementFactory(myProject).createExpressionFromText("${oldReceiver.text}.$getterName()", null)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
|||||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitClassReceiver
|
import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitClassReceiver
|
||||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver
|
import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver
|
||||||
import org.jetbrains.kotlin.types.expressions.DoubleColonLHS
|
import org.jetbrains.kotlin.types.expressions.DoubleColonLHS
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.lang.System.currentTimeMillis
|
import java.lang.System.currentTimeMillis
|
||||||
@@ -407,7 +408,7 @@ fun guessNewFileName(declarationsToMove: Collection<KtNamedDeclaration>): String
|
|||||||
val newFileName = representative?.run {
|
val newFileName = representative?.run {
|
||||||
if (containingKtFile.isScript()) "$name.kts" else "$name.${KotlinFileType.EXTENSION}"
|
if (containingKtFile.isScript()) "$name.kts" else "$name.${KotlinFileType.EXTENSION}"
|
||||||
} ?: declarationsToMove.first().containingFile.name
|
} ?: declarationsToMove.first().containingFile.name
|
||||||
return newFileName.capitalize()
|
return newFileName.capitalizeAsciiOnly()
|
||||||
}
|
}
|
||||||
|
|
||||||
// returns true if successful
|
// returns true if successful
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import com.intellij.psi.tree.IElementType
|
|||||||
import org.jetbrains.kotlin.j2k.CodeBuilder
|
import org.jetbrains.kotlin.j2k.CodeBuilder
|
||||||
import org.jetbrains.kotlin.j2k.append
|
import org.jetbrains.kotlin.j2k.append
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class ArrayAccessExpression(val expression: Expression, val index: Expression, val lvalue: Boolean) : Expression() {
|
class ArrayAccessExpression(val expression: Expression, val index: Expression, val lvalue: Boolean) : Expression() {
|
||||||
override fun generateCode(builder: CodeBuilder) {
|
override fun generateCode(builder: CodeBuilder) {
|
||||||
@@ -294,7 +295,7 @@ class ClassLiteralExpression(val type: Type): Expression() {
|
|||||||
fun createArrayInitializerExpression(arrayType: ArrayType, initializers: List<Expression>, needExplicitType: Boolean = true) : MethodCallExpression {
|
fun createArrayInitializerExpression(arrayType: ArrayType, initializers: List<Expression>, needExplicitType: Boolean = true) : MethodCallExpression {
|
||||||
val elementType = arrayType.elementType
|
val elementType = arrayType.elementType
|
||||||
val createArrayFunction = when {
|
val createArrayFunction = when {
|
||||||
elementType is PrimitiveType -> (elementType.toNotNullType().canonicalCode() + "ArrayOf").decapitalize()
|
elementType is PrimitiveType -> (elementType.toNotNullType().canonicalCode() + "ArrayOf").decapitalize(Locale.US)
|
||||||
needExplicitType -> "arrayOf<" + arrayType.elementType.canonicalCode() + ">"
|
needExplicitType -> "arrayOf<" + arrayType.elementType.canonicalCode() + ">"
|
||||||
else -> "arrayOf"
|
else -> "arrayOf"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.j2k.AccessorKind
|
|||||||
import org.jetbrains.kotlin.j2k.CodeConverter
|
import org.jetbrains.kotlin.j2k.CodeConverter
|
||||||
import org.jetbrains.kotlin.j2k.ast.*
|
import org.jetbrains.kotlin.j2k.ast.*
|
||||||
import org.jetbrains.kotlin.j2k.dot
|
import org.jetbrains.kotlin.j2k.dot
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||||
|
|
||||||
class FieldToPropertyProcessing(
|
class FieldToPropertyProcessing(
|
||||||
private val field: PsiField,
|
private val field: PsiField,
|
||||||
@@ -167,5 +168,5 @@ class UseAccessorsJavaCodeProcessor(private val factory: PsiElementFactory, priv
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun accessorName(kind: AccessorKind) =
|
private fun accessorName(kind: AccessorKind) =
|
||||||
(if (kind == AccessorKind.GETTER) "get" else "set") + propertyName.capitalize()
|
(if (kind == AccessorKind.GETTER) "get" else "set") + propertyName.capitalizeAsciiOnly()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.js.backend.ast.*
|
|||||||
import org.jetbrains.kotlin.js.backend.ast.metadata.SpecialFunction
|
import org.jetbrains.kotlin.js.backend.ast.metadata.SpecialFunction
|
||||||
import org.jetbrains.kotlin.js.backend.ast.metadata.specialFunction
|
import org.jetbrains.kotlin.js.backend.ast.metadata.specialFunction
|
||||||
import org.jetbrains.kotlin.js.dce.Context.Node
|
import org.jetbrains.kotlin.js.dce.Context.Node
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
fun Context.isObjectDefineProperty(function: JsExpression) = isObjectFunction(function, "defineProperty")
|
fun Context.isObjectDefineProperty(function: JsExpression) = isObjectFunction(function, "defineProperty")
|
||||||
|
|
||||||
@@ -46,7 +47,7 @@ fun Context.isObjectFunction(function: JsExpression, functionName: String): Bool
|
|||||||
fun Context.isKotlinFunction(function: JsExpression, name: String): Boolean {
|
fun Context.isKotlinFunction(function: JsExpression, name: String): Boolean {
|
||||||
if (function !is JsNameRef || function.ident != name) return false
|
if (function !is JsNameRef || function.ident != name) return false
|
||||||
val receiver = (function.qualifier as? JsNameRef)?.name ?: return false
|
val receiver = (function.qualifier as? JsNameRef)?.name ?: return false
|
||||||
return receiver in nodes && receiver.ident.toLowerCase() == "kotlin"
|
return receiver in nodes && receiver.ident.toLowerCase(Locale.US) == "kotlin"
|
||||||
}
|
}
|
||||||
|
|
||||||
fun isSpecialFunction(expr: JsExpression, specialFunction: SpecialFunction): Boolean =
|
fun isSpecialFunction(expr: JsExpression, specialFunction: SpecialFunction): Boolean =
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.js.config
|
package org.jetbrains.kotlin.js.config
|
||||||
|
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
enum class ErrorTolerancePolicy(val allowSyntaxErrors: Boolean, val allowSemanticErrors: Boolean) {
|
enum class ErrorTolerancePolicy(val allowSyntaxErrors: Boolean, val allowSemanticErrors: Boolean) {
|
||||||
NONE(false, false),
|
NONE(false, false),
|
||||||
SEMANTIC(false, true),
|
SEMANTIC(false, true),
|
||||||
@@ -16,7 +18,7 @@ enum class ErrorTolerancePolicy(val allowSyntaxErrors: Boolean, val allowSemanti
|
|||||||
val DEFAULT = NONE
|
val DEFAULT = NONE
|
||||||
|
|
||||||
fun resolvePolicy(key: String): ErrorTolerancePolicy {
|
fun resolvePolicy(key: String): ErrorTolerancePolicy {
|
||||||
return when (key.toUpperCase()) {
|
return when (key.toUpperCase(Locale.US)) {
|
||||||
"NONE" -> NONE
|
"NONE" -> NONE
|
||||||
"SEMANTIC" -> SEMANTIC
|
"SEMANTIC" -> SEMANTIC
|
||||||
"SYNTAX", "ALL" -> ALL
|
"SYNTAX", "ALL" -> ALL
|
||||||
|
|||||||
+1
-1
@@ -109,7 +109,7 @@ object ArrayFIF : CompositeFIF() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private val PrimitiveType.lowerCaseName
|
private val PrimitiveType.lowerCaseName
|
||||||
get() = typeName.asString().toLowerCase()
|
get() = typeName.asString().toLowerCase(Locale.US)
|
||||||
|
|
||||||
fun getTag(descriptor: CallableDescriptor, config: JsConfig): String? {
|
fun getTag(descriptor: CallableDescriptor, config: JsConfig): String? {
|
||||||
if (descriptor !is ConstructorDescriptor) return null
|
if (descriptor !is ConstructorDescriptor) return null
|
||||||
|
|||||||
+1
-1
@@ -39,7 +39,7 @@ class Directories(
|
|||||||
// compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/FileSystemUtils.kt
|
// compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/FileSystemUtils.kt
|
||||||
// which in turn is based on: http://www.code4copy.com/java/post/detecting-os-type-in-java
|
// which in turn is based on: http://www.code4copy.com/java/post/detecting-os-type-in-java
|
||||||
private val os: OSKind
|
private val os: OSKind
|
||||||
get() = getProperty("os.name")?.toLowerCase().let { name ->
|
get() = getProperty("os.name")?.toLowerCase(Locale.US).let { name ->
|
||||||
when {
|
when {
|
||||||
name == null -> OSKind.Unknown
|
name == null -> OSKind.Unknown
|
||||||
name.startsWith("windows") -> OSKind.Windows
|
name.startsWith("windows") -> OSKind.Windows
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.kotlinp
|
|||||||
|
|
||||||
import kotlinx.metadata.*
|
import kotlinx.metadata.*
|
||||||
import kotlinx.metadata.jvm.*
|
import kotlinx.metadata.jvm.*
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
private object SpecialCharacters {
|
private object SpecialCharacters {
|
||||||
const val TYPE_ALIAS_MARKER = '^'
|
const val TYPE_ALIAS_MARKER = '^'
|
||||||
@@ -309,7 +310,7 @@ private fun printType(flags: Flags, output: (String) -> Unit): KmTypeVisitor =
|
|||||||
printType(flags) { argumentTypeString ->
|
printType(flags) { argumentTypeString ->
|
||||||
arguments += buildString {
|
arguments += buildString {
|
||||||
if (variance != KmVariance.INVARIANT) {
|
if (variance != KmVariance.INVARIANT) {
|
||||||
append(variance.name.toLowerCase()).append(" ")
|
append(variance.name.toLowerCase(Locale.US)).append(" ")
|
||||||
}
|
}
|
||||||
append(argumentTypeString)
|
append(argumentTypeString)
|
||||||
}
|
}
|
||||||
@@ -399,7 +400,7 @@ private fun printTypeParameter(
|
|||||||
append("@").append(renderAnnotation(annotation)).append(" ")
|
append("@").append(renderAnnotation(annotation)).append(" ")
|
||||||
}
|
}
|
||||||
if (variance != KmVariance.INVARIANT) {
|
if (variance != KmVariance.INVARIANT) {
|
||||||
append(variance.name.toLowerCase()).append(" ")
|
append(variance.name.toLowerCase(Locale.US)).append(" ")
|
||||||
}
|
}
|
||||||
append("T#$id")
|
append("T#$id")
|
||||||
if (settings.isVerbose) {
|
if (settings.isVerbose) {
|
||||||
|
|||||||
+2
-1
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.GradlePrinter
|
|||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Sourceset
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Sourceset
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.SourcesetType
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.SourcesetType
|
||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
|
||||||
sealed class SourcesetIR : BuildSystemIR {
|
sealed class SourcesetIR : BuildSystemIR {
|
||||||
@@ -55,4 +56,4 @@ data class MultiplatformSourcesetIR(
|
|||||||
}
|
}
|
||||||
|
|
||||||
val MultiplatformSourcesetIR.sourcesetName
|
val MultiplatformSourcesetIR.sourcesetName
|
||||||
get() = targetName + sourcesetType.name.capitalize()
|
get() = targetName + sourcesetType.name.capitalize(Locale.US)
|
||||||
|
|||||||
+2
-3
@@ -4,8 +4,6 @@ import kotlinx.collections.immutable.toPersistentList
|
|||||||
import org.jetbrains.annotations.NonNls
|
import org.jetbrains.annotations.NonNls
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.KotlinNewProjectWizardBundle
|
import org.jetbrains.kotlin.tools.projectWizard.KotlinNewProjectWizardBundle
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.Reader
|
import org.jetbrains.kotlin.tools.projectWizard.core.Reader
|
||||||
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.buildList
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.BuildSystemIR
|
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.BuildSystemIR
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.*
|
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.*
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatform.NonDefaultTargetConfigurationIR
|
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatform.NonDefaultTargetConfigurationIR
|
||||||
@@ -13,6 +11,7 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemT
|
|||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.*
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.*
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.GradlePrinter
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.GradlePrinter
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
interface NativeTargetConfigurator : TargetConfigurator {
|
interface NativeTargetConfigurator : TargetConfigurator {
|
||||||
val isDesktopTarget: Boolean
|
val isDesktopTarget: Boolean
|
||||||
@@ -22,7 +21,7 @@ interface NativeTargetConfigurator : TargetConfigurator {
|
|||||||
class RealNativeTargetConfigurator private constructor(
|
class RealNativeTargetConfigurator private constructor(
|
||||||
override val moduleSubType: ModuleSubType
|
override val moduleSubType: ModuleSubType
|
||||||
) : NativeTargetConfigurator, SimpleTargetConfigurator {
|
) : NativeTargetConfigurator, SimpleTargetConfigurator {
|
||||||
override val text: String = moduleSubType.name.capitalize()
|
override val text: String = moduleSubType.name.capitalize(Locale.US)
|
||||||
override val isDesktopTarget: Boolean
|
override val isDesktopTarget: Boolean
|
||||||
get() = moduleSubType.isNativeDesktop
|
get() = moduleSubType.isNativeDesktop
|
||||||
|
|
||||||
|
|||||||
+2
-4
@@ -7,12 +7,9 @@ package org.jetbrains.kotlin.tools.projectWizard.mpp
|
|||||||
|
|
||||||
import org.jetbrains.annotations.NonNls
|
import org.jetbrains.annotations.NonNls
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.*
|
import org.jetbrains.kotlin.tools.projectWizard.core.*
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.safeAs
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.SimpleTargetConfigurator
|
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.SimpleTargetConfigurator
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.inContextOfModuleConfigurator
|
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.inContextOfModuleConfigurator
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.gradle.GradlePlugin
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleSubType
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleSubType
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModulesToIrConversionData
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.projectPath
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.projectPath
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatesPlugin
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatesPlugin
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.JavaPackage
|
import org.jetbrains.kotlin.tools.projectWizard.settings.JavaPackage
|
||||||
@@ -22,6 +19,7 @@ import org.jetbrains.kotlin.tools.projectWizard.templates.FileDescriptor
|
|||||||
import org.jetbrains.kotlin.tools.projectWizard.templates.FileTemplate
|
import org.jetbrains.kotlin.tools.projectWizard.templates.FileTemplate
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.templates.FileTextDescriptor
|
import org.jetbrains.kotlin.tools.projectWizard.templates.FileTextDescriptor
|
||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
@DslMarker
|
@DslMarker
|
||||||
annotation class ExpectFileDSL
|
annotation class ExpectFileDSL
|
||||||
@@ -321,7 +319,7 @@ private fun pathForFileInTarget(
|
|||||||
sourcesetType: SourcesetType,
|
sourcesetType: SourcesetType,
|
||||||
) = mppModulePath /
|
) = mppModulePath /
|
||||||
Defaults.SRC_DIR /
|
Defaults.SRC_DIR /
|
||||||
"${target.name}${sourcesetType.name.capitalize()}" /
|
"${target.name}${sourcesetType.name.capitalize(Locale.US)}" /
|
||||||
mppModule.configurator.kotlinDirectoryName /
|
mppModule.configurator.kotlinDirectoryName /
|
||||||
javaPackage?.asPath() /
|
javaPackage?.asPath() /
|
||||||
filename
|
filename
|
||||||
+2
-1
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.isGradle
|
|||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatesPlugin
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatesPlugin
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.*
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.*
|
||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
data class ModulesToIrConversionData(
|
data class ModulesToIrConversionData(
|
||||||
val rootModules: List<Module>,
|
val rootModules: List<Module>,
|
||||||
@@ -265,7 +266,7 @@ class ModulesToIRsConverter(
|
|||||||
val (moduleDependencies) = createModuleDependencies(target)
|
val (moduleDependencies) = createModuleDependencies(target)
|
||||||
mutateProjectStructureByModuleConfigurator(target, modulePath)
|
mutateProjectStructureByModuleConfigurator(target, modulePath)
|
||||||
val sourcesetss = target.sourcesets.map { sourceset ->
|
val sourcesetss = target.sourcesets.map { sourceset ->
|
||||||
val sourcesetName = target.name + sourceset.sourcesetType.name.capitalize()
|
val sourcesetName = target.name + sourceset.sourcesetType.name.capitalize(Locale.US)
|
||||||
MultiplatformSourcesetIR(
|
MultiplatformSourcesetIR(
|
||||||
sourceset.sourcesetType,
|
sourceset.sourcesetType,
|
||||||
modulePath / Defaults.SRC_DIR / sourcesetName,
|
modulePath / Defaults.SRC_DIR / sourcesetName,
|
||||||
|
|||||||
+3
-3
@@ -9,8 +9,8 @@ import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.PluginSetti
|
|||||||
import org.jetbrains.kotlin.tools.projectWizard.core.service.TemplateEngineService
|
import org.jetbrains.kotlin.tools.projectWizard.core.service.TemplateEngineService
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.*
|
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.*
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.ModuleConfiguratorWithTests
|
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.ModuleConfiguratorWithTests
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.MppModuleConfigurator.runArbitraryTask
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.isPresent
|
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.isPresent
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.settingValue
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase
|
import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemPlugin
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemPlugin
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.KotlinPlugin
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.KotlinPlugin
|
||||||
@@ -21,8 +21,8 @@ import org.jetbrains.kotlin.tools.projectWizard.templates.*
|
|||||||
import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.InterceptionPoint
|
import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.InterceptionPoint
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.TemplateInterceptionApplicationState
|
import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.TemplateInterceptionApplicationState
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.applyAll
|
import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.applyAll
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.settingValue
|
|
||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class TemplatesPlugin(context: Context) : Plugin(context) {
|
class TemplatesPlugin(context: Context) : Plugin(context) {
|
||||||
override val path = pluginPath
|
override val path = pluginPath
|
||||||
@@ -174,7 +174,7 @@ class TemplatesPlugin(context: Context) : Plugin(context) {
|
|||||||
is SrcFilePath -> moduleConfigurator.kotlinDirectoryName
|
is SrcFilePath -> moduleConfigurator.kotlinDirectoryName
|
||||||
is ResourcesFilePath -> moduleConfigurator.resourcesDirectoryName
|
is ResourcesFilePath -> moduleConfigurator.resourcesDirectoryName
|
||||||
}
|
}
|
||||||
SRC_DIR / "${module.name}${filePath.sourcesetType.name.capitalize()}" / directory
|
SRC_DIR / "${module.name}${filePath.sourcesetType.name.capitalize(Locale.US)}" / directory
|
||||||
}
|
}
|
||||||
is FakeMultiplatformModuleIR -> error("Not supported for FakeMultiplatformModuleIR")
|
is FakeMultiplatformModuleIR -> error("Not supported for FakeMultiplatformModuleIR")
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-11
@@ -7,6 +7,11 @@ package org.jetbrains.kotlin.tools.projectWizard.templates
|
|||||||
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.NonNls
|
import org.jetbrains.annotations.NonNls
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.KotlinNewProjectWizardBundle
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.Versions
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.WizardGradleRunConfiguration
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.WizardRunConfiguration
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.core.Reader
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.Writer
|
import org.jetbrains.kotlin.tools.projectWizard.core.Writer
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.asPath
|
import org.jetbrains.kotlin.tools.projectWizard.core.asPath
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.buildList
|
import org.jetbrains.kotlin.tools.projectWizard.core.buildList
|
||||||
@@ -15,20 +20,19 @@ import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.*
|
|||||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatform.TargetConfigurationIR
|
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatform.TargetConfigurationIR
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatform.addWithJavaIntoJvmTarget
|
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatform.addWithJavaIntoJvmTarget
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.library.MavenArtifact
|
import org.jetbrains.kotlin.tools.projectWizard.library.MavenArtifact
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.DisplayableSettingItem
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.InterceptionPoint
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.KotlinNewProjectWizardBundle
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.Versions
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.WizardGradleRunConfiguration
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.WizardRunConfiguration
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.Reader
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.moduleType
|
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.moduleType
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.KotlinPlugin
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.KotlinPlugin
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.*
|
import org.jetbrains.kotlin.tools.projectWizard.settings.DisplayableSettingItem
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Repositories
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.SourcesetType
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version
|
import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.InterceptionPoint
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class KtorServerTemplate : Template() {
|
class KtorServerTemplate : Template() {
|
||||||
override val title: String = KotlinNewProjectWizardBundle.message("module.template.ktor.server.title")
|
override val title: String = KotlinNewProjectWizardBundle.message("module.template.ktor.server.title")
|
||||||
@@ -110,5 +114,5 @@ enum class KtorServerEngine(val engineName: String, val dependencyName: String)
|
|||||||
get() = engineName.capitalize()
|
get() = engineName.capitalize()
|
||||||
|
|
||||||
val import: String
|
val import: String
|
||||||
get() = "io.ktor.server.${engineName.decapitalize()}.${engineName.capitalize()}"
|
get() = "io.ktor.server.${engineName.decapitalize(Locale.US)}.${engineName.capitalize(Locale.US)}"
|
||||||
}
|
}
|
||||||
+7
-6
@@ -1,12 +1,14 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2020 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.tools.projectWizard.templates
|
package org.jetbrains.kotlin.tools.projectWizard.templates
|
||||||
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.Identificator
|
import org.jetbrains.kotlin.tools.projectWizard.Identificator
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.SettingsOwner
|
import org.jetbrains.kotlin.tools.projectWizard.SettingsOwner
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.WizardRunConfiguration
|
import org.jetbrains.kotlin.tools.projectWizard.WizardRunConfiguration
|
||||||
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.*
|
import org.jetbrains.kotlin.tools.projectWizard.core.*
|
||||||
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.*
|
import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.*
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.enumSettingImpl
|
import org.jetbrains.kotlin.tools.projectWizard.enumSettingImpl
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.*
|
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.*
|
||||||
@@ -14,8 +16,6 @@ import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.gradle.multiplatf
|
|||||||
import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase
|
import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.RunConfigurationsPlugin
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.RunConfigurationsPlugin
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.StructurePlugin
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.StructurePlugin
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModuleType
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ModulesToIrConversionData
|
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.DisplayableSettingItem
|
import org.jetbrains.kotlin.tools.projectWizard.settings.DisplayableSettingItem
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module
|
import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module
|
||||||
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.tools.projectWizard.settings.version.Version
|
|||||||
import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.InterceptionPoint
|
import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.InterceptionPoint
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.TemplateInterceptor
|
import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.TemplateInterceptor
|
||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
|
import java.util.*
|
||||||
import kotlin.properties.ReadOnlyProperty
|
import kotlin.properties.ReadOnlyProperty
|
||||||
|
|
||||||
interface TemplateEnvironment {
|
interface TemplateEnvironment {
|
||||||
@@ -163,7 +164,7 @@ abstract class Template : SettingsOwner, EntitiesOwnerDescriptor, DisplayableSet
|
|||||||
|
|
||||||
|
|
||||||
private fun Reader.createDefaultSettings() = mapOf(
|
private fun Reader.createDefaultSettings() = mapOf(
|
||||||
"projectName" to StructurePlugin.name.settingValue.capitalize()
|
"projectName" to StructurePlugin.name.settingValue.capitalize(Locale.US)
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun equals(other: Any?): Boolean =
|
override fun equals(other: Any?): Boolean =
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.konan.target
|
package org.jetbrains.kotlin.konan.target
|
||||||
|
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Name of a preset used in the 'kotlin-multiplatform' Gradle plugin to represent this target.
|
* Name of a preset used in the 'kotlin-multiplatform' Gradle plugin to represent this target.
|
||||||
*/
|
*/
|
||||||
@@ -19,5 +21,5 @@ val KonanTarget.presetName: String
|
|||||||
|
|
||||||
private fun evaluatePresetName(targetName: String): String {
|
private fun evaluatePresetName(targetName: String): String {
|
||||||
val nameParts = targetName.split('_').mapNotNull { it.takeIf(String::isNotEmpty) }
|
val nameParts = targetName.split('_').mapNotNull { it.takeIf(String::isNotEmpty) }
|
||||||
return nameParts.asSequence().drop(1).joinToString("", nameParts.firstOrNull().orEmpty(), transform = String::capitalize)
|
return nameParts.asSequence().drop(1).joinToString("", nameParts.firstOrNull().orEmpty()) { it.capitalize(Locale.US) }
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -52,6 +52,7 @@ import org.jetbrains.kotlin.types.KotlinType
|
|||||||
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker
|
import org.jetbrains.kotlin.types.checker.KotlinTypeChecker
|
||||||
import org.jetbrains.kotlin.types.isError
|
import org.jetbrains.kotlin.types.isError
|
||||||
import org.jetbrains.kotlin.types.typeUtil.isUnit
|
import org.jetbrains.kotlin.types.typeUtil.isUnit
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.decapitalizeAsciiOnly
|
||||||
import org.jetbrains.kotlin.util.isJavaDescriptor
|
import org.jetbrains.kotlin.util.isJavaDescriptor
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.cast
|
import org.jetbrains.kotlin.utils.addToStdlib.cast
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
||||||
@@ -369,7 +370,7 @@ private class ConvertGettersAndSettersToPropertyStatefulProcessing(
|
|||||||
return declarations
|
return declarations
|
||||||
.asSequence()
|
.asSequence()
|
||||||
.mapNotNull { it.asPropertyAccessor() }
|
.mapNotNull { it.asPropertyAccessor() }
|
||||||
.groupBy { it.name.removePrefix("is").decapitalize() }
|
.groupBy { it.name.removePrefix("is").decapitalizeAsciiOnly() }
|
||||||
.values
|
.values
|
||||||
.mapNotNull { group ->
|
.mapNotNull { group ->
|
||||||
val realGetter = group.firstIsInstanceOrNull<RealGetter>()
|
val realGetter = group.firstIsInstanceOrNull<RealGetter>()
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.nj2k.tree.JKLambdaExpression
|
|||||||
import org.jetbrains.kotlin.nj2k.tree.JKParameter
|
import org.jetbrains.kotlin.nj2k.tree.JKParameter
|
||||||
import org.jetbrains.kotlin.nj2k.tree.JKTreeRoot
|
import org.jetbrains.kotlin.nj2k.tree.JKTreeRoot
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
object ConversionsRunner {
|
object ConversionsRunner {
|
||||||
private fun createConversions(context: NewJ2kConverterContext) = listOf(
|
private fun createConversions(context: NewJ2kConverterContext) = listOf(
|
||||||
@@ -105,7 +106,7 @@ object ConversionsRunner {
|
|||||||
|
|
||||||
private fun Conversion.description(): String {
|
private fun Conversion.description(): String {
|
||||||
val conversionName = this::class.simpleName
|
val conversionName = this::class.simpleName
|
||||||
val words = conversionName?.let { wordRegex.findAll(conversionName).map { it.value.decapitalize() }.toList() }
|
val words = conversionName?.let { wordRegex.findAll(conversionName).map { it.value.decapitalize(Locale.US) }.toList() }
|
||||||
return when {
|
return when {
|
||||||
conversionName == null -> "Converting..."
|
conversionName == null -> "Converting..."
|
||||||
conversionName.endsWith("Conversion") -> "Converting ${words!!.dropLast(1).joinToString(" ")}"
|
conversionName.endsWith("Conversion") -> "Converting ${words!!.dropLast(1).joinToString(" ")}"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.nj2k.conversions
|
|||||||
import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext
|
import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext
|
||||||
import org.jetbrains.kotlin.nj2k.tree.*
|
import org.jetbrains.kotlin.nj2k.tree.*
|
||||||
import org.jetbrains.kotlin.nj2k.types.primitiveTypes
|
import org.jetbrains.kotlin.nj2k.types.primitiveTypes
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class BoxedTypeOperationsConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) {
|
class BoxedTypeOperationsConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
@@ -40,7 +40,7 @@ class BoxedTypeOperationsConversion(context: NewJ2kConverterContext) : Recursive
|
|||||||
if (operationType !in primitiveTypeNames) return null
|
if (operationType !in primitiveTypeNames) return null
|
||||||
return JKCallExpressionImpl(
|
return JKCallExpressionImpl(
|
||||||
symbolProvider.provideMethodSymbol(
|
symbolProvider.provideMethodSymbol(
|
||||||
"kotlin.${primitiveTypeName.capitalize()}.to${operationType.capitalize()}"
|
"kotlin.${primitiveTypeName.capitalize(Locale.US)}.to${operationType.capitalize(Locale.US)}"
|
||||||
),
|
),
|
||||||
JKArgumentList()
|
JKArgumentList()
|
||||||
).withFormattingFrom(methodCallExpression)
|
).withFormattingFrom(methodCallExpression)
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.nj2k.types.*
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
|
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class ImplicitCastsConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) {
|
class ImplicitCastsConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) {
|
||||||
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
override fun applyToElement(element: JKTreeElement): JKTreeElement {
|
||||||
@@ -138,8 +139,8 @@ class ImplicitCastsConversion(context: NewJ2kConverterContext) : RecursiveApplic
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val initialTypeName = expressionTypeAsPrimitive.jvmPrimitiveType.javaKeywordName.capitalize()
|
val initialTypeName = expressionTypeAsPrimitive.jvmPrimitiveType.javaKeywordName.capitalize(Locale.US)
|
||||||
val conversionFunctionName = "to${toTypeAsPrimitive.jvmPrimitiveType.javaKeywordName.capitalize()}"
|
val conversionFunctionName = "to${toTypeAsPrimitive.jvmPrimitiveType.javaKeywordName.capitalize(Locale.US)}"
|
||||||
return JKQualifiedExpression(
|
return JKQualifiedExpression(
|
||||||
copyTreeAndDetach().parenthesizeIfBinaryExpression(),
|
copyTreeAndDetach().parenthesizeIfBinaryExpression(),
|
||||||
JKCallExpressionImpl(
|
JKCallExpressionImpl(
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.nj2k
|
|||||||
import org.jetbrains.kotlin.lexer.KtKeywordToken
|
import org.jetbrains.kotlin.lexer.KtKeywordToken
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.load.java.JvmAbi
|
import org.jetbrains.kotlin.load.java.JvmAbi
|
||||||
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.decapitalizeAsciiOnly
|
||||||
|
|
||||||
fun <T> List<T>.replace(element: T, replacer: T): List<T> {
|
fun <T> List<T>.replace(element: T, replacer: T): List<T> {
|
||||||
val mutableList = toMutableList()
|
val mutableList = toMutableList()
|
||||||
@@ -22,14 +23,14 @@ fun String.asGetterName() =
|
|||||||
?.takeIf {
|
?.takeIf {
|
||||||
it.isNotEmpty() && it.first().isUpperCase()
|
it.isNotEmpty() && it.first().isUpperCase()
|
||||||
|| it.startsWith("is") && it.length > 2 && it[2].isUpperCase()
|
|| it.startsWith("is") && it.length > 2 && it[2].isUpperCase()
|
||||||
}?.decapitalize()
|
}?.decapitalizeAsciiOnly()
|
||||||
?.escaped()
|
?.escaped()
|
||||||
|
|
||||||
fun String.asSetterName() =
|
fun String.asSetterName() =
|
||||||
takeIf { JvmAbi.isSetterName(it) }
|
takeIf { JvmAbi.isSetterName(it) }
|
||||||
?.removePrefix("set")
|
?.removePrefix("set")
|
||||||
?.takeIf { it.isNotEmpty() && it.first().isUpperCase() }
|
?.takeIf { it.isNotEmpty() && it.first().isUpperCase() }
|
||||||
?.decapitalize()
|
?.decapitalizeAsciiOnly()
|
||||||
?.escaped()
|
?.escaped()
|
||||||
|
|
||||||
fun String.isPossiblyGetterOrSetterName() =
|
fun String.isPossiblyGetterOrSetterName() =
|
||||||
|
|||||||
+2
-1
@@ -9,6 +9,7 @@ import com.sun.tools.javac.code.Symbol
|
|||||||
import org.jetbrains.kotlin.kapt3.base.util.KaptLogger
|
import org.jetbrains.kotlin.kapt3.base.util.KaptLogger
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.net.URI
|
import java.net.URI
|
||||||
|
import java.util.*
|
||||||
import javax.annotation.processing.Filer
|
import javax.annotation.processing.Filer
|
||||||
import javax.annotation.processing.ProcessingEnvironment
|
import javax.annotation.processing.ProcessingEnvironment
|
||||||
import javax.annotation.processing.Processor
|
import javax.annotation.processing.Processor
|
||||||
@@ -49,7 +50,7 @@ class IncrementalProcessor(private val processor: Processor, private val kind: D
|
|||||||
if (fromOptions == null) {
|
if (fromOptions == null) {
|
||||||
RuntimeProcType.NON_INCREMENTAL
|
RuntimeProcType.NON_INCREMENTAL
|
||||||
} else {
|
} else {
|
||||||
val declaredType = fromOptions.drop("org.gradle.annotation.processing.".length).toUpperCase()
|
val declaredType = fromOptions.drop("org.gradle.annotation.processing.".length).toUpperCase(Locale.US)
|
||||||
if (ALLOWED_RUNTIME_TYPES.contains(declaredType)) {
|
if (ALLOWED_RUNTIME_TYPES.contains(declaredType)) {
|
||||||
enumValueOf(declaredType)
|
enumValueOf(declaredType)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+2
-1
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.idea.configuration.GradleProjectImportHandler
|
|||||||
import org.jetbrains.kotlin.idea.facet.KotlinFacet
|
import org.jetbrains.kotlin.idea.facet.KotlinFacet
|
||||||
import org.jetbrains.plugins.gradle.model.data.GradleSourceSetData
|
import org.jetbrains.plugins.gradle.model.data.GradleSourceSetData
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class KaptGradleProjectImportHandler : GradleProjectImportHandler {
|
class KaptGradleProjectImportHandler : GradleProjectImportHandler {
|
||||||
override fun importBySourceSet(facet: KotlinFacet, sourceSetNode: DataNode<GradleSourceSetData>) {
|
override fun importBySourceSet(facet: KotlinFacet, sourceSetNode: DataNode<GradleSourceSetData>) {
|
||||||
@@ -42,7 +43,7 @@ class KaptGradleProjectImportHandler : GradleProjectImportHandler {
|
|||||||
|
|
||||||
private fun isKaptCompilerPluginPath(path: String): Boolean {
|
private fun isKaptCompilerPluginPath(path: String): Boolean {
|
||||||
val lastIndexOfFile = path.lastIndexOfAny(charArrayOf('/', File.separatorChar)).takeIf { it >= 0 } ?: return false
|
val lastIndexOfFile = path.lastIndexOfAny(charArrayOf('/', File.separatorChar)).takeIf { it >= 0 } ?: return false
|
||||||
val fileName = path.drop(lastIndexOfFile + 1).toLowerCase()
|
val fileName = path.drop(lastIndexOfFile + 1).toLowerCase(Locale.US)
|
||||||
return fileName.matches("kotlin\\-annotation\\-processing(\\-gradle)?\\-[0-9].*\\.jar".toRegex())
|
return fileName.matches("kotlin\\-annotation\\-processing(\\-gradle)?\\-[0-9].*\\.jar".toRegex())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user