From 56df95b8e7e64a1d6141d2e2bb1fa7cc451f9024 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Fri, 25 Dec 2020 10:56:14 +0300 Subject: [PATCH 01/71] FIR Java: make field annotations lazy --- .../org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt | 2 +- .../kotlin/fir/java/declarations/FirJavaField.kt | 9 ++++++--- .../kotlin/fir/java/enhancement/SignatureEnhancement.kt | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt index 82d5c6e6cf3..7cead9209b8 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt @@ -340,7 +340,7 @@ class JavaSymbolProvider( returnTypeRef = returnType.toFirJavaTypeRef(this@JavaSymbolProvider.session, javaTypeParameterStack) isVar = !javaField.isFinal isStatic = javaField.isStatic - addAnnotationsFrom(this@JavaSymbolProvider.session, javaField, javaTypeParameterStack) + annotationBuilder = { javaField.annotations.map { it.toFirAnnotationCall(session, javaTypeParameterStack) }} initializer = convertJavaInitializerToFir(javaField.initializerValue) if (!javaField.isStatic) { diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt index cc4db634ec7..e2c5c420af1 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt @@ -40,7 +40,7 @@ class FirJavaField @FirImplementationDetail constructor( override var returnTypeRef: FirTypeRef, override var status: FirDeclarationStatus, override val isVar: Boolean, - override val annotations: MutableList, + annotationBuilder: () -> List, override val typeParameters: MutableList, override var initializer: FirExpression?, override val dispatchReceiverType: ConeKotlinType?, @@ -58,6 +58,9 @@ class FirJavaField @FirImplementationDetail constructor( override val origin: FirDeclarationOrigin get() = FirDeclarationOrigin.Java + override val annotations: List by lazy { annotationBuilder() } + + override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirField { returnTypeRef = returnTypeRef.transformSingle(transformer, data) return this @@ -109,7 +112,6 @@ class FirJavaField @FirImplementationDetail constructor( } override fun transformAnnotations(transformer: FirTransformer, data: D): FirJavaField { - annotations.transformInplace(transformer, data) return this } @@ -147,6 +149,7 @@ internal class FirJavaFieldBuilder : FirFieldBuilder() { lateinit var visibility: Visibility var isStatic: Boolean by Delegates.notNull() var initializer: FirExpression? = null + lateinit var annotationBuilder: () -> List override var resolvePhase: FirResolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES @@ -161,7 +164,7 @@ internal class FirJavaFieldBuilder : FirFieldBuilder() { returnTypeRef, status, isVar, - annotations, + annotationBuilder, typeParameters, initializer, dispatchReceiverType, diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt index b671e9e07bb..0961d5c0585 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt @@ -102,7 +102,7 @@ class FirSignatureEnhancement( modality = firElement.modality isVar = firElement.isVar isStatic = firElement.isStatic - annotations += firElement.annotations + annotationBuilder = { firElement.annotations } status = firElement.status initializer = firElement.initializer dispatchReceiverType = firElement.dispatchReceiverType From c8c34ebf17267642f98098f5bf0d485dadbb5b84 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Fri, 25 Dec 2020 11:07:48 +0300 Subject: [PATCH 02/71] FIR Java: make constructor annotations lazy --- .../org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt | 5 ++++- .../kotlin/fir/java/declarations/FirJavaConstructor.kt | 9 ++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt index 7cead9209b8..60113e053cb 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt @@ -466,12 +466,14 @@ class JavaSymbolProvider( if (javaConstructor != null) { this.typeParameters += javaConstructor.typeParameters.convertTypeParameters(javaTypeParameterStack) - addAnnotationsFrom(this@JavaSymbolProvider.session, javaConstructor, javaTypeParameterStack) + annotationBuilder = { javaConstructor.annotations.map { it.toFirAnnotationCall(session, javaTypeParameterStack) } } for ((index, valueParameter) in javaConstructor.valueParameters.withIndex()) { valueParameters += valueParameter.toFirValueParameter( this@JavaSymbolProvider.session, index, javaTypeParameterStack, ) } + } else { + annotationBuilder = { emptyList() } } }.apply { containingClassAttr = ownerClassBuilder.symbol.toLookupTag() @@ -495,6 +497,7 @@ class JavaSymbolProvider( visibility = Visibilities.Public isInner = false isPrimary = true + annotationBuilder = { emptyList() } }.apply { containingClassAttr = ownerClassBuilder.symbol.toLookupTag() } diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt index 262f4a8f8d7..3175cadd03e 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaConstructor.kt @@ -35,7 +35,7 @@ class FirJavaConstructor @FirImplementationDetail constructor( override var returnTypeRef: FirTypeRef, override val valueParameters: MutableList, override val typeParameters: MutableList, - override val annotations: MutableList, + annotationBuilder: () -> List, override var status: FirDeclarationStatus, override var resolvePhase: FirResolvePhase, override val dispatchReceiverType: ConeKotlinType?, @@ -59,6 +59,9 @@ class FirJavaConstructor @FirImplementationDetail constructor( override val controlFlowGraphReference: FirControlFlowGraphReference? get() = null + override val annotations: List by lazy { annotationBuilder() } + + override fun transformValueParameters(transformer: FirTransformer, data: D): FirJavaConstructor { valueParameters.transformInplace(transformer, data) return this @@ -101,7 +104,6 @@ class FirJavaConstructor @FirImplementationDetail constructor( } override fun transformAnnotations(transformer: FirTransformer, data: D): FirJavaConstructor { - annotations.transformInplace(transformer, data) return this } @@ -143,6 +145,7 @@ class FirJavaConstructorBuilder : FirConstructorBuilder() { lateinit var visibility: Visibility var isInner: Boolean by Delegates.notNull() var isPrimary: Boolean by Delegates.notNull() + lateinit var annotationBuilder: () -> List @OptIn(FirImplementationDetail::class) override fun build(): FirJavaConstructor { @@ -154,7 +157,7 @@ class FirJavaConstructorBuilder : FirConstructorBuilder() { returnTypeRef, valueParameters, typeParameters, - annotations, + annotationBuilder, status, resolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES, dispatchReceiverType From d663f204e5ef1de6a1471fbf0e7406bca758a952 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Fri, 25 Dec 2020 11:26:09 +0300 Subject: [PATCH 03/71] FIR Java: make method annotations lazy --- .../kotlin/fir/java/JavaSymbolProvider.kt | 14 +- .../fir/java/declarations/FirJavaMethod.kt | 190 ++++++++++++++---- .../builder/FirSimpleFunctionBuilder.kt | 2 - .../impl/FirSimpleFunctionImpl.kt | 3 +- .../generator/ImplementationConfigurator.kt | 4 +- 5 files changed, 154 insertions(+), 59 deletions(-) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt index 60113e053cb..1b4301c4b7f 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt @@ -178,7 +178,6 @@ class JavaSymbolProvider( javaTypeParameterStack.addStack(parentStack) } } - val methodMap = mutableMapOf() val firJavaClass = buildJavaClass { source = (javaClass as? JavaElementImpl<*>)?.psi?.toFirPsiSourceElement() session = this@JavaSymbolProvider.session @@ -201,7 +200,7 @@ class JavaSymbolProvider( } } - val dispatchReceiver = classId.defaultType(typeParameters.map { it.symbol } ) + val dispatchReceiver = classId.defaultType(typeParameters.map { it.symbol }) status = FirResolvedDeclarationStatusImpl( javaClass.visibility, @@ -230,9 +229,7 @@ class JavaSymbolProvider( classIsAnnotation, valueParametersForAnnotationConstructor, dispatchReceiver - ).apply { - methodMap[javaMethod] = this - } + ) } val javaClassDeclaredConstructors = javaClass.constructors val constructorId = CallableId(classId.packageFqName, classId.relativeClassName, classId.shortClassName) @@ -283,10 +280,6 @@ class JavaSymbolProvider( } ) firJavaClass.addAnnotationsFrom(this@JavaSymbolProvider.session, javaClass, javaTypeParameterStack) - // NB: this is done here to unbind possible annotation cycle - for ((javaMethod, firJavaMethod) in methodMap) { - firJavaMethod.annotations.addAnnotationsFrom(session, javaMethod, javaTypeParameterStack) - } return firJavaClass } @@ -340,7 +333,7 @@ class JavaSymbolProvider( returnTypeRef = returnType.toFirJavaTypeRef(this@JavaSymbolProvider.session, javaTypeParameterStack) isVar = !javaField.isFinal isStatic = javaField.isStatic - annotationBuilder = { javaField.annotations.map { it.toFirAnnotationCall(session, javaTypeParameterStack) }} + annotationBuilder = { javaField.annotations.map { it.toFirAnnotationCall(session, javaTypeParameterStack) } } initializer = convertJavaInitializerToFir(javaField.initializerValue) if (!javaField.isStatic) { @@ -386,6 +379,7 @@ class JavaSymbolProvider( this@JavaSymbolProvider.session, index, javaTypeParameterStack, ) } + annotationBuilder = { javaMethod.annotations.map { it.toFirAnnotationCall(session, javaTypeParameterStack) } } status = FirResolvedDeclarationStatusImpl( javaMethod.visibility, javaMethod.modality diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt index bd8ec9a79aa..8c9b6390f51 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaMethod.kt @@ -10,17 +10,24 @@ import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder import org.jetbrains.kotlin.fir.builder.FirBuilderDsl +import org.jetbrains.kotlin.fir.contracts.FirContractDescription import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription import org.jetbrains.kotlin.fir.declarations.* -import org.jetbrains.kotlin.fir.declarations.builder.FirSimpleFunctionBuilder -import org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl +import org.jetbrains.kotlin.fir.declarations.builder.FirFunctionBuilder +import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParametersOwnerBuilder import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirBlock +import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.jvm.FirJavaTypeRef +import org.jetbrains.kotlin.fir.visitors.FirTransformer +import org.jetbrains.kotlin.fir.visitors.FirVisitor +import org.jetbrains.kotlin.fir.visitors.transformInplace +import org.jetbrains.kotlin.fir.visitors.transformSingle import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource import org.jetbrains.kotlin.util.OperatorNameConventions.ASSIGNMENT_OPERATIONS @@ -40,51 +47,153 @@ import kotlin.properties.Delegates @OptIn(FirImplementationDetail::class) class FirJavaMethod @FirImplementationDetail constructor( - source: FirSourceElement?, - session: FirSession, - resolvePhase: FirResolvePhase, - attributes: FirDeclarationAttributes, - returnTypeRef: FirTypeRef, - receiverTypeRef: FirTypeRef?, - typeParameters: MutableList, - valueParameters: MutableList, - body: FirBlock?, - name: Name, - status: FirDeclarationStatus, - containerSource: DeserializedContainerSource?, - symbol: FirNamedFunctionSymbol, - annotations: MutableList, - dispatchReceiverType: ConeKotlinType?, -) : FirSimpleFunctionImpl( - source, - session, - resolvePhase, - FirDeclarationOrigin.Java, - attributes, - returnTypeRef, - receiverTypeRef, - valueParameters, - body, - status, - containerSource, - dispatchReceiverType = dispatchReceiverType, - contractDescription = FirEmptyContractDescription, - name, - symbol, - annotations, - typeParameters, -) + override val source: FirSourceElement?, + override val session: FirSession, + override var resolvePhase: FirResolvePhase, + override val attributes: FirDeclarationAttributes, + override var returnTypeRef: FirTypeRef, + override val typeParameters: MutableList, + override val valueParameters: MutableList, + override val name: Name, + override var status: FirDeclarationStatus, + override val symbol: FirNamedFunctionSymbol, + annotationBuilder: () -> List, + override val dispatchReceiverType: ConeKotlinType?, +) : FirSimpleFunction() { + init { + symbol.bind(this) + } + + override val receiverTypeRef: FirTypeRef? + get() = null + + override val body: FirBlock? + get() = null + + override val containerSource: DeserializedContainerSource? + get() = null + + override val origin: FirDeclarationOrigin + get() = FirDeclarationOrigin.Java + + override val contractDescription: FirContractDescription + get() = FirEmptyContractDescription + + override var controlFlowGraphReference: FirControlFlowGraphReference? = null + + override val annotations: List by lazy { annotationBuilder() } + + override fun acceptChildren(visitor: FirVisitor, data: D) { + returnTypeRef.accept(visitor, data) + receiverTypeRef?.accept(visitor, data) + controlFlowGraphReference?.accept(visitor, data) + valueParameters.forEach { it.accept(visitor, data) } + body?.accept(visitor, data) + status.accept(visitor, data) + contractDescription.accept(visitor, data) + annotations.forEach { it.accept(visitor, data) } + typeParameters.forEach { it.accept(visitor, data) } + } + + override fun transformChildren(transformer: FirTransformer, data: D): FirSimpleFunction { + transformReturnTypeRef(transformer, data) + transformReceiverTypeRef(transformer, data) + controlFlowGraphReference = controlFlowGraphReference?.transformSingle(transformer, data) + transformValueParameters(transformer, data) + transformBody(transformer, data) + transformStatus(transformer, data) + transformContractDescription(transformer, data) + transformAnnotations(transformer, data) + transformTypeParameters(transformer, data) + return this + } + + override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirSimpleFunction { + returnTypeRef = returnTypeRef.transformSingle(transformer, data) + return this + } + + override fun transformReceiverTypeRef(transformer: FirTransformer, data: D): FirSimpleFunction { + return this + } + + override fun transformValueParameters(transformer: FirTransformer, data: D): FirSimpleFunction { + valueParameters.transformInplace(transformer, data) + return this + } + + override fun transformBody(transformer: FirTransformer, data: D): FirSimpleFunction { + return this + } + + override fun transformStatus(transformer: FirTransformer, data: D): FirSimpleFunction { + status = status.transformSingle(transformer, data) + return this + } + + override fun transformContractDescription(transformer: FirTransformer, data: D): FirSimpleFunction { + return this + } + + override fun transformAnnotations(transformer: FirTransformer, data: D): FirSimpleFunction { + return this + } + + override fun transformTypeParameters(transformer: FirTransformer, data: D): FirSimpleFunction { + typeParameters.transformInplace(transformer, data) + return this + } + + override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) { + resolvePhase = newResolvePhase + } + + override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) { + returnTypeRef = newReturnTypeRef + } + + override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) { + } + + override fun replaceControlFlowGraphReference(newControlFlowGraphReference: FirControlFlowGraphReference?) { + controlFlowGraphReference = newControlFlowGraphReference + } + + override fun replaceValueParameters(newValueParameters: List) { + valueParameters.clear() + valueParameters.addAll(newValueParameters) + } + + override fun replaceBody(newBody: FirBlock?) { + } + + override fun replaceContractDescription(newContractDescription: FirContractDescription) { + } +} val ALL_JAVA_OPERATION_NAMES = UNARY_OPERATION_NAMES + BINARY_OPERATION_NAMES + ASSIGNMENT_OPERATIONS + DELEGATED_PROPERTY_OPERATORS + EQUALS + COMPARE_TO + CONTAINS + INVOKE + ITERATOR + GET + SET + NEXT + HAS_NEXT @FirBuilderDsl -class FirJavaMethodBuilder : FirSimpleFunctionBuilder() { +class FirJavaMethodBuilder : FirFunctionBuilder, FirTypeParametersOwnerBuilder, FirAnnotationContainerBuilder { + override var source: FirSourceElement? = null + override lateinit var session: FirSession + override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() + override lateinit var returnTypeRef: FirTypeRef + override val valueParameters: MutableList = mutableListOf() + override var body: FirBlock? = null + lateinit var status: FirDeclarationStatus + var dispatchReceiverType: ConeKotlinType? = null + lateinit var name: Name + lateinit var symbol: FirNamedFunctionSymbol + override val annotations: MutableList = mutableListOf() + override val typeParameters: MutableList = mutableListOf() lateinit var visibility: Visibility var modality: Modality? = null var isStatic: Boolean by Delegates.notNull() - override var resolvePhase: FirResolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES + var resolvePhase: FirResolvePhase = FirResolvePhase.ANALYZED_DEPENDENCIES + lateinit var annotationBuilder: () -> List @Deprecated("Modification of 'origin' has no impact for FirJavaFunctionBuilder", level = DeprecationLevel.HIDDEN) override var origin: FirDeclarationOrigin @@ -101,15 +210,12 @@ class FirJavaMethodBuilder : FirSimpleFunctionBuilder() { resolvePhase, attributes, returnTypeRef as FirJavaTypeRef, - receiverTypeRef = null, typeParameters, valueParameters, - body, name, status, - containerSource, symbol, - annotations, + annotationBuilder, dispatchReceiverType, ) } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt index dfdded038c9..6ecc87329da 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.fir.declarations.builder import kotlin.contracts.* -import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder @@ -58,7 +57,6 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner override val annotations: MutableList = mutableListOf() override val typeParameters: MutableList = mutableListOf() - @OptIn(FirImplementationDetail::class) override fun build(): FirSimpleFunction { return FirSimpleFunctionImpl( source, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt index 849c0cc26b8..ed3d74f67d4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.fir.declarations.impl -import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.contracts.FirContractDescription @@ -31,7 +30,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -open class FirSimpleFunctionImpl @FirImplementationDetail constructor( +internal class FirSimpleFunctionImpl( override val source: FirSourceElement?, override val session: FirSession, override var resolvePhase: FirResolvePhase, diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt index 12becc42cf6..11dfd0a1501 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt @@ -449,9 +449,7 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() default("name", "Name.identifier(\"value\")") } - impl(simpleFunction) { - kind = OpenClass - } + impl(simpleFunction) impl(safeCallExpression) { useTypes(safeCallCheckedSubjectType) From 383de7a9c5d55f52a9a8681788f764eab647d112 Mon Sep 17 00:00:00 2001 From: Jinseong Jeon Date: Wed, 23 Dec 2020 14:44:57 -0800 Subject: [PATCH 04/71] FIR Java: Fix Java override ambiguity with vararg value type #KT-44066 Fixed --- .../fir/java/scopes/JavaOverrideChecker.kt | 35 +++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaOverrideChecker.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaOverrideChecker.kt index 3c5e543a48d..695154b9c85 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaOverrideChecker.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaOverrideChecker.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.java.JavaTypeParameterStack import org.jetbrains.kotlin.fir.java.enhancement.readOnlyToMutable import org.jetbrains.kotlin.fir.java.toConeKotlinTypeProbablyFlexible +import org.jetbrains.kotlin.fir.resolve.fullyExpandedType import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap import org.jetbrains.kotlin.fir.scopes.impl.FirAbstractOverrideChecker @@ -35,8 +36,24 @@ class JavaOverrideChecker internal constructor( if (candidateType is ConeFlexibleType) return isEqualTypes(candidateType.lowerBound, baseType, substitutor, mayBeSpecialBuiltIn) if (baseType is ConeFlexibleType) return isEqualTypes(candidateType, baseType.lowerBound, substitutor, mayBeSpecialBuiltIn) if (candidateType is ConeClassLikeType && baseType is ConeClassLikeType) { - return candidateType.lookupTag.classId.let { it.readOnlyToMutable() ?: it } == - baseType.lookupTag.classId.let { it.readOnlyToMutable() ?: it } + val candidateTypeClassId = candidateType.fullyExpandedType(session).lookupTag.classId.let { it.readOnlyToMutable() ?: it } + val baseTypeClassId = baseType.fullyExpandedType(session).lookupTag.classId.let { it.readOnlyToMutable() ?: it } + if (candidateTypeClassId != baseTypeClassId) return false + if (!candidateTypeClassId.shortClassName.isSpecial && candidateTypeClassId.shortClassName.identifier == "Array") { + assert(candidateType.typeArguments.size == 1) { + "Array type with unexpected number of type arguments: $candidateType" + } + assert(baseType.typeArguments.size == 1) { + "Array type with unexpected number of type arguments: $baseType" + } + return isEqualArrayElementTypeProjections( + candidateType.typeArguments.single(), + baseType.typeArguments.single(), + substitutor, + mayBeSpecialBuiltIn + ) + } + return true } // TODO: handle the situation in more proper way // Typical case: class EnumMap implements Map @@ -68,6 +85,20 @@ class JavaOverrideChecker internal constructor( mayBeSpecialBuiltIn ) + private fun isEqualArrayElementTypeProjections( + candidateTypeProjection: ConeTypeProjection, + baseTypeProjection: ConeTypeProjection, + substitutor: ConeSubstitutor, + mayBeSpecialBuiltIn: Boolean + ): Boolean = + when { + candidateTypeProjection is ConeKotlinTypeProjection && baseTypeProjection is ConeKotlinTypeProjection -> + candidateTypeProjection.kind == baseTypeProjection.kind && + isEqualTypes(candidateTypeProjection.type, baseTypeProjection.type, substitutor, mayBeSpecialBuiltIn) + candidateTypeProjection is ConeStarProjection && baseTypeProjection is ConeStarProjection -> true + else -> false + } + private fun Collection.buildErasure() = associate { val symbol = it.symbol val firstBound = symbol.fir.bounds.first() // Note that in Java type parameter typed arguments always erased to first bound From 8c7b23a8dd33ce62cdcbb045b9e751a397be2522 Mon Sep 17 00:00:00 2001 From: Jinseong Jeon Date: Sat, 26 Dec 2020 22:12:54 -0800 Subject: [PATCH 05/71] FIR Java/JVM: avoid plain "Array" comparison --- .../jetbrains/kotlin/fir/java/scopes/JavaOverrideChecker.kt | 2 +- .../org/jetbrains/kotlin/fir/scopes/jvm/DescriptorUtils.kt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaOverrideChecker.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaOverrideChecker.kt index 695154b9c85..d3dd4558737 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaOverrideChecker.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaOverrideChecker.kt @@ -39,7 +39,7 @@ class JavaOverrideChecker internal constructor( val candidateTypeClassId = candidateType.fullyExpandedType(session).lookupTag.classId.let { it.readOnlyToMutable() ?: it } val baseTypeClassId = baseType.fullyExpandedType(session).lookupTag.classId.let { it.readOnlyToMutable() ?: it } if (candidateTypeClassId != baseTypeClassId) return false - if (!candidateTypeClassId.shortClassName.isSpecial && candidateTypeClassId.shortClassName.identifier == "Array") { + if (candidateTypeClassId == StandardClassIds.Array) { assert(candidateType.typeArguments.size == 1) { "Array type with unexpected number of type arguments: $candidateType" } diff --git a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/DescriptorUtils.kt b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/DescriptorUtils.kt index f2f7b8fdc6c..3857ebc7a84 100644 --- a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/DescriptorUtils.kt +++ b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/DescriptorUtils.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.scopes.jvm import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction +import org.jetbrains.kotlin.fir.symbols.StandardClassIds import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.impl.FirImplicitAnyTypeRef import org.jetbrains.kotlin.fir.types.impl.FirImplicitNullableAnyTypeRef @@ -101,8 +102,7 @@ private fun StringBuilder.appendConeType(coneType: ConeKotlinType) { fun appendClassLikeType(type: ConeClassLikeType) { val classId = type.lookupTag.classId - if (classId.shortClassName.isSpecial) return - if (classId.shortClassName.identifier == "Array") { + if (classId == StandardClassIds.Array) { append("[") type.typeArguments.forEach { typeArg -> when (typeArg) { From acbf382d04304d0788b110acba27ad1435244cb5 Mon Sep 17 00:00:00 2001 From: "Denis.Zharkov" Date: Mon, 28 Dec 2020 13:19:23 +0300 Subject: [PATCH 06/71] FIR: Add test on ambiguous vararg Fix is in the two previous commits --- .../ir/FirBlackBoxCodegenTestGenerated.java | 5 ++++ .../box/javaInterop/ambiguousJavaVararg.kt | 28 +++++++++++++++++++ .../codegen/BlackBoxCodegenTestGenerated.java | 5 ++++ .../LightAnalysisModeTestGenerated.java | 5 ++++ .../ir/IrBlackBoxCodegenTestGenerated.java | 5 ++++ 5 files changed, 48 insertions(+) create mode 100644 compiler/testData/codegen/box/javaInterop/ambiguousJavaVararg.kt diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java index 313ff447e21..33027b8043a 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java @@ -16235,6 +16235,11 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/javaInterop"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @TestMetadata("ambiguousJavaVararg.kt") + public void testAmbiguousJavaVararg() throws Exception { + runTest("compiler/testData/codegen/box/javaInterop/ambiguousJavaVararg.kt"); + } + @TestMetadata("genericSamProjectedOut.kt") public void testGenericSamProjectedOut() throws Exception { runTest("compiler/testData/codegen/box/javaInterop/genericSamProjectedOut.kt"); diff --git a/compiler/testData/codegen/box/javaInterop/ambiguousJavaVararg.kt b/compiler/testData/codegen/box/javaInterop/ambiguousJavaVararg.kt new file mode 100644 index 00000000000..62a4ceae285 --- /dev/null +++ b/compiler/testData/codegen/box/javaInterop/ambiguousJavaVararg.kt @@ -0,0 +1,28 @@ +// FILE: JavaInterface.java + +public interface JavaInterface { + String foo(Object... obj); + + String foo(String... str); +} + +// FILE: JavaClass.java + +public class JavaClass implements JavaInterface { + public String foo(Object... obj) { + return "FAIL"; + } + + public String foo(String... str) { + return "OK"; + } +} + +// FILE: test.kt +// TARGET_BACKEND: JVM + +class KotlinClass : JavaClass() + +fun box(): String { + return KotlinClass().foo("alpha", "omega") +} diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index 84d19bdf9fa..b70bfdeb804 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -16235,6 +16235,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/javaInterop"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); } + @TestMetadata("ambiguousJavaVararg.kt") + public void testAmbiguousJavaVararg() throws Exception { + runTest("compiler/testData/codegen/box/javaInterop/ambiguousJavaVararg.kt"); + } + @TestMetadata("genericSamProjectedOut.kt") public void testGenericSamProjectedOut() throws Exception { runTest("compiler/testData/codegen/box/javaInterop/genericSamProjectedOut.kt"); diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index fcca375efda..9455b02a30d 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -16235,6 +16235,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/javaInterop"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); } + @TestMetadata("ambiguousJavaVararg.kt") + public void testAmbiguousJavaVararg() throws Exception { + runTest("compiler/testData/codegen/box/javaInterop/ambiguousJavaVararg.kt"); + } + @TestMetadata("genericSamProjectedOut.kt") public void testGenericSamProjectedOut() throws Exception { runTest("compiler/testData/codegen/box/javaInterop/genericSamProjectedOut.kt"); diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index d211a6110df..36577e9fa5f 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -16235,6 +16235,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/javaInterop"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @TestMetadata("ambiguousJavaVararg.kt") + public void testAmbiguousJavaVararg() throws Exception { + runTest("compiler/testData/codegen/box/javaInterop/ambiguousJavaVararg.kt"); + } + @TestMetadata("genericSamProjectedOut.kt") public void testGenericSamProjectedOut() throws Exception { runTest("compiler/testData/codegen/box/javaInterop/genericSamProjectedOut.kt"); From 86792131cd69b4bcd461ee6cb27e03405e9c9869 Mon Sep 17 00:00:00 2001 From: Andrei Klunnyi Date: Mon, 21 Dec 2020 15:53:33 +0100 Subject: [PATCH 07/71] KT-43941 [Sealed interfaces]: preliminary, code cleanup --- .../idea/intentions/CreateKotlinSubClassIntention.kt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/CreateKotlinSubClassIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/CreateKotlinSubClassIntention.kt index 4758edd24b8..95665a2a083 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/CreateKotlinSubClassIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/CreateKotlinSubClassIntention.kt @@ -48,8 +48,7 @@ class CreateKotlinSubClassIntention : SelfTargetingRangeIntention( if (!element.isInterface() && primaryConstructor != null) { val constructors = element.secondaryConstructors + primaryConstructor if (constructors.none { - !it.isPrivate() && - it.getValueParameters().all { it.hasDefaultValue() } + !it.isPrivate() && it.valueParameters.all { parameter -> parameter.hasDefaultValue() } }) { // At this moment we require non-private default constructor // TODO: handle non-private constructors with parameters @@ -103,7 +102,7 @@ class CreateKotlinSubClassIntention : SelfTargetingRangeIntention( private fun createExternalSubclass(baseClass: KtClass, baseName: String, editor: Editor) { var container: KtClassOrObject = baseClass var name = baseName - var visibility = ModifiersChecker.resolveVisibilityFromModifiers(baseClass, org.jetbrains.kotlin.descriptors.DescriptorVisibilities.PUBLIC) + var visibility = ModifiersChecker.resolveVisibilityFromModifiers(baseClass, DescriptorVisibilities.PUBLIC) while (!container.isPrivate() && !container.isProtected() && !(container is KtClass && container.isInner())) { val parent = container.containingClassOrObject if (parent != null) { @@ -112,7 +111,7 @@ class CreateKotlinSubClassIntention : SelfTargetingRangeIntention( container = parent name = "$parentName.$name" val parentVisibility = ModifiersChecker.resolveVisibilityFromModifiers(parent, visibility) - if (org.jetbrains.kotlin.descriptors.DescriptorVisibilities.compare(parentVisibility, visibility) ?: 0 < 0) { + if (DescriptorVisibilities.compare(parentVisibility, visibility) ?: 0 < 0) { visibility = parentVisibility } } @@ -176,11 +175,11 @@ class CreateKotlinSubClassIntention : SelfTargetingRangeIntention( targetName: String, baseClass: KtClass, baseName: String, - defaultVisibility: DescriptorVisibility = ModifiersChecker.resolveVisibilityFromModifiers(baseClass, org.jetbrains.kotlin.descriptors.DescriptorVisibilities.PUBLIC) + defaultVisibility: DescriptorVisibility = ModifiersChecker.resolveVisibilityFromModifiers(baseClass, DescriptorVisibilities.PUBLIC) ): ClassHeaderBuilder { return ClassHeaderBuilder().apply { if (!baseClass.isInterface()) { - if (defaultVisibility != org.jetbrains.kotlin.descriptors.DescriptorVisibilities.PUBLIC) { + if (defaultVisibility != DescriptorVisibilities.PUBLIC) { modifier(defaultVisibility.name) } if (baseClass.isInner()) { From 1cac8b0d61416970057cc9616bc3f47f38716978 Mon Sep 17 00:00:00 2001 From: Andrei Klunnyi Date: Mon, 21 Dec 2020 19:06:48 +0100 Subject: [PATCH 08/71] KT-43941 [Sealed interfaces]: preliminary, J2K --- .../CreateKotlinSubClassIntention.kt | 4 +- .../ui/CreateKotlinClassDialog.java | 281 ------------------ .../refactoring/ui/CreateKotlinClassDialog.kt | 244 +++++++++++++++ 3 files changed, 246 insertions(+), 283 deletions(-) delete mode 100644 idea/src/org/jetbrains/kotlin/idea/refactoring/ui/CreateKotlinClassDialog.java create mode 100644 idea/src/org/jetbrains/kotlin/idea/refactoring/ui/CreateKotlinClassDialog.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/CreateKotlinSubClassIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/CreateKotlinSubClassIntention.kt index 95665a2a083..b1e6df0fe6d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/CreateKotlinSubClassIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/CreateKotlinSubClassIntention.kt @@ -126,7 +126,7 @@ class CreateKotlinSubClassIntention : SelfTargetingRangeIntention( val dlg = chooseSubclassToCreate(baseClass, baseName) ?: return val targetName = dlg.className val (file, klass) = runWriteAction { - val file = getOrCreateKotlinFile("$targetName.kt", dlg.targetDirectory)!! + val file = getOrCreateKotlinFile("$targetName.kt", dlg.targetDirectory!!)!! val builder = buildClassHeader(targetName, baseClass, baseClass.fqName!!.asString()) file.add(factory.createClass(builder.asString())) val klass = file.getChildOfType()!! @@ -164,7 +164,7 @@ class CreateKotlinSubClassIntention : SelfTargetingRangeIntention( CreateClassKind.CLASS, true, ModuleUtilCore.findModuleForPsiElement(baseClass) ) { - override fun getBaseDir(packageName: String) = sourceDir + override fun getBaseDir(packageName: String?) = sourceDir override fun reportBaseInTestSelectionInSource() = true } diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/ui/CreateKotlinClassDialog.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/ui/CreateKotlinClassDialog.java deleted file mode 100644 index c4b1c14773b..00000000000 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/ui/CreateKotlinClassDialog.java +++ /dev/null @@ -1,281 +0,0 @@ -/* - * Copyright 2010-2018 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.idea.refactoring.ui; - -import com.intellij.CommonBundle; -import com.intellij.codeInsight.CodeInsightBundle; -import com.intellij.codeInsight.daemon.impl.quickfix.ClassKind; -import com.intellij.ide.util.PackageUtil; -import com.intellij.openapi.actionSystem.AnAction; -import com.intellij.openapi.actionSystem.AnActionEvent; -import com.intellij.openapi.actionSystem.CustomShortcutSet; -import com.intellij.openapi.application.WriteAction; -import com.intellij.openapi.command.CommandProcessor; -import com.intellij.openapi.module.Module; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.ui.DialogWrapper; -import com.intellij.openapi.ui.Messages; -import com.intellij.openapi.util.Pass; -import com.intellij.openapi.util.text.StringUtil; -import com.intellij.psi.PsiDirectory; -import com.intellij.psi.PsiManager; -import com.intellij.psi.PsiNameHelper; -import com.intellij.refactoring.MoveDestination; -import com.intellij.refactoring.PackageWrapper; -import com.intellij.refactoring.RefactoringBundle; -import com.intellij.refactoring.move.moveClassesOrPackages.MultipleRootsMoveDestination; -import com.intellij.refactoring.ui.PackageNameReferenceEditorCombo; -import com.intellij.refactoring.util.RefactoringMessageUtil; -import com.intellij.ui.DocumentAdapter; -import com.intellij.ui.RecentsManager; -import com.intellij.ui.ReferenceEditorComboWithBrowseButton; -import com.intellij.ui.components.JBLabel; -import com.intellij.util.IncorrectOperationException; -import com.intellij.util.ui.JBUI; -import org.jetbrains.annotations.NonNls; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.kotlin.idea.KotlinBundle; - -import static org.jetbrains.kotlin.idea.roots.ProjectRootUtilsKt.getSuitableDestinationSourceRoots; - -import javax.swing.*; -import javax.swing.event.DocumentEvent; -import java.awt.*; -import java.awt.event.InputEvent; -import java.awt.event.KeyEvent; - -// Based on com.intellij.codeInsight.intention.impl.CreateClassDialog -public class CreateKotlinClassDialog extends DialogWrapper { - private final JLabel myInformationLabel = new JLabel("#"); - private final JLabel myPackageLabel = new JLabel(CodeInsightBundle.message("dialog.create.class.destination.package.label")); - private final ReferenceEditorComboWithBrowseButton myPackageComponent; - private final JTextField myTfClassName = new MyTextField(); - private final Project myProject; - private PsiDirectory myTargetDirectory; - private final String myClassName; - private final boolean myClassNameEditable; - private final Module myModule; - private final KotlinDestinationFolderComboBox myDestinationCB = new KotlinDestinationFolderComboBox() { - @Override - public String getTargetPackage() { - return myPackageComponent.getText().trim(); - } - - @Override - protected boolean reportBaseInTestSelectionInSource() { - return CreateKotlinClassDialog.this.reportBaseInTestSelectionInSource(); - } - - @Override - protected boolean reportBaseInSourceSelectionInTest() { - return CreateKotlinClassDialog.this.reportBaseInSourceSelectionInTest(); - } - }; - @NonNls private static final String RECENTS_KEY = "CreateKotlinClassDialog.RecentsKey"; - - public CreateKotlinClassDialog(@NotNull Project project, - @NotNull String title, - @NotNull String targetClassName, - @NotNull String targetPackageName, - @NotNull ClassKind kind, - boolean classNameEditable, - @Nullable Module defaultModule) { - super(project, true); - myClassNameEditable = classNameEditable; - myModule = defaultModule; - myClassName = targetClassName; - myProject = project; - myPackageComponent = new PackageNameReferenceEditorCombo(targetPackageName, myProject, RECENTS_KEY, CodeInsightBundle.message("dialog.create.class.package.chooser.title")); - myPackageComponent.setTextFieldPreferredWidth(40); - - init(); - - if (!myClassNameEditable) { - setTitle(CodeInsightBundle.message("dialog.create.class.name", StringUtil.capitalize(kind.getDescription()), targetClassName)); - } - else { - myInformationLabel.setText(CodeInsightBundle.message("dialog.create.class.label", kind.getDescription())); - setTitle(title); - } - - myTfClassName.setText(myClassName); - myDestinationCB.setData(myProject, getBaseDir(targetPackageName), new Pass() { - @Override - public void pass(String s) { - setErrorText(s, myDestinationCB); - } - }, myPackageComponent.getChildComponent()); - } - - protected boolean reportBaseInTestSelectionInSource() { - return false; - } - - protected boolean reportBaseInSourceSelectionInTest() { - return false; - } - - @NotNull - @Override - protected Action[] createActions() { - return new Action[]{getOKAction(), getCancelAction()}; - } - - @Override - public JComponent getPreferredFocusedComponent() { - return myClassNameEditable ? myTfClassName : myPackageComponent.getChildComponent(); - } - - @Override - protected JComponent createCenterPanel() { - return new JPanel(new BorderLayout()); - } - - @Override - protected JComponent createNorthPanel() { - JPanel panel = new JPanel(new GridBagLayout()); - GridBagConstraints gbConstraints = new GridBagConstraints(); - - gbConstraints.insets = JBUI.insets(4, 8); - gbConstraints.fill = GridBagConstraints.HORIZONTAL; - gbConstraints.anchor = GridBagConstraints.WEST; - - if (myClassNameEditable) { - gbConstraints.weightx = 0; - gbConstraints.gridwidth = 1; - panel.add(myInformationLabel, gbConstraints); - gbConstraints.insets = JBUI.insets(4, 8); - gbConstraints.gridx = 1; - gbConstraints.weightx = 1; - gbConstraints.gridwidth = 1; - gbConstraints.fill = GridBagConstraints.HORIZONTAL; - gbConstraints.anchor = GridBagConstraints.WEST; - panel.add(myTfClassName, gbConstraints); - - myTfClassName.getDocument().addDocumentListener(new DocumentAdapter() { - @Override - protected void textChanged(DocumentEvent e) { - getOKAction().setEnabled(PsiNameHelper.getInstance(myProject).isIdentifier(myTfClassName.getText())); - } - }); - getOKAction().setEnabled(StringUtil.isNotEmpty(myClassName)); - } - - gbConstraints.gridx = 0; - gbConstraints.gridy = 2; - gbConstraints.weightx = 0; - gbConstraints.gridwidth = 1; - panel.add(myPackageLabel, gbConstraints); - - gbConstraints.gridx = 1; - gbConstraints.weightx = 1; - - new AnAction() { - @Override - public void actionPerformed(AnActionEvent e) { - myPackageComponent.getButton().doClick(); - } - }.registerCustomShortcutSet(new CustomShortcutSet(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, InputEvent.SHIFT_DOWN_MASK)), myPackageComponent.getChildComponent()); - - JPanel _panel = new JPanel(new BorderLayout()); - _panel.add(myPackageComponent, BorderLayout.CENTER); - panel.add(_panel, gbConstraints); - - gbConstraints.gridy = 3; - gbConstraints.gridx = 0; - gbConstraints.gridwidth = 2; - gbConstraints.insets.top = 12; - gbConstraints.anchor = GridBagConstraints.WEST; - gbConstraints.fill = GridBagConstraints.NONE; - JBLabel label = new JBLabel(RefactoringBundle.message("target.destination.folder")); - panel.add(label, gbConstraints); - - gbConstraints.gridy = 4; - gbConstraints.gridx = 0; - gbConstraints.fill = GridBagConstraints.HORIZONTAL; - gbConstraints.insets.top = 4; - panel.add(myDestinationCB, gbConstraints); - - boolean isMultipleSourceRoots = getSuitableDestinationSourceRoots(myProject).size() > 1; - myDestinationCB.setVisible(isMultipleSourceRoots); - label.setVisible(isMultipleSourceRoots); - label.setLabelFor(myDestinationCB); - return panel; - } - - public PsiDirectory getTargetDirectory() { - return myTargetDirectory; - } - - private String getPackageName() { - String name = myPackageComponent.getText(); - return name != null ? name.trim() : ""; - } - - private static class MyTextField extends JTextField { - @Override - public Dimension getPreferredSize() { - Dimension size = super.getPreferredSize(); - FontMetrics fontMetrics = getFontMetrics(getFont()); - size.width = fontMetrics.charWidth('a') * 40; - return size; - } - } - - @Override - protected void doOKAction() { - RecentsManager.getInstance(myProject).registerRecentEntry(RECENTS_KEY, myPackageComponent.getText()); - String packageName = getPackageName(); - - String[] errorString = new String[1]; - CommandProcessor.getInstance().executeCommand(myProject, () -> { - try { - PackageWrapper targetPackage = new PackageWrapper(PsiManager.getInstance(myProject), packageName); - MoveDestination destination = myDestinationCB.selectDirectory(targetPackage, false); - if (destination == null) return; - myTargetDirectory = WriteAction.compute(() -> { - PsiDirectory baseDir = getBaseDir(packageName); - if (baseDir == null && destination instanceof MultipleRootsMoveDestination) { - errorString[0] = KotlinBundle.message("destination.not.found.for.package.0", packageName); - return null; - } - return destination.getTargetDirectory(baseDir); - }); - if (myTargetDirectory == null) { - return; - } - errorString[0] = RefactoringMessageUtil.checkCanCreateClass(myTargetDirectory, getClassName()); - } - catch (IncorrectOperationException e) { - errorString[0] = e.getMessage(); - } - }, CodeInsightBundle.message("create.directory.command"), null); - - if (errorString[0] != null) { - if (errorString[0].length() > 0) { - Messages.showMessageDialog(myProject, errorString[0], CommonBundle.getErrorTitle(), Messages.getErrorIcon()); - } - return; - } - super.doOKAction(); - } - - @Nullable - protected PsiDirectory getBaseDir(String packageName) { - return myModule == null? null : PackageUtil.findPossiblePackageDirectoryInModule(myModule, packageName); - } - - @NotNull - public String getClassName() { - if (myClassNameEditable) { - return myTfClassName.getText(); - } - else { - return myClassName; - } - } -} diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/ui/CreateKotlinClassDialog.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/ui/CreateKotlinClassDialog.kt new file mode 100644 index 00000000000..fe8752d64dc --- /dev/null +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/ui/CreateKotlinClassDialog.kt @@ -0,0 +1,244 @@ +/* + * Copyright 2010-2018 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.idea.refactoring.ui + +import com.intellij.CommonBundle +import com.intellij.codeInsight.CodeInsightBundle +import com.intellij.codeInsight.daemon.impl.quickfix.ClassKind +import com.intellij.ide.util.PackageUtil +import com.intellij.openapi.actionSystem.AnAction +import com.intellij.openapi.actionSystem.AnActionEvent +import com.intellij.openapi.actionSystem.CustomShortcutSet +import com.intellij.openapi.application.WriteAction +import com.intellij.openapi.command.CommandProcessor +import com.intellij.openapi.module.Module +import com.intellij.openapi.project.Project +import com.intellij.openapi.ui.DialogWrapper +import com.intellij.openapi.ui.Messages +import com.intellij.openapi.util.Pass +import com.intellij.openapi.util.text.StringUtil +import com.intellij.psi.PsiDirectory +import com.intellij.psi.PsiManager +import com.intellij.psi.PsiNameHelper +import com.intellij.refactoring.PackageWrapper +import com.intellij.refactoring.RefactoringBundle +import com.intellij.refactoring.move.moveClassesOrPackages.MultipleRootsMoveDestination +import com.intellij.refactoring.ui.PackageNameReferenceEditorCombo +import com.intellij.refactoring.util.RefactoringMessageUtil +import com.intellij.ui.DocumentAdapter +import com.intellij.ui.RecentsManager +import com.intellij.ui.ReferenceEditorComboWithBrowseButton +import com.intellij.ui.components.JBLabel +import com.intellij.util.IncorrectOperationException +import com.intellij.util.ui.JBUI +import org.jetbrains.annotations.NonNls +import org.jetbrains.kotlin.idea.KotlinBundle.message +import org.jetbrains.kotlin.idea.roots.getSuitableDestinationSourceRoots +import java.awt.BorderLayout +import java.awt.Dimension +import java.awt.GridBagConstraints +import java.awt.GridBagLayout +import java.awt.event.InputEvent +import java.awt.event.KeyEvent +import javax.swing.* +import javax.swing.event.DocumentEvent + +// Based on com.intellij.codeInsight.intention.impl.CreateClassDialog +open class CreateKotlinClassDialog( + private val myProject: Project, + title: String, + private val myClassName: String, + targetPackageName: String, + kind: ClassKind, + private val myClassNameEditable: Boolean, + private val myModule: Module? +) : DialogWrapper(myProject, true) { + + private val myInformationLabel = JLabel("#") + private val myPackageLabel = JLabel(CodeInsightBundle.message("dialog.create.class.destination.package.label")) + private var myPackageComponent: ReferenceEditorComboWithBrowseButton = PackageNameReferenceEditorCombo( + targetPackageName, + myProject, + RECENTS_KEY, + CodeInsightBundle.message("dialog.create.class.package.chooser.title") + ) + private val myTfClassName: JTextField = MyTextField() + var targetDirectory: PsiDirectory? = null + private set + private val myDestinationCB: KotlinDestinationFolderComboBox = object : KotlinDestinationFolderComboBox() { + override fun getTargetPackage(): String { + return myPackageComponent.text.trim() + } + + override fun reportBaseInTestSelectionInSource(): Boolean { + return this@CreateKotlinClassDialog.reportBaseInTestSelectionInSource() + } + + override fun reportBaseInSourceSelectionInTest(): Boolean { + return this@CreateKotlinClassDialog.reportBaseInSourceSelectionInTest() + } + } + + protected open fun reportBaseInTestSelectionInSource(): Boolean { + return false + } + + protected open fun reportBaseInSourceSelectionInTest(): Boolean { + return false + } + + override fun createActions(): Array { + return arrayOf(okAction, cancelAction) + } + + override fun getPreferredFocusedComponent(): JComponent? { + return if (myClassNameEditable) myTfClassName else myPackageComponent.childComponent + } + + override fun createCenterPanel(): JComponent? { + return JPanel(BorderLayout()) + } + + override fun createNorthPanel(): JComponent? { + val panel = JPanel(GridBagLayout()) + val gbConstraints = GridBagConstraints() + gbConstraints.insets = JBUI.insets(4, 8) + gbConstraints.fill = GridBagConstraints.HORIZONTAL + gbConstraints.anchor = GridBagConstraints.WEST + if (myClassNameEditable) { + gbConstraints.weightx = 0.0 + gbConstraints.gridwidth = 1 + panel.add(myInformationLabel, gbConstraints) + gbConstraints.insets = JBUI.insets(4, 8) + gbConstraints.gridx = 1 + gbConstraints.weightx = 1.0 + gbConstraints.gridwidth = 1 + gbConstraints.fill = GridBagConstraints.HORIZONTAL + gbConstraints.anchor = GridBagConstraints.WEST + panel.add(myTfClassName, gbConstraints) + myTfClassName.document.addDocumentListener(object : DocumentAdapter() { + override fun textChanged(e: DocumentEvent) { + okAction.isEnabled = PsiNameHelper.getInstance(myProject).isIdentifier(myTfClassName.text) + } + }) + okAction.isEnabled = StringUtil.isNotEmpty(myClassName) + } + gbConstraints.gridx = 0 + gbConstraints.gridy = 2 + gbConstraints.weightx = 0.0 + gbConstraints.gridwidth = 1 + panel.add(myPackageLabel, gbConstraints) + gbConstraints.gridx = 1 + gbConstraints.weightx = 1.0 + object : AnAction() { + override fun actionPerformed(e: AnActionEvent) { + myPackageComponent.button.doClick() + } + }.registerCustomShortcutSet( + CustomShortcutSet(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, InputEvent.SHIFT_DOWN_MASK)), + myPackageComponent.childComponent + ) + val _panel = JPanel(BorderLayout()) + _panel.add(myPackageComponent, BorderLayout.CENTER) + panel.add(_panel, gbConstraints) + gbConstraints.gridy = 3 + gbConstraints.gridx = 0 + gbConstraints.gridwidth = 2 + gbConstraints.insets.top = 12 + gbConstraints.anchor = GridBagConstraints.WEST + gbConstraints.fill = GridBagConstraints.NONE + val label = JBLabel(RefactoringBundle.message("target.destination.folder")) + panel.add(label, gbConstraints) + gbConstraints.gridy = 4 + gbConstraints.gridx = 0 + gbConstraints.fill = GridBagConstraints.HORIZONTAL + gbConstraints.insets.top = 4 + panel.add(myDestinationCB, gbConstraints) + val isMultipleSourceRoots = getSuitableDestinationSourceRoots(myProject).size > 1 + myDestinationCB.isVisible = isMultipleSourceRoots + label.isVisible = isMultipleSourceRoots + label.labelFor = myDestinationCB + return panel + } + + private val packageName: String + get() { + val name = myPackageComponent.text + return name?.trim() ?: "" + } + + private class MyTextField : JTextField() { + override fun getPreferredSize(): Dimension { + val size = super.getPreferredSize() + val fontMetrics = getFontMetrics(font) + size.width = fontMetrics.charWidth('a') * 40 + return size + } + } + + override fun doOKAction() { + RecentsManager.getInstance(myProject).registerRecentEntry(RECENTS_KEY, myPackageComponent.text) + val packageName = packageName + var errorString: String? = null + CommandProcessor.getInstance().executeCommand(myProject, { + try { + val targetPackage = PackageWrapper(PsiManager.getInstance(myProject), packageName) + val destination = myDestinationCB.selectDirectory(targetPackage, false) ?: return@executeCommand + targetDirectory = WriteAction.compute { + val baseDir = getBaseDir(packageName) + if (baseDir == null && destination is MultipleRootsMoveDestination) { + errorString = message("destination.not.found.for.package.0", packageName) + return@compute null + } + destination.getTargetDirectory(baseDir) + } + if (targetDirectory == null) { + return@executeCommand + } + errorString = RefactoringMessageUtil.checkCanCreateClass(targetDirectory, className) + } catch (e: IncorrectOperationException) { + errorString = e.message + } + }, CodeInsightBundle.message("create.directory.command"), null) + + errorString?.let { + if (it.isNotEmpty()) + Messages.showMessageDialog(myProject, errorString, CommonBundle.getErrorTitle(), Messages.getErrorIcon()) + } ?: super.doOKAction() + } + + protected open fun getBaseDir(packageName: String?): PsiDirectory? { + return if (myModule == null) null else PackageUtil.findPossiblePackageDirectoryInModule(myModule, packageName) + } + + val className: String + get() = if (myClassNameEditable) { + myTfClassName.text + } else { + myClassName + } + + companion object { + @NonNls + private val RECENTS_KEY = "CreateKotlinClassDialog.RecentsKey" + } + + init { + myPackageComponent.setTextFieldPreferredWidth(40) + init() + if (!myClassNameEditable) { + setTitle(CodeInsightBundle.message("dialog.create.class.name", StringUtil.capitalize(kind.description), myClassName)) + } else { + myInformationLabel.text = CodeInsightBundle.message("dialog.create.class.label", kind.description) + setTitle(title) + } + myTfClassName.text = myClassName + myDestinationCB.setData(myProject, getBaseDir(targetPackageName), object : Pass() { + override fun pass(s: String?) { + setErrorText(s, myDestinationCB) + } + }, myPackageComponent.getChildComponent()) + } +} \ No newline at end of file From 3f287d344ef0aafb653237f1c67a76af8a491020 Mon Sep 17 00:00:00 2001 From: Andrei Klunnyi Date: Tue, 22 Dec 2020 12:59:27 +0100 Subject: [PATCH 09/71] KT-43941 [Sealed interfaces]: subclass intention Restriction for sealed inheritors was relaxed. Instead of being nested class members now they can be the members of the same module and package. --- .../CreateKotlinSubClassIntention.kt | 11 +++--- .../refactoring/ui/CreateKotlinClassDialog.kt | 9 +++-- .../ui/KotlinDestinationFolderComboBox.java | 35 ++++++++++++++----- .../kotlin/idea/roots/projectRootUtils.kt | 2 +- .../quickfix/implement/sealedAfter15.kt | 8 +++++ .../quickfix/implement/sealedAfter15.kt.after | 14 ++++++++ .../quickfix/implement/sealedEmptyAfter15.kt | 4 +++ .../implement/sealedEmptyAfter15.kt.after | 5 +++ .../implement/sealedWithConflictAfter15.kt | 12 +++++++ .../sealedWithConflictAfter15.kt.after | 18 ++++++++++ .../idea/quickfix/QuickFixTestGenerated.java | 15 ++++++++ 11 files changed, 116 insertions(+), 17 deletions(-) create mode 100644 idea/testData/quickfix/implement/sealedAfter15.kt create mode 100644 idea/testData/quickfix/implement/sealedAfter15.kt.after create mode 100644 idea/testData/quickfix/implement/sealedEmptyAfter15.kt create mode 100644 idea/testData/quickfix/implement/sealedEmptyAfter15.kt.after create mode 100644 idea/testData/quickfix/implement/sealedWithConflictAfter15.kt create mode 100644 idea/testData/quickfix/implement/sealedWithConflictAfter15.kt.after diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/CreateKotlinSubClassIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/CreateKotlinSubClassIntention.kt index b1e6df0fe6d..ca83af007e5 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/CreateKotlinSubClassIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/CreateKotlinSubClassIntention.kt @@ -14,12 +14,14 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.util.TextRange import com.intellij.psi.JavaDirectoryService import com.intellij.refactoring.rename.PsiElementRenameHandler +import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.descriptors.DescriptorVisibilities import org.jetbrains.kotlin.descriptors.DescriptorVisibility import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.core.KotlinNameSuggester import org.jetbrains.kotlin.idea.core.ShortenReferences import org.jetbrains.kotlin.idea.core.overrideImplement.ImplementMembersHandler +import org.jetbrains.kotlin.idea.project.languageVersionSettings import org.jetbrains.kotlin.idea.refactoring.getOrCreateKotlinFile import org.jetbrains.kotlin.idea.refactoring.ui.CreateKotlinClassDialog import org.jetbrains.kotlin.idea.util.application.runWriteAction @@ -73,8 +75,8 @@ class CreateKotlinSubClassIntention : SelfTargetingRangeIntention( if (editor == null) throw IllegalArgumentException("This intention requires an editor") val name = element.name ?: throw IllegalStateException("This intention should not be applied to anonymous classes") - if (element.isSealed()) { - createSealedSubclass(element, name, editor) + if (element.isSealed() && !element.languageVersionSettings.supportsFeature(LanguageFeature.SealedInterfaces)) { + createNestedSubclass(element, name, editor) } else { createExternalSubclass(element, name, editor) } @@ -87,7 +89,7 @@ class CreateKotlinSubClassIntention : SelfTargetingRangeIntention( private fun targetNameWithoutConflicts(baseName: String, container: KtClassOrObject?) = KotlinNameSuggester.suggestNameByName(defaultTargetName(baseName)) { container?.hasSameDeclaration(it) != true } - private fun createSealedSubclass(sealedClass: KtClass, sealedName: String, editor: Editor) { + private fun createNestedSubclass(sealedClass: KtClass, sealedName: String, editor: Editor) { val project = sealedClass.project val klass = runWriteAction { val builder = buildClassHeader(targetNameWithoutConflicts(sealedName, sealedClass), sealedClass, sealedName) @@ -162,7 +164,8 @@ class CreateKotlinSubClassIntention : SelfTargetingRangeIntention( targetNameWithoutConflicts(baseName, baseClass.containingClassOrObject), aPackage?.qualifiedName ?: "", CreateClassKind.CLASS, true, - ModuleUtilCore.findModuleForPsiElement(baseClass) + ModuleUtilCore.findModuleForPsiElement(baseClass), + baseClass.isSealed() ) { override fun getBaseDir(packageName: String?) = sourceDir diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/ui/CreateKotlinClassDialog.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/ui/CreateKotlinClassDialog.kt index fe8752d64dc..6ca27f204b2 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/ui/CreateKotlinClassDialog.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/ui/CreateKotlinClassDialog.kt @@ -53,7 +53,8 @@ open class CreateKotlinClassDialog( targetPackageName: String, kind: ClassKind, private val myClassNameEditable: Boolean, - private val myModule: Module? + private val myModule: Module?, + val isSealed: Boolean = false ) : DialogWrapper(myProject, true) { private val myInformationLabel = JLabel("#") @@ -63,7 +64,9 @@ open class CreateKotlinClassDialog( myProject, RECENTS_KEY, CodeInsightBundle.message("dialog.create.class.package.chooser.title") - ) + ).also { + if (isSealed) it.isEnabled = false + } private val myTfClassName: JTextField = MyTextField() var targetDirectory: PsiDirectory? = null private set @@ -239,6 +242,6 @@ open class CreateKotlinClassDialog( override fun pass(s: String?) { setErrorText(s, myDestinationCB) } - }, myPackageComponent.getChildComponent()) + }, myPackageComponent.childComponent, isSealed) } } \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/ui/KotlinDestinationFolderComboBox.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/ui/KotlinDestinationFolderComboBox.java index bc3a85da6b9..f82c1f342af 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/ui/KotlinDestinationFolderComboBox.java +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/ui/KotlinDestinationFolderComboBox.java @@ -28,6 +28,7 @@ import com.intellij.refactoring.move.moveClassesOrPackages.MultipleRootsMoveDest import com.intellij.ui.*; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.idea.KotlinBundle; +import org.jetbrains.kotlin.idea.roots.ProjectRootUtilsKt; import javax.swing.*; import java.awt.*; @@ -72,12 +73,25 @@ public abstract class KotlinDestinationFolderComboBox extends ComboboxWithBrowse } public void setData( - Project project, - PsiDirectory initialTargetDirectory, - Pass errorMessageUpdater, EditorComboBox editorComboBox + Project project, + PsiDirectory initialTargetDirectory, + Pass errorMessageUpdater, EditorComboBox editorComboBox + ) { + setData(project, initialTargetDirectory, errorMessageUpdater, editorComboBox, false); + } + + public void setData(Project project, PsiDirectory initialTargetDirectory, Pass errorMessageUpdater, + EditorComboBox editorComboBox, boolean sourceRootsInTargetDirOnly ) { myInitialTargetDirectory = initialTargetDirectory; - mySourceRoots = getKotlinAwareDestinationSourceRoots(project); + + if (sourceRootsInTargetDirOnly) { + Module module = ModuleUtilCore.findModuleForFile(myInitialTargetDirectory.getVirtualFile(), project); + mySourceRoots = ProjectRootUtilsKt.collectKotlinAwareDestinationSourceRoots(module); + } else { + mySourceRoots = getKotlinAwareDestinationSourceRoots(project); + } + new ComboboxSpeedSearch(getComboBox()) { @Override protected String getElementText(Object element) { @@ -130,7 +144,8 @@ public abstract class KotlinDestinationFolderComboBox extends ComboboxWithBrowse return; } } - setComboboxModel(getComboBox(), root, root, fileIndex, mySourceRoots, project, true, errorMessageUpdater); + setComboboxModel(getComboBox(), root, root, fileIndex, mySourceRoots, project, true, errorMessageUpdater, + sourceRootsInTargetDirOnly); }); editorComboBox.addDocumentListener(new DocumentListener() { @@ -140,10 +155,11 @@ public abstract class KotlinDestinationFolderComboBox extends ComboboxWithBrowse DirectoryChooser.ItemWrapper selectedItem = (DirectoryChooser.ItemWrapper) comboBox.getSelectedItem(); setComboboxModel(comboBox, selectedItem != null && selectedItem != NULL_WRAPPER ? fileIndex .getSourceRootForFile(selectedItem.getDirectory().getVirtualFile()) : initialSourceRoot, selection[0], fileIndex, - mySourceRoots, project, false, errorMessageUpdater); + mySourceRoots, project, false, errorMessageUpdater, sourceRootsInTargetDirOnly); } }); - setComboboxModel(getComboBox(), initialSourceRoot, selection[0], fileIndex, mySourceRoots, project, false, errorMessageUpdater); + setComboboxModel(getComboBox(), initialSourceRoot, selection[0], fileIndex, mySourceRoots, project, false, errorMessageUpdater, + sourceRootsInTargetDirOnly); getComboBox().addActionListener(e -> { Object selectedItem = getComboBox().getSelectedItem(); updateErrorMessage(errorMessageUpdater, fileIndex, selectedItem); @@ -199,7 +215,8 @@ public abstract class KotlinDestinationFolderComboBox extends ComboboxWithBrowse List sourceRoots, Project project, boolean forceIncludeAll, - Pass updateErrorMessage + Pass updateErrorMessage, + boolean sourceRootsInTargetDirOnly ) { LinkedHashSet targetDirectories = new LinkedHashSet<>(); HashMap pathsToCreate = new HashMap<>(); @@ -224,7 +241,7 @@ public abstract class KotlinDestinationFolderComboBox extends ComboboxWithBrowse oldOne = itemWrapper; } } - if (oldSelection == null || !fileIndex.isInLibrarySource(oldSelection)) { + if (!sourceRootsInTargetDirOnly && (oldSelection == null || !fileIndex.isInLibrarySource(oldSelection))) { items.add(NULL_WRAPPER); } DirectoryChooser.ItemWrapper selection = chooseSelection(initialTargetDirectorySourceRoot, fileIndex, items, initial, oldOne); diff --git a/idea/src/org/jetbrains/kotlin/idea/roots/projectRootUtils.kt b/idea/src/org/jetbrains/kotlin/idea/roots/projectRootUtils.kt index 221d492e0bd..5eb63a27dd1 100644 --- a/idea/src/org/jetbrains/kotlin/idea/roots/projectRootUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/roots/projectRootUtils.kt @@ -99,7 +99,7 @@ fun getKotlinAwareDestinationSourceRoots(project: Project): List { private val KOTLIN_AWARE_SOURCE_ROOT_TYPES: Set> = JavaModuleSourceRootTypes.SOURCES + ALL_KOTLIN_SOURCE_ROOT_TYPES -private fun Module.collectKotlinAwareDestinationSourceRoots(): List { +fun Module.collectKotlinAwareDestinationSourceRoots(): List { return rootManager .contentEntries .asSequence() diff --git a/idea/testData/quickfix/implement/sealedAfter15.kt b/idea/testData/quickfix/implement/sealedAfter15.kt new file mode 100644 index 00000000000..7e5eef76739 --- /dev/null +++ b/idea/testData/quickfix/implement/sealedAfter15.kt @@ -0,0 +1,8 @@ +// "Implement sealed class" "true" +// WITH_RUNTIME +// SHOULD_BE_AVAILABLE_AFTER_EXECUTION +// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces + +sealed class Base { + abstract fun foo(): Int +} \ No newline at end of file diff --git a/idea/testData/quickfix/implement/sealedAfter15.kt.after b/idea/testData/quickfix/implement/sealedAfter15.kt.after new file mode 100644 index 00000000000..d3632cea1b0 --- /dev/null +++ b/idea/testData/quickfix/implement/sealedAfter15.kt.after @@ -0,0 +1,14 @@ +// "Implement sealed class" "true" +// WITH_RUNTIME +// SHOULD_BE_AVAILABLE_AFTER_EXECUTION +// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces + +sealed class Base { + abstract fun foo(): Int +} + +class BaseImpl : Base() { + override fun foo(): Int { + TODO("Not yet implemented") + } +} \ No newline at end of file diff --git a/idea/testData/quickfix/implement/sealedEmptyAfter15.kt b/idea/testData/quickfix/implement/sealedEmptyAfter15.kt new file mode 100644 index 00000000000..ac81425b417 --- /dev/null +++ b/idea/testData/quickfix/implement/sealedEmptyAfter15.kt @@ -0,0 +1,4 @@ +// "Implement sealed class" "true" +// SHOULD_BE_AVAILABLE_AFTER_EXECUTION +// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces +sealed class Sealed \ No newline at end of file diff --git a/idea/testData/quickfix/implement/sealedEmptyAfter15.kt.after b/idea/testData/quickfix/implement/sealedEmptyAfter15.kt.after new file mode 100644 index 00000000000..5b417865afd --- /dev/null +++ b/idea/testData/quickfix/implement/sealedEmptyAfter15.kt.after @@ -0,0 +1,5 @@ +// "Implement sealed class" "true" +// SHOULD_BE_AVAILABLE_AFTER_EXECUTION +// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces +sealed class Sealed +class SealedImpl : Sealed() \ No newline at end of file diff --git a/idea/testData/quickfix/implement/sealedWithConflictAfter15.kt b/idea/testData/quickfix/implement/sealedWithConflictAfter15.kt new file mode 100644 index 00000000000..e97f24cebea --- /dev/null +++ b/idea/testData/quickfix/implement/sealedWithConflictAfter15.kt @@ -0,0 +1,12 @@ +// "Implement sealed class" "true" +// WITH_RUNTIME +// SHOULD_BE_AVAILABLE_AFTER_EXECUTION +// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces + +sealed class Base { + abstract fun foo(): Int + + class BaseImpl : Base() { + override fun foo() = throw UnsupportedOperationException() + } +} \ No newline at end of file diff --git a/idea/testData/quickfix/implement/sealedWithConflictAfter15.kt.after b/idea/testData/quickfix/implement/sealedWithConflictAfter15.kt.after new file mode 100644 index 00000000000..d7d02baa8b8 --- /dev/null +++ b/idea/testData/quickfix/implement/sealedWithConflictAfter15.kt.after @@ -0,0 +1,18 @@ +// "Implement sealed class" "true" +// WITH_RUNTIME +// SHOULD_BE_AVAILABLE_AFTER_EXECUTION +// COMPILER_ARGUMENTS: -XXLanguage:+SealedInterfaces + +sealed class Base { + abstract fun foo(): Int + + class BaseImpl : Base() { + override fun foo() = throw UnsupportedOperationException() + } +} + +class BaseImpl : Base() { + override fun foo(): Int { + TODO("Not yet implemented") + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index b8d2fb3d472..5ebe7a341de 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -8204,16 +8204,31 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { runTest("idea/testData/quickfix/implement/sealed.kt"); } + @TestMetadata("sealedAfter15.kt") + public void testSealedAfter15() throws Exception { + runTest("idea/testData/quickfix/implement/sealedAfter15.kt"); + } + @TestMetadata("sealedEmpty.kt") public void testSealedEmpty() throws Exception { runTest("idea/testData/quickfix/implement/sealedEmpty.kt"); } + @TestMetadata("sealedEmptyAfter15.kt") + public void testSealedEmptyAfter15() throws Exception { + runTest("idea/testData/quickfix/implement/sealedEmptyAfter15.kt"); + } + @TestMetadata("sealedWithConflict.kt") public void testSealedWithConflict() throws Exception { runTest("idea/testData/quickfix/implement/sealedWithConflict.kt"); } + @TestMetadata("sealedWithConflictAfter15.kt") + public void testSealedWithConflictAfter15() throws Exception { + runTest("idea/testData/quickfix/implement/sealedWithConflictAfter15.kt"); + } + @TestMetadata("typeParameter.kt") public void testTypeParameter() throws Exception { runTest("idea/testData/quickfix/implement/typeParameter.kt"); From 5d4b0b19d41ebfa49d94bcb973c0aa3ced621a04 Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Fri, 25 Dec 2020 13:07:54 +0300 Subject: [PATCH 10/71] JVM_IR KT-13213 split string constants into parts of acceptable length --- .../ir/FirBlackBoxCodegenTestGenerated.java | 10 + .../backend/jvm/codegen/ExpressionCodegen.kt | 28 + .../testData/codegen/box/strings/kt13213.kt | 2713 +++++++++++++++++ .../testData/codegen/box/strings/kt13213a.kt | 257 ++ .../codegen/BlackBoxCodegenTestGenerated.java | 10 + .../LightAnalysisModeTestGenerated.java | 10 + .../ir/IrBlackBoxCodegenTestGenerated.java | 10 + .../IrJsCodegenBoxES6TestGenerated.java | 10 + .../IrJsCodegenBoxTestGenerated.java | 10 + .../semantics/JsCodegenBoxTestGenerated.java | 10 + .../IrCodegenBoxWasmTestGenerated.java | 10 + 11 files changed, 3078 insertions(+) create mode 100644 compiler/testData/codegen/box/strings/kt13213.kt create mode 100644 compiler/testData/codegen/box/strings/kt13213a.kt diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java index 33027b8043a..575fd44d2c8 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java @@ -31083,6 +31083,16 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/strings/javaToStringNPE.kt"); } + @TestMetadata("kt13213.kt") + public void testKt13213() throws Exception { + runTest("compiler/testData/codegen/box/strings/kt13213.kt"); + } + + @TestMetadata("kt13213a.kt") + public void testKt13213a() throws Exception { + runTest("compiler/testData/codegen/box/strings/kt13213a.kt"); + } + @TestMetadata("kt2592.kt") public void testKt2592() throws Exception { runTest("compiler/testData/codegen/box/strings/kt2592.kt"); diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt index 85819b6ae24..6d6e7a8777b 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt @@ -811,11 +811,39 @@ class ExpressionCodegen( is Float -> mv.fconst(value) is Double -> mv.dconst(value) is Number -> mv.iconst(value.toInt()) + is String -> generateStringConstant(value) else -> if (expression.kind == IrConstKind.Null) return nullConstant else mv.aconst(value) } return expression.onStack } + private fun generateStringConstant(value: String) { + val length = value.length + + // Strings in constant pool contain at most 2^16-1 = 65535 bytes. + // Non-BMP characters in UTF8 require at most 4 bytes. + val maxPartLength = 65535 / 4 + + if (length <= maxPartLength) { + mv.aconst(value) + } else { + // Split strings into parts, each of which satisfies JVM class file constant pool constraints. + // Note that even if we split surrogate pairs between parts, they will be joined on concatenation. + mv.anew(Type.getObjectType("java/lang/StringBuilder")) + mv.dup() + mv.iconst(length) + mv.invokespecial("java/lang/StringBuilder", "", "(I)V", false) + var i = 0 + while (i < length) { + val j = minOf(i + maxPartLength, length) + mv.aconst(value.substring(i, j)) + mv.invokevirtual("java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;", false) + i += maxPartLength + } + mv.invokevirtual("java/lang/StringBuilder", "toString", "()Ljava/lang/String;", false) + } + } + override fun visitExpressionBody(body: IrExpressionBody, data: BlockInfo) = body.expression.accept(this, data) diff --git a/compiler/testData/codegen/box/strings/kt13213.kt b/compiler/testData/codegen/box/strings/kt13213.kt new file mode 100644 index 00000000000..8b9d200fe68 --- /dev/null +++ b/compiler/testData/codegen/box/strings/kt13213.kt @@ -0,0 +1,2713 @@ +// IGNORE_BACKEND: JVM +// IGNORE_BACKEND: WASM +// WITH_RUNTIME + +fun box(): String { + val t = test.trim() + return t.substring(t.length - 2) +} + +val test = + """ +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 +OK +""" \ No newline at end of file diff --git a/compiler/testData/codegen/box/strings/kt13213a.kt b/compiler/testData/codegen/box/strings/kt13213a.kt new file mode 100644 index 00000000000..68b27d7c5e0 --- /dev/null +++ b/compiler/testData/codegen/box/strings/kt13213a.kt @@ -0,0 +1,257 @@ +// IGNORE_BACKEND: JVM +// WITH_RUNTIME + +fun Char.hex() = toInt().toString(16) + +fun box(): String { + if (t.length != 39971) return "Failed: ${t.length} != 39971" + + var ssi = 0 + var si = 0 + var i = 0 + for (cht in t) { + val chs = SS[ssi][si] + if (chs != cht) return "Mismatch at $i: ${chs.hex()} != ${cht.hex()}" + ++i + ++si + if (si >= SS[ssi].length) { + si = 0 + ++ssi + } + } + + return "OK" +} + +// This is some randomly generated sequence of reqular characters and proper suppogate pairs. +// It contains one surrogate pair that would be split at index 32766 +// if long string constant parts are limited to M = 65535/4 = 16383, +// and quite likely some others for other possible Ms. +// The test itself makes sure that we store strings in constant pool properly. + +const val S0 = "\ud83c\udf09\uD83C\uDF10\uD83C\uDF10----\ud83c\udf09\ud83c\udf09----\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-------\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10---\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09" +const val S1 = "--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\ud83c\udf09----\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09----\uD83C\uDF10" +const val S2 = "\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10" +const val S3 = "\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09" +const val S4 = "\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09----\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10" +const val S5 = "-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09-\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09" +const val S6 = "-\ud83c\udf09-\ud83c\udf09---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09---\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09---\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10" +const val S7 = "\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09----\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09" +const val S8 = "\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09---\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10" +const val S9 = "-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09-----\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09----\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09" +const val S10 = "\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10----\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10" +const val S11 = "\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09" +const val S12 = "-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10----\uD83C\uDF10\ud83c\udf09\uD83C\uDF10---\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09----\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10" +const val S13 = "\ud83c\udf09\ud83c\udf09-\ud83c\udf09----\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-----\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09" +const val S14 = "--\ud83c\udf09-\ud83c\udf09----\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09---\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10" +const val S15 = "--\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10---\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09-\ud83c\udf09\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09------\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09" +const val S16 = "-\uD83C\uDF10\ud83c\udf09\ud83c\udf09---\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10" +const val S17 = "--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09------\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09----\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10" +const val S18 = "\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-----\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10" +const val S19 = "\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10----\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10" +const val S20 = "-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10----\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09------\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09" +const val S21 = "--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10---\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09" +const val S22 = "\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-----\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09---\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10----\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10" +const val S23 = "---\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10" +const val S24 = "\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\ud83c\udf09--\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09----\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09" +const val S25 = "-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09----\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09---\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09---\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-----\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10" +const val S26 = "\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09----\uD83C\uDF10-----\uD83C\uDF10-\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10" +const val S27 = "-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\ud83c\udf09---\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09----\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10----\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--" +const val S28 = "---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10---\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10" +const val S29 = "\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10-----\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09---\ud83c\udf09----\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10" +const val S30 = "\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10" +const val S31 = "\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10" +const val S32 = "\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09---\ud83c\udf09-\ud83c\udf09---\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09-----\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09" +const val S33 = "-\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09---\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09" +const val S34 = "\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10----\ud83c\udf09\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09" +const val S35 = "\ud83c\udf09---\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09----\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09---\uD83C\uDF10-----------\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09" +const val S36 = "\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10" +const val S37 = "\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-----\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10" +const val S38 = "\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09---\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10----\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09" +const val S39 = "---\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10--" +const val S40 = "-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10--\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-----\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09---\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10" +const val S41 = "\ud83c\udf09-\ud83c\udf09-----\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10---\ud83c\udf09---\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09----\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10" +const val S42 = "\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09" +const val S43 = "-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10---\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10---\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-----\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09---\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10----\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09" +const val S44 = "\ud83c\udf09\ud83c\udf09----\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10-\ud83c\udf09----\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10----\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09---\uD83C\uDF10----\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10" +const val S45 = "\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09" +const val S46 = "-\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10----\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-----\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09" +const val S47 = "\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09" +const val S48 = "\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-----\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09" +const val S49 = "-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10-\uD83C\uDF10----\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10----\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09" +const val S50 = "\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10----\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09---\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10" +const val S51 = "-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10" +const val S52 = "-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10---\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10---\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09" +const val S53 = "---\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10------\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09---\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10" +const val S54 = "-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-----\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09---\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09" +const val S55 = "\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09---\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09----\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09---\ud83c\udf09-\uD83C\uDF10" +const val S56 = "\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\ud83c\udf09---\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-----\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-----\ud83c\udf09--\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09" +const val S57 = "\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09--" +const val S58 = "-\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09" +const val S59 = "--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10---\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09" +const val S60 = "\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10" +const val S61 = "\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09--\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09------\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10----\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09----\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-" +const val S62 = "\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09----\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-----\uD83C\uDF10--\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09" +const val S63 = "-\ud83c\udf09--\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09----\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10----\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09----\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09" +const val S64 = "\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10----\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10" +const val S65 = "\ud83c\udf09--\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\ud83c\udf09" +const val S66 = "-\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09----\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09---\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10" +const val S67 = "-\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09" +const val S68 = "--\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10---\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09" +const val S69 = "\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10" +const val S70 = "---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09------\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09----\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10---\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09" +const val S71 = "\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10----\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09" +const val S72 = "\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09" +const val S73 = "-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09" +const val S74 = "\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10---\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10----\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09----\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10---\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10" +const val S75 = "\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09-----\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09" +const val S76 = "\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10----\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10" +const val S77 = "-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-----\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09----\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09" +const val S78 = "\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10----\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10---\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09" +const val S79 = "--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10" +const val S80 = "\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09--\ud83c\udf09\ud83c\udf09---\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\ud83c\udf09----\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10" +const val S81 = "\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10---\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09---\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10" +const val S82 = "--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10" +const val S83 = "\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10" +const val S84 = "\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09---\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09---\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09----\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-----\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09" +const val S85 = "\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09---\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-" +const val S86 = "\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09----\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\ud83c\udf09--\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09" +const val S87 = "\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09----\ud83c\udf09" +const val S88 = "\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-------\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10" +const val S89 = "\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09--\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10" +const val S90 = "\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10----\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10" +const val S91 = "\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10----\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09---\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-------\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09" +const val S92 = "-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09---\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09--\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10" +const val S93 = "-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09--\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09" +const val S94 = "\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-----\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09" +const val S95 = "-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10---\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10----\ud83c\udf09\uD83C\uDF10\ud83c\udf09-----\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09---\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10" +const val S96 = "\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10----\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09--\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09" +const val S97 = "-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10" +const val S98 = "\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-----\uD83C\uDF10" +const val S99 = "-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09" +const val S100 = "-\uD83C\uDF10--\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09--\ud83c\udf09-\ud83c\udf09----\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09--\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10" +const val S101 = "-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10---\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09---\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10" +const val S102 = "\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10----\ud83c\udf09\ud83c\udf09--\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09" +const val S103 = "\uD83C\uDF10\ud83c\udf09----\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-----\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09----\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09--\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-----\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10----\uD83C\uDF10-\ud83c\udf09---\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10" +const val S104 = "\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09---\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10" +const val S105 = "-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10---\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09----\ud83c\udf09-\ud83c\udf09---\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09" +const val S106 = "-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09--\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09" +const val S107 = "\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10----\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09" +const val S108 = "\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09----\uD83C\uDF10-\ud83c\udf09\ud83c\udf09----\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10" +const val S109 = "\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09---\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10" +const val S110 = "-\uD83C\uDF10-----\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09----\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-----\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10" +const val S111 = "-----\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10---\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10----\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10---\uD83C\uDF10-" +const val S112 = "-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09" +const val S113 = "\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09---\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09" +const val S114 = "\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10---\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10----\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-------\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10----\ud83c\udf09\ud83c\udf09" +const val S115 = "\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09----\uD83C\uDF10--\uD83C\uDF10----\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10\ud83c\udf09----\uD83C\uDF10" +const val S116 = "\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09" +const val S117 = "\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09---\ud83c\udf09\ud83c\udf09-\ud83c\udf09---\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10" +const val S118 = "\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09----\ud83c\udf09---\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09----\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\ud83c\udf09---\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09" +const val S119 = "-\uD83C\uDF10-\ud83c\udf09----\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09----\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09----\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09----\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09" +const val S120 = "\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10----\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10----\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09---\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09" +const val S121 = "\ud83c\udf09----\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10-----\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09---\ud83c\udf09-\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09" +const val S122 = "\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10--\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10" +const val S123 = "\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09----\ud83c\udf09\ud83c\udf09\ud83c\udf09" +const val S124 = "\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-----\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10" +const val S125 = "\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09------\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09" +const val S126 = "\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10--\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-----\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09----\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10" +const val S127 = "-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10---\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09" +const val S128 = "\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09----\ud83c\udf09-\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10" +const val S129 = "\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-----\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09" +const val S130 = "\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09---\ud83c\udf09\ud83c\udf09---\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-----\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09" +const val S131 = "\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09---\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10----\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10------\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10" +const val S132 = "-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09" +const val S133 = "-\ud83c\udf09\ud83c\udf09--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09----\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09--\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09----\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09--\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09" +const val S134 = "\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09" +const val S135 = "\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09---\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10" +const val S136 = "\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10" +const val S137 = "\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10----\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09---\ud83c\udf09\uD83C\uDF10--" +const val S138 = "\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09------\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10----\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10" +const val S139 = "--\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\ud83c\udf09---\uD83C\uDF10---\uD83C\uDF10-\ud83c\udf09---\uD83C\uDF10" +const val S140 = "\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10----\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10----\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10" +const val S141 = "-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09---\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09----\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10" +const val S142 = "\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10----\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09" +const val S143 = "-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09----\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09---\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10" +const val S144 = "\ud83c\udf09\ud83c\udf09--\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-----\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09" +const val S145 = "---\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09---\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10-\uD83C\uDF10" +const val S146 = "\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09---\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10" +const val S147 = "--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09---\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09---\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10" +const val S148 = "--\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10" +const val S149 = "--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09" +const val S150 = "\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09---\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-----\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09" +const val S151 = "\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09----\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09" +const val S152 = "\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09---\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09" +const val S153 = "-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10" +const val S154 = "\ud83c\udf09\uD83C\uDF10----\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10---\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10----\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09" +const val S155 = "\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09----\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09" +const val S156 = "\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09----\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09------\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09" +const val S157 = "\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-----\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10----\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10" +const val S158 = "\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10" +const val S159 = "---\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09------\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09----\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09" +const val S160 = "\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-------\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10--\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10--\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09--\ud83c\udf09" +const val S161 = "-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10-----\ud83c\udf09----\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09-----\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09" +const val S162 = "\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09---\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10" +const val S163 = "-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-----\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10----\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09" +const val S164 = "\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09--------\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09" +const val S165 = "-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09----\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10------\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09---\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09" +const val S166 = "\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10" +const val S167 = "\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09" +const val S168 = "\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09----\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10" +const val S169 = "\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09----\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-----\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10" +const val S170 = "\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10--\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10----\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09" +const val S171 = "---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09----\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-----\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10" +const val S172 = "\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10---\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10" +const val S173 = "\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10---\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10--\ud83c\udf09" +const val S174 = "\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10---\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10----\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10----\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10---\uD83C\uDF10-" +const val S175 = "\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09----\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09----\uD83C\uDF10----\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10" +const val S176 = "----\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-----\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10----\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10" +const val S177 = "\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09---\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10" +const val S178 = "\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10" +const val S179 = "--\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10" +const val S180 = "\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10--\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10" +const val S181 = "-\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09---\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09" +const val S182 = "\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10---\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09" +const val S183 = "\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09-----\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10---\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09----\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09" +const val S184 = "\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09---\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09" +const val S185 = "-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09----\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09----\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10" +const val S186 = "\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-----\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10----\uD83C\uDF10---\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-" +const val S187 = "---\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10--\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10" +const val S188 = "--\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10" +const val S189 = "\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09---\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10--\ud83c\udf09--\uD83C\uDF10---\ud83c\udf09-\ud83c\udf09\uD83C\uDF10---\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09" +const val S190 = "\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09---\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10--\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10----\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10----\ud83c\udf09\uD83C\uDF10" +const val S191 = "-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09---\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09---\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10" +const val S192 = "\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10--\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09---\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09---\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10---\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09--\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-----\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10" +const val S193 = "\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-----\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10----\ud83c\udf09-\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09--\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\ud83c\udf09" +const val S194 = "\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10" +const val S195 = "-\uD83C\uDF10----\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\ud83c\udf09---\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10---\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10--" +const val S196 = "-\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10----\ud83c\udf09\uD83C\uDF10\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10-\ud83c\udf09----\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09-\ud83c\udf09" +const val S197 = "\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10-----\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09\ud83c\udf09--\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\ud83c\udf09\uD83C\uDF10---\ud83c\udf09--\ud83c\udf09-\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09\uD83C\uDF10--\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\uD83C\uDF10\ud83c\udf09-\ud83c\udf09--\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10--\ud83c\udf09-\uD83C\uDF10--\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09-\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10" +const val S198 = "\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10\uD83C\uDF10-\uD83C\uDF10-\ud83c\udf09\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10-----\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09---\ud83c\udf09\ud83c\udf09\ud83c\udf09-\uD83C\uDF10-\ud83c\udf09-\uD83C\uDF10\ud83c\udf09--\ud83c\udf09\ud83c\udf09\ud83c\udf09-\ud83c\udf09-\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\ud83c\udf09-\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\ud83c\udf09\uD83C\uDF10\ud83c\udf09--\uD83C\uDF10\ud83c\udf09\uD83C\uDF10-\ud83c\udf09\uD83C\uDF10\ud83c\udf09\ud83c\udf09\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\uD83C\uDF10---\uD83C\uDF10\uD83C\uDF10\ud83c\udf09\ud83c\udf09" + +val t0 = S0 + S1 + S2 + S3 + S4 + S5 + S6 + S7 + S8 + S9 + S10 + S11 + S12 + S13 + S14 + S15 + S16 + S17 + S18 + S19 + S20 + S21 + S22 + + S23 + S24 + S25 + S26 + S27 + S28 + S29 + S30 + S31 + S32 + S33 + S34 + S35 + S36 + S37 + S38 + S39 + S40 + S41 + S42 + S43 + S44 + + S45 + S46 + S47 + S48 + S49 + S50 + S51 + S52 + S53 + S54 + S55 + S56 + S57 + S58 + S59 + S60 + S61 + S62 + S63 + S64 + S65 + S66 + + S67 + S68 + S69 + S70 + S71 + S72 + S73 + S74 + S75 + S76 + S77 + S78 + S79 + S80 + S81 + S82 + S83 + S84 + S85 + S86 + S87 + S88 + + S89 + S90 + S91 + S92 + S93 + S94 + S95 + S96 + S97 + S98 + S99 + S100 + S101 + S102 + S103 + S104 + S105 + S106 + S107 + S108 + + S109 + S110 + S111 + S112 + S113 + S114 + S115 + S116 + S117 + S118 + S119 + S120 + S121 + S122 + S123 + S124 + S125 + S126 + S127 + + S128 + S129 + S130 + S131 + S132 + S133 + S134 + S135 + S136 + S137 + S138 + S139 + S140 + S141 + S142 + S143 + S144 + S145 + S146 + + S147 + S148 + S149 + S150 + S151 + S152 + S153 + S154 + S155 + S156 + S157 + S158 + S159 + S160 + S161 + S162 + S163 + S164 + S165 + + S166 + S167 + S168 + S169 + S170 + S171 + S172 + S173 + S174 + S175 + S176 + S177 + S178 + S179 + S180 + S181 + S182 + S183 + S184 + + S185 + S186 + S187 + S188 + S189 + S190 + S191 + S192 + S193 + S194 + S195 + S196 + S197 + S198 + +val t = t0 + "OK" + +val SS = arrayOf( + S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19, S20, S21, S22, S23, S24, S25, S26, S27, S28, + S29, S30, S31, S32, S33, S34, S35, S36, S37, S38, S39, S40, S41, S42, S43, S44, S45, S46, S47, S48, S49, S50, S51, S52, S53, S54, S55, + S56, S57, S58, S59, S60, S61, S62, S63, S64, S65, S66, S67, S68, S69, S70, S71, S72, S73, S74, S75, S76, S77, S78, S79, S80, S81, S82, + S83, S84, S85, S86, S87, S88, S89, S90, S91, S92, S93, S94, S95, S96, S97, S98, S99, S100, S101, S102, S103, S104, S105, S106, S107, + S108, S109, S110, S111, S112, S113, S114, S115, S116, S117, S118, S119, S120, S121, S122, S123, S124, S125, S126, S127, S128, S129, + S130, S131, S132, S133, S134, S135, S136, S137, S138, S139, S140, S141, S142, S143, S144, S145, S146, S147, S148, S149, S150, S151, + S152, S153, S154, S155, S156, S157, S158, S159, S160, S161, S162, S163, S164, S165, S166, S167, S168, S169, S170, S171, S172, S173, + S174, S175, S176, S177, S178, S179, S180, S181, S182, S183, S184, S185, S186, S187, S188, S189, S190, S191, S192, S193, S194, S195, + S196, S197, S198, + "OK" +) + diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index b70bfdeb804..fb58726ad80 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -31449,6 +31449,16 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/strings/javaToStringNPE.kt"); } + @TestMetadata("kt13213.kt") + public void testKt13213() throws Exception { + runTest("compiler/testData/codegen/box/strings/kt13213.kt"); + } + + @TestMetadata("kt13213a.kt") + public void testKt13213a() throws Exception { + runTest("compiler/testData/codegen/box/strings/kt13213a.kt"); + } + @TestMetadata("kt2592.kt") public void testKt2592() throws Exception { runTest("compiler/testData/codegen/box/strings/kt2592.kt"); diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 9455b02a30d..821c5a462e2 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -29050,6 +29050,16 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) public static class Strings extends AbstractLightAnalysisModeTest { + @TestMetadata("kt13213.kt") + public void ignoreKt13213() throws Exception { + runTest("compiler/testData/codegen/box/strings/kt13213.kt"); + } + + @TestMetadata("kt13213a.kt") + public void ignoreKt13213a() throws Exception { + runTest("compiler/testData/codegen/box/strings/kt13213a.kt"); + } + private void runTest(String testDataFilePath) throws Exception { KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath); } diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index 36577e9fa5f..b3d257c583b 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -31083,6 +31083,16 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/strings/javaToStringNPE.kt"); } + @TestMetadata("kt13213.kt") + public void testKt13213() throws Exception { + runTest("compiler/testData/codegen/box/strings/kt13213.kt"); + } + + @TestMetadata("kt13213a.kt") + public void testKt13213a() throws Exception { + runTest("compiler/testData/codegen/box/strings/kt13213a.kt"); + } + @TestMetadata("kt2592.kt") public void testKt2592() throws Exception { runTest("compiler/testData/codegen/box/strings/kt2592.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index 4572d5c426a..23e8c5b7443 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -25104,6 +25104,16 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes runTest("compiler/testData/codegen/box/strings/interpolation.kt"); } + @TestMetadata("kt13213.kt") + public void testKt13213() throws Exception { + runTest("compiler/testData/codegen/box/strings/kt13213.kt"); + } + + @TestMetadata("kt13213a.kt") + public void testKt13213a() throws Exception { + runTest("compiler/testData/codegen/box/strings/kt13213a.kt"); + } + @TestMetadata("kt2592.kt") public void testKt2592() throws Exception { runTest("compiler/testData/codegen/box/strings/kt2592.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index 191cc4fa79b..e22daf5b09a 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -25104,6 +25104,16 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/strings/interpolation.kt"); } + @TestMetadata("kt13213.kt") + public void testKt13213() throws Exception { + runTest("compiler/testData/codegen/box/strings/kt13213.kt"); + } + + @TestMetadata("kt13213a.kt") + public void testKt13213a() throws Exception { + runTest("compiler/testData/codegen/box/strings/kt13213a.kt"); + } + @TestMetadata("kt2592.kt") public void testKt2592() throws Exception { runTest("compiler/testData/codegen/box/strings/kt2592.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index 269a94c3140..f74d83ccefc 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -25104,6 +25104,16 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/strings/interpolation.kt"); } + @TestMetadata("kt13213.kt") + public void testKt13213() throws Exception { + runTest("compiler/testData/codegen/box/strings/kt13213.kt"); + } + + @TestMetadata("kt13213a.kt") + public void testKt13213a() throws Exception { + runTest("compiler/testData/codegen/box/strings/kt13213a.kt"); + } + @TestMetadata("kt2592.kt") public void testKt2592() throws Exception { runTest("compiler/testData/codegen/box/strings/kt2592.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java index 31cc5b72dd6..d93848261f8 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java @@ -13530,6 +13530,16 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest runTest("compiler/testData/codegen/box/strings/interpolation.kt"); } + @TestMetadata("kt13213.kt") + public void testKt13213() throws Exception { + runTest("compiler/testData/codegen/box/strings/kt13213.kt"); + } + + @TestMetadata("kt13213a.kt") + public void testKt13213a() throws Exception { + runTest("compiler/testData/codegen/box/strings/kt13213a.kt"); + } + @TestMetadata("kt3571.kt") public void testKt3571() throws Exception { runTest("compiler/testData/codegen/box/strings/kt3571.kt"); From 77a9d14f93a8a0581f276bee3a1e211781791aee Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 17 Nov 2020 20:26:19 +0100 Subject: [PATCH 11/71] Capitalize/decapitalize only ASCII characters across project MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .../kotlin/incremental/IncrementalJsCache.kt | 7 +++-- .../codegen/intrinsics/IntrinsicMethods.java | 8 ++++-- .../messages/PlainTextMessageRenderer.java | 3 +- .../compilerRunner/CompilerOutputParser.kt | 3 +- .../kotlin/daemon/common/FileSystemUtils.kt | 3 +- .../fir/backend/jvm/FirJvmMangleComputer.kt | 3 +- .../jetbrains/kotlin/fir/java/JavaUtils.kt | 5 ++-- .../resolve/FirJavaSyntheticNamesProvider.kt | 4 +-- .../org/jetbrains/kotlin/fir/FirRenderer.kt | 5 ++-- .../jetbrains/kotlin/ir/interpreter/Utils.kt | 14 ++++++---- .../kotlin/ir/interpreter/state/Wrapper.kt | 5 ++-- .../kotlin/kdoc/parser/KDocKnownTag.kt | 4 ++- .../kotlin/kdoc/psi/impl/KDocImpl.kt | 9 +++--- .../compiler/visualizer/FirVisualizer.kt | 3 +- .../annotations/AnnotationUseSiteTarget.kt | 12 ++++---- .../kotlin/builtins/ReflectionTypes.kt | 3 +- .../kotlin/renderer/DescriptorRendererImpl.kt | 5 ++-- .../completion/KDocCompletionContributor.kt | 3 +- ...riableOrParameterNameWithTypeCompletion.kt | 5 ++-- .../kotlin/idea/core/KotlinNameSuggester.kt | 2 +- .../run/KotlinMPPGradleTestTasksProvider.kt | 5 ++-- .../idea/run/MultiplatformTestTasksChooser.kt | 7 +++-- .../jetbrains/kotlin/idea/maven/PomFile.kt | 6 ++-- .../wizard/NewProjectWizardModuleBuilder.kt | 3 +- .../ModulesEditorToolbarDecorator.kt | 5 ++-- .../idea/debugger/FileRankingCalculator.kt | 3 +- .../RecursivePropertyAccessorInspection.kt | 5 ++-- .../kotlin/idea/quickfix/AddArrayOfTypeFix.kt | 5 ++-- .../extractableAnalysisUtil.kt | 7 +++-- .../moveMethod/MoveKotlinMethodProcessor.kt | 3 +- .../kotlin/idea/refactoring/move/moveUtils.kt | 3 +- .../jetbrains/kotlin/j2k/ast/Expressions.kt | 3 +- .../FieldToPropertyProcessing.kt | 3 +- .../src/org/jetbrains/kotlin/js/dce/util.kt | 3 +- .../kotlin/js/config/ErrorTolerancePolicy.kt | 6 ++-- .../intrinsic/functions/factories/ArrayFIF.kt | 2 +- .../kotlin/mainKts/impl/directories.kt | 2 +- .../org/jetbrains/kotlin/kotlinp/printers.kt | 5 ++-- .../ir/buildsystem/SourcesetIR.kt | 3 +- .../NativeTargetConfigurator.kt | 5 ++-- .../kotlin/tools/projectWizard/mpp/mpp.kt | 8 ++---- .../plugins/kotlin/ModulesToIRsConverter.kt | 3 +- .../plugins/templates/TemplatesPlugin.kt | 8 +++--- .../templates/KtorServerTemplate.kt | 28 +++++++++++-------- .../tools/projectWizard/templates/Template.kt | 15 +++++----- .../jetbrains/kotlin/konan/target/utils.kt | 4 ++- ...rtGettersAndSettersToPropertyProcessing.kt | 3 +- .../kotlin/nj2k/ConversionsRunner.kt | 5 ++-- .../BoxedTypeOperationsConversion.kt | 6 ++-- .../conversions/ImplicitCastsConversion.kt | 7 +++-- nj2k/src/org/jetbrains/kotlin/nj2k/utils.kt | 7 +++-- .../base/incremental/incrementalProcessors.kt | 5 ++-- .../idea/KaptGradleProjectImportHandler.kt | 5 ++-- 53 files changed, 173 insertions(+), 121 deletions(-) diff --git a/build-common/src/org/jetbrains/kotlin/incremental/IncrementalJsCache.kt b/build-common/src/org/jetbrains/kotlin/incremental/IncrementalJsCache.kt index e0fc64a147d..ed38bea2a31 100644 --- a/build-common/src/org/jetbrains/kotlin/incremental/IncrementalJsCache.kt +++ b/build-common/src/org/jetbrains/kotlin/incremental/IncrementalJsCache.kt @@ -32,6 +32,7 @@ import org.jetbrains.kotlin.name.parentOrNull import org.jetbrains.kotlin.serialization.SerializerExtensionProtocol import org.jetbrains.kotlin.serialization.deserialization.getClassId import org.jetbrains.kotlin.serialization.js.JsSerializerProtocol +import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly import java.io.DataInput import java.io.DataOutput import java.io.File @@ -326,7 +327,7 @@ private class ProtoDataProvider(private val serializerProtocol: SerializerExtens proto.`package`.apply { val packageNameId = getExtensionOrNull(serializerProtocol.packageFqName) 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) } @@ -347,7 +348,7 @@ fun getProtoData(sourceFile: File, metadata: ByteArray): Map proto.`package`.apply { 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) } @@ -412,4 +413,4 @@ private class PackageMetadataMap(storageFile: File) : BasicStringMap( operator fun get(packageName: String) = storage[packageName] override fun dumpValue(value: ByteArray): String = "Package metadata: ${value.md5()}" -} \ No newline at end of file +} diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/intrinsics/IntrinsicMethods.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/intrinsics/IntrinsicMethods.java index 8feb66f79ab..6742e3763c9 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/intrinsics/IntrinsicMethods.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/intrinsics/IntrinsicMethods.java @@ -17,11 +17,10 @@ package org.jetbrains.kotlin.codegen.intrinsics; import com.google.common.collect.ImmutableList; -import kotlin.text.StringsKt; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.kotlin.builtins.StandardNames; import org.jetbrains.kotlin.builtins.PrimitiveType; +import org.jetbrains.kotlin.builtins.StandardNames; import org.jetbrains.kotlin.codegen.AsmUtil; import org.jetbrains.kotlin.config.JvmTarget; 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.resolve.jvm.JvmPrimitiveType; import org.jetbrains.kotlin.types.expressions.OperatorConventions; +import org.jetbrains.kotlin.util.capitalizeDecapitalize.CapitalizeDecapitalizeKt; import org.jetbrains.org.objectweb.asm.Type; import static org.jetbrains.kotlin.builtins.StandardNames.*; @@ -122,7 +122,9 @@ public class IntrinsicMethods { declareIntrinsicFunction(typeFqName, "toString", 0, TO_STRING); 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() ); } diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/common/messages/PlainTextMessageRenderer.java b/compiler/cli/src/org/jetbrains/kotlin/cli/common/messages/PlainTextMessageRenderer.java index d0f073c4ddd..8f8c9a052cd 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/common/messages/PlainTextMessageRenderer.java +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/common/messages/PlainTextMessageRenderer.java @@ -23,6 +23,7 @@ import org.fusesource.jansi.Ansi; import org.fusesource.jansi.internal.CLibrary; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.kotlin.util.capitalizeDecapitalize.CapitalizeDecapitalizeKt; import java.util.EnumSet; import java.util.Set; @@ -130,7 +131,7 @@ public abstract class PlainTextMessageRenderer implements MessageRenderer { return message; } - return StringsKt.decapitalize(message); + return CapitalizeDecapitalizeKt.decapitalizeAsciiOnly(message); } @NotNull diff --git a/compiler/compiler-runner/src/org/jetbrains/kotlin/compilerRunner/CompilerOutputParser.kt b/compiler/compiler-runner/src/org/jetbrains/kotlin/compilerRunner/CompilerOutputParser.kt index 191634200e9..1cbdd931c35 100644 --- a/compiler/compiler-runner/src/org/jetbrains/kotlin/compilerRunner/CompilerOutputParser.kt +++ b/compiler/compiler-runner/src/org/jetbrains/kotlin/compilerRunner/CompilerOutputParser.kt @@ -30,6 +30,7 @@ import org.xml.sax.SAXException import org.xml.sax.helpers.DefaultHandler import java.io.IOException import java.io.Reader +import java.util.* import javax.xml.parsers.SAXParserFactory object CompilerOutputParser { @@ -124,7 +125,7 @@ object CompilerOutputParser { // We're directly inside the root tag: return } - val qNameLowerCase = qName.toLowerCase() + val qNameLowerCase = qName.toLowerCase(Locale.US) var category: CompilerMessageSeverity? = CATEGORIES[qNameLowerCase] if (category == null) { messageCollector.report(ERROR, "Unknown compiler message tag: $qName") diff --git a/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/FileSystemUtils.kt b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/FileSystemUtils.kt index 85ced4e0299..bd2f3bc400f 100644 --- a/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/FileSystemUtils.kt +++ b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/FileSystemUtils.kt @@ -16,6 +16,7 @@ package org.jetbrains.kotlin.daemon.common +import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly import java.io.File enum class OSKind { @@ -25,7 +26,7 @@ enum class OSKind { Unknown; companion object { - val current: OSKind = System.getProperty("os.name").toLowerCase().let { + val current: OSKind = System.getProperty("os.name").toLowerCaseAsciiOnly().let { when { // partly taken from http://www.code4copy.com/java/post/detecting-os-type-in-java it.startsWith("windows") -> Windows diff --git a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmMangleComputer.kt b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmMangleComputer.kt index 379af1ea5d0..32f7ebd5eb6 100644 --- a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmMangleComputer.kt +++ b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmMangleComputer.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.visitors.FirVisitor import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty open class FirJvmMangleComputer( @@ -210,7 +211,7 @@ open class FirJvmMangleComputer( is ConeStarProjection -> appendSignature(MangleConstant.STAR_MARK) is ConeKotlinTypeProjection -> { if (arg.kind != ProjectionKind.INVARIANT) { - appendSignature(arg.kind.name.toLowerCase()) + appendSignature(arg.kind.name.toLowerCaseAsciiOnly()) appendSignature(MangleConstant.VARIANCE_SEPARATOR) } diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt index 34590214bac..6233ffd1959 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt @@ -47,6 +47,7 @@ import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.types.Variance.* +import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly import org.jetbrains.kotlin.utils.addToStdlib.runIf import java.lang.Deprecated import java.lang.annotation.Documented @@ -140,7 +141,7 @@ internal fun JavaType?.toConeKotlinTypeWithoutEnhancement( val primitiveType = type val kotlinPrimitiveName = when (val javaName = primitiveType?.typeName?.asString()) { null -> "Unit" - else -> javaName.capitalize() + else -> javaName.capitalizeAsciiOnly() } val classId = StandardClassIds.byName(kotlinPrimitiveName) @@ -194,7 +195,7 @@ private fun JavaArrayType.toConeKotlinTypeWithoutEnhancement( ) } } 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") if (forAnnotationValueParameter) { diff --git a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/resolve/FirJavaSyntheticNamesProvider.kt b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/resolve/FirJavaSyntheticNamesProvider.kt index 4071a0932dd..b25132646f7 100644 --- a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/resolve/FirJavaSyntheticNamesProvider.kt +++ b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/resolve/FirJavaSyntheticNamesProvider.kt @@ -9,6 +9,7 @@ import org.jetbrains.kotlin.fir.NoMutableState import org.jetbrains.kotlin.fir.resolve.calls.FirSyntheticNamesProvider import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly +import org.jetbrains.kotlin.util.capitalizeDecapitalize.decapitalizeAsciiOnly import org.jetbrains.kotlin.util.capitalizeDecapitalize.toUpperCaseAsciiOnly @NoMutableState @@ -91,7 +92,7 @@ object FirJavaSyntheticNamesProvider : FirSyntheticNamesProvider() { else -> return emptyList() } val withoutPrefix = identifier.removePrefix(prefix) - val withoutPrefixName = Name.identifier(withoutPrefix.decapitalize()) + val withoutPrefixName = Name.identifier(withoutPrefix.decapitalizeAsciiOnly()) return if (prefix == SETTER_PREFIX) { listOf(withoutPrefixName, Name.identifier(IS_PREFIX + withoutPrefix)) } else { @@ -99,4 +100,3 @@ object FirJavaSyntheticNamesProvider : FirSyntheticNamesProvider() { } } } - diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt index 52db4dc41f5..9223ab2c694 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt @@ -27,6 +27,7 @@ import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid import org.jetbrains.kotlin.name.SpecialNames import org.jetbrains.kotlin.types.Variance +import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly import org.jetbrains.kotlin.utils.Printer 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 { - return modality?.name?.toLowerCase() ?: run { + return modality?.name?.toLowerCaseAsciiOnly() ?: run { if (this is FirCallableMemberDeclaration<*> && this.isOverride) { "open?" } else { @@ -343,7 +344,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM declaration.renderPhaseIfNeeded() print( when (declaration) { - is FirRegularClass -> declaration.classKind.name.toLowerCase().replace("_", " ") + is FirRegularClass -> declaration.classKind.name.toLowerCaseAsciiOnly().replace("_", " ") is FirTypeAlias -> "typealias" is FirSimpleFunction -> "fun" is FirProperty -> { diff --git a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/Utils.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/Utils.kt index 1e0fa463421..452fdd9bd55 100644 --- a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/Utils.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/Utils.kt @@ -7,18 +7,22 @@ package org.jetbrains.kotlin.ir.interpreter import org.jetbrains.kotlin.builtins.StandardNames 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.declarations.* import org.jetbrains.kotlin.ir.expressions.* 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.util.* import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly import org.jetbrains.kotlin.utils.addToStdlib.safeAs 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 } -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() diff --git a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Wrapper.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Wrapper.kt index 4af15568285..4baf6203cb4 100644 --- a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Wrapper.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Wrapper.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.ir.util.defaultType import org.jetbrains.kotlin.ir.util.fqNameForIrSerialization import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable import org.jetbrains.kotlin.ir.util.parentAsClass +import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly import java.lang.invoke.MethodHandle import java.lang.invoke.MethodHandles 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 function is actually a getter, then use "get${property.name.capitalize()}" as method name 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 } } val intrinsicName = getJavaOriginalName(irFunction) @@ -187,4 +188,4 @@ internal class Wrapper(val value: Any, override val irClass: IrClass) : Complex( override fun toString(): String { return "Wrapper(obj='$typeFqName', value=$value)" } -} \ No newline at end of file +} diff --git a/compiler/psi/src/org/jetbrains/kotlin/kdoc/parser/KDocKnownTag.kt b/compiler/psi/src/org/jetbrains/kotlin/kdoc/parser/KDocKnownTag.kt index 9f99a2e4c0e..a3117b36865 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/kdoc/parser/KDocKnownTag.kt +++ b/compiler/psi/src/org/jetbrains/kotlin/kdoc/parser/KDocKnownTag.kt @@ -16,6 +16,8 @@ package org.jetbrains.kotlin.kdoc.parser +import org.jetbrains.kotlin.util.capitalizeDecapitalize.toUpperCaseAsciiOnly + enum class KDocKnownTag(val isReferenceRequired: Boolean, val isSectionStart: Boolean) { AUTHOR(false, false), THROWS(true, false), @@ -37,7 +39,7 @@ enum class KDocKnownTag(val isReferenceRequired: Boolean, val isSectionStart: Bo tagName.subSequence(1, tagName.length) } else tagName try { - return valueOf(name.toString().toUpperCase()) + return valueOf(name.toString().toUpperCaseAsciiOnly()) } catch (ignored: IllegalArgumentException) { } diff --git a/compiler/psi/src/org/jetbrains/kotlin/kdoc/psi/impl/KDocImpl.kt b/compiler/psi/src/org/jetbrains/kotlin/kdoc/psi/impl/KDocImpl.kt index 43c5480fe8c..ea061c747de 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/kdoc/psi/impl/KDocImpl.kt +++ b/compiler/psi/src/org/jetbrains/kotlin/kdoc/psi/impl/KDocImpl.kt @@ -10,13 +10,14 @@ import com.intellij.psi.impl.source.tree.LazyParseablePsiElement import com.intellij.psi.tree.IElementType import org.jetbrains.kotlin.idea.KotlinLanguage 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.lexer.KtTokens 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.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 { @@ -37,10 +38,10 @@ class KDocImpl(buffer: CharSequence?) : LazyParseablePsiElement(KDocTokens.KDOC, getChildrenOfType().firstOrNull { it.name == name } override fun findSectionByTag(tag: KDocKnownTag): KDocSection? = - findSectionByName(tag.name.toLowerCase()) + findSectionByName(tag.name.toLowerCaseAsciiOnly()) override fun findSectionByTag(tag: KDocKnownTag, subjectName: String): KDocSection? = getChildrenOfType().firstOrNull { - it.name == tag.name.toLowerCase() && it.getSubjectName() == subjectName + it.name == tag.name.toLowerCaseAsciiOnly() && it.getSubjectName() == subjectName } } diff --git a/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt b/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt index 2dfee53961c..f2e5e700d34 100644 --- a/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt +++ b/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt @@ -26,6 +26,7 @@ import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType +import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly private typealias Stack = MutableList>> @@ -452,7 +453,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { resolvedQualifier.symbol?.let { val fir = it.fir 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("")) if (fir.superTypeRefs.any { it.render() != "kotlin/Any" }) { data.append(": ") diff --git a/core/compiler.common/src/org/jetbrains/kotlin/descriptors/annotations/AnnotationUseSiteTarget.kt b/core/compiler.common/src/org/jetbrains/kotlin/descriptors/annotations/AnnotationUseSiteTarget.kt index 006bf819be8..8b8bfdbc718 100644 --- a/core/compiler.common/src/org/jetbrains/kotlin/descriptors/annotations/AnnotationUseSiteTarget.kt +++ b/core/compiler.common/src/org/jetbrains/kotlin/descriptors/annotations/AnnotationUseSiteTarget.kt @@ -16,16 +16,18 @@ package org.jetbrains.kotlin.descriptors.annotations +import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly + enum class AnnotationUseSiteTarget(renderName: String? = null) { - FIELD(), - FILE(), - PROPERTY(), + FIELD, + FILE, + PROPERTY, PROPERTY_GETTER("get"), PROPERTY_SETTER("set"), - RECEIVER(), + RECEIVER, CONSTRUCTOR_PARAMETER("param"), SETTER_PARAMETER("setparam"), PROPERTY_DELEGATE_FIELD("delegate"); - val renderName: String = renderName ?: name.toLowerCase() + val renderName: String = renderName ?: name.toLowerCaseAsciiOnly() } diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/ReflectionTypes.kt b/core/descriptors/src/org/jetbrains/kotlin/builtins/ReflectionTypes.kt index ba2c2b3a831..4af442dac9c 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/builtins/ReflectionTypes.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/ReflectionTypes.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.scopes.MemberScope import org.jetbrains.kotlin.types.* +import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly import kotlin.reflect.KProperty 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) { operator fun getValue(types: ReflectionTypes, property: KProperty<*>): ClassDescriptor { - return types.find(property.name.capitalize(), numberOfTypeParameters) + return types.find(property.name.capitalizeAsciiOnly(), numberOfTypeParameters) } } diff --git a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt index a37436911e8..52ba6d26cde 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt @@ -25,6 +25,7 @@ import org.jetbrains.kotlin.resolve.descriptorUtil.declaresOrInheritsDefaultValu import org.jetbrains.kotlin.types.* import org.jetbrains.kotlin.types.ErrorUtils.UninferredParameterTypeConstructor import org.jetbrains.kotlin.types.TypeUtils.CANT_INFER_FUNCTION_PARAM_TYPE +import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly import java.util.* internal class DescriptorRendererImpl( @@ -494,7 +495,7 @@ internal class DescriptorRendererImpl( private fun renderModality(modality: Modality, builder: StringBuilder, defaultModality: Modality) { 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 { @@ -538,7 +539,7 @@ internal class DescriptorRendererImpl( private fun renderMemberKind(callableMember: CallableMemberDescriptor, builder: StringBuilder) { if (DescriptorRendererModifier.MEMBER_KIND !in modifiers) return if (verbose && callableMember.kind != CallableMemberDescriptor.Kind.DECLARATION) { - builder.append("/*").append(callableMember.kind.name.toLowerCase()).append("*/ ") + builder.append("/*").append(callableMember.kind.name.toLowerCaseAsciiOnly()).append("*/ ") } } diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KDocCompletionContributor.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KDocCompletionContributor.kt index be3e43859bc..ff2a78b2658 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KDocCompletionContributor.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/KDocCompletionContributor.kt @@ -43,6 +43,7 @@ import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter import org.jetbrains.kotlin.resolve.scopes.utils.collectDescriptorsFiltered +import java.util.* class KDocCompletionContributor : CompletionContributor() { init { @@ -157,7 +158,7 @@ object KDocTagCompletionProvider : CompletionProvider() { val resultWithPrefix = result.withPrefixMatcher(prefix) KDocKnownTag.values().forEach { if (kdocOwner == null || it.isApplicable(kdocOwner)) { - resultWithPrefix.addElement(LookupElementBuilder.create("@" + it.name.toLowerCase())) + resultWithPrefix.addElement(LookupElementBuilder.create("@" + it.name.toLowerCase(Locale.US))) } } } diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/VariableOrParameterNameWithTypeCompletion.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/VariableOrParameterNameWithTypeCompletion.kt index d206a8109fa..168b07042da 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/VariableOrParameterNameWithTypeCompletion.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/VariableOrParameterNameWithTypeCompletion.kt @@ -24,7 +24,6 @@ import com.intellij.openapi.progress.ProgressManager import com.intellij.openapi.util.Key import com.intellij.psi.PsiClass import com.intellij.psi.PsiElement -import com.intellij.psi.codeStyle.CodeStyleSettingsManager import com.intellij.psi.codeStyle.NameUtil import org.jetbrains.kotlin.descriptors.ClassifierDescriptor 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("") } 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() @@ -281,4 +280,4 @@ class VariableOrParameterNameWithTypeCompletion( object Weigher : LookupElementWeigher("kotlin.parameterNameAndTypePriority") { override fun weigh(element: LookupElement, context: WeighingContext): Int = element.getUserData(PRIORITY_KEY) ?: 0 } -} \ No newline at end of file +} diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinNameSuggester.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinNameSuggester.kt index 69bf8db6270..c55ded190d1 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinNameSuggester.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinNameSuggester.kt @@ -164,7 +164,7 @@ object KotlinNameSuggester { val argText = typeArguments.joinToString(separator = "") { it.typeReference?.typeElement?.render() ?: "" } "$argText${referenceExpression?.text ?: ""}" } - else -> text.capitalize() + else -> text.capitalizeAsciiOnly() } } diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/run/KotlinMPPGradleTestTasksProvider.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/run/KotlinMPPGradleTestTasksProvider.kt index 0cd104807b2..ac6460a7d3f 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/run/KotlinMPPGradleTestTasksProvider.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/run/KotlinMPPGradleTestTasksProvider.kt @@ -13,6 +13,7 @@ import com.intellij.openapi.module.Module import org.jetbrains.kotlin.config.KotlinFacetSettingsProvider import org.jetbrains.kotlin.idea.caches.project.isMPPModule 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.service.project.GradleProjectResolverUtil import org.jetbrains.plugins.gradle.util.GradleConstants @@ -57,6 +58,6 @@ class KotlinMPPGradleTestTasksProvider : GradleTestTasksProvider { private fun getTaskNames(task: TaskData, namePrefix: String): List { val name = task.name - return listOf(namePrefix + CLEAN_NAME_PREFIX + name.capitalize(), namePrefix + name) + return listOf(namePrefix + CLEAN_NAME_PREFIX + name.capitalizeAsciiOnly(), namePrefix + name) } -} \ No newline at end of file +} diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/run/MultiplatformTestTasksChooser.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/run/MultiplatformTestTasksChooser.kt index d9ef2548885..cc908fdc66b 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/run/MultiplatformTestTasksChooser.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/run/MultiplatformTestTasksChooser.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.config.ExternalSystemRunTask import org.jetbrains.kotlin.config.ExternalSystemTestRunTask import org.jetbrains.kotlin.idea.facet.externalSystemTestRunTasks 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.util.TasksToRun import java.util.* @@ -56,7 +57,7 @@ class MultiplatformTestTasksChooser : TestTasksChooser() { return { it.targetName == targetName } } - val taskPrefix = targetName + parts[1].capitalize() + val taskPrefix = targetName + parts[1].capitalizeAsciiOnly() return { it.targetName == targetName && it.taskName.startsWith(taskPrefix) } } @@ -119,9 +120,9 @@ class MultiplatformTestTasksChooser : TestTasksChooser() { } private fun getTaskNames(task: ExternalSystemRunTask): List { - return listOf("clean" + task.taskName.capitalize(), task.taskName) + return listOf("clean" + task.taskName.capitalizeAsciiOnly(), task.taskName) } } private val ExternalSystemRunTask.presentableName: String - get() = targetName ?: (":$taskName") \ No newline at end of file + get() = targetName ?: (":$taskName") diff --git a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/PomFile.kt b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/PomFile.kt index 685485da2c5..896915fecae 100644 --- a/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/PomFile.kt +++ b/idea/idea-maven/src/org/jetbrains/kotlin/idea/maven/PomFile.kt @@ -35,6 +35,7 @@ import org.jetbrains.kotlin.config.TestSourceKotlinRootType import org.jetbrains.kotlin.idea.configuration.RepositoryDescription import org.jetbrains.kotlin.idea.maven.configuration.KotlinMavenConfigurator import org.jetbrains.kotlin.psi.psiUtil.getChildrenOfType +import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly import org.jetbrains.kotlin.utils.SmartList import java.util.* @@ -116,7 +117,7 @@ class PomFile private constructor(private val xmlFile: XmlFile, val domModel: Ma dependency.classifier.stringValue = classifier if (scope != null && scope != MavenArtifactScope.COMPILE) { - dependency.scope.stringValue = scope.name.toLowerCase() + dependency.scope.stringValue = scope.name.toLowerCaseAsciiOnly() } if (optional) { @@ -635,7 +636,8 @@ internal fun MavenDomDependencies.findDependencies(artifacts: List, sco } 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) = (artifact.groupId == null || groupId.stringValue == artifact.groupId) diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt index dbc32b3351b..c906ed661b1 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/NewProjectWizardModuleBuilder.kt @@ -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.secondStep.SecondStepWizardComponent import java.io.File +import java.util.* import javax.swing.JButton import javax.swing.JComponent import com.intellij.openapi.module.Module as IdeaModule @@ -217,7 +218,7 @@ class ModuleNewWizardFirstStep(wizard: IdeWizard) : WizardStep(wizard, Generatio private fun suggestGroupId(): String { val username = SystemProperties.getUserName() ?: 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" } diff --git a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/ModulesEditorToolbarDecorator.kt b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/ModulesEditorToolbarDecorator.kt index ae6b87b2e3d..0cdb7bbdc99 100644 --- a/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/ModulesEditorToolbarDecorator.kt +++ b/idea/idea-new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/wizard/ui/secondStep/modulesEditor/ModulesEditorToolbarDecorator.kt @@ -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.ui.createPanelWithPopupHandler import org.jetbrains.kotlin.utils.addToStdlib.safeAs +import java.util.* import javax.swing.JComponent class ModulesEditorToolbarDecorator( @@ -72,7 +73,7 @@ class ModulesEditorToolbarDecorator( null -> "" } - text = KotlinNewProjectWizardUIBundle.message("editor.modules.add", moduleKindTextToAdd.capitalize()) + text = KotlinNewProjectWizardUIBundle.message("editor.modules.add", moduleKindTextToAdd.capitalize(Locale.US)) } event.presentation.isEnabled } @@ -103,7 +104,7 @@ class ModulesEditorToolbarDecorator( isEnabled = tree.selectedSettingItem is Module text = KotlinNewProjectWizardUIBundle.message( "editor.modules.remove.tooltip", - selectedModuleKindText?.let { " ${it.capitalize()}" }.orEmpty() + selectedModuleKindText?.let { " ${it.capitalize(Locale.US)}" }.orEmpty() ) } event.presentation.isEnabled diff --git a/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/FileRankingCalculator.kt b/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/FileRankingCalculator.kt index 9642a20a218..ba5712cc09c 100644 --- a/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/FileRankingCalculator.kt +++ b/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/FileRankingCalculator.kt @@ -29,6 +29,7 @@ import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.descriptorUtil.varargParameterPosition import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode +import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly import org.jetbrains.kotlin.utils.keysToMap import kotlin.jvm.internal.FunctionBase @@ -172,7 +173,7 @@ abstract class FileRankingCalculator(private val checkClassFqName: Boolean = tru return -MAJOR // 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 { diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/RecursivePropertyAccessorInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/RecursivePropertyAccessorInspection.kt index 12fd0de43b2..0122a85353d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/RecursivePropertyAccessorInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/RecursivePropertyAccessorInspection.kt @@ -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.REFERENCE_TARGET import org.jetbrains.kotlin.synthetic.SyntheticJavaPropertyDescriptor +import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly class RecursivePropertyAccessorInspection : AbstractKotlinInspection() { @@ -98,7 +99,7 @@ class RecursivePropertyAccessorInspection : AbstractKotlinInspection() { if (element !is KtSimpleNameExpression) return false val namedFunction = element.getParentOfType(true) as? KtNamedFunction ?: return false val name = namedFunction.name ?: return false - val referencedName = element.text.capitalize() + val referencedName = element.text.capitalizeAsciiOnly() val isGetter = name == "get$referencedName" val isSetter = name == "set$referencedName" if (!isGetter && !isSetter) return false @@ -117,4 +118,4 @@ class RecursivePropertyAccessorInspection : AbstractKotlinInspection() { return (context[REFERENCE_TARGET, receiver] as? ClassDescriptor)?.kind == ClassKind.OBJECT } } -} \ No newline at end of file +} diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddArrayOfTypeFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddArrayOfTypeFix.kt index 592e3290826..577d34b88fe 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddArrayOfTypeFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddArrayOfTypeFix.kt @@ -15,6 +15,7 @@ import org.jetbrains.kotlin.psi.KtPsiFactory import org.jetbrains.kotlin.psi.createExpressionByPattern import org.jetbrains.kotlin.renderer.DescriptorRenderer import org.jetbrains.kotlin.types.KotlinType +import java.util.* class AddArrayOfTypeFix(expression: KtExpression, expectedType: KotlinType) : KotlinQuickFixAction(expression) { @@ -22,7 +23,7 @@ class AddArrayOfTypeFix(expression: KtExpression, expectedType: KotlinType) : Ko "arrayOf" } else { val typeName = DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(expectedType) - "${typeName.decapitalize()}Of" + "${typeName.decapitalize(Locale.US)}Of" } @@ -34,4 +35,4 @@ class AddArrayOfTypeFix(expression: KtExpression, expectedType: KotlinType) : Ko val arrayOfExpression = KtPsiFactory(project).createExpressionByPattern("$0($1)", prefix, element) element.replace(arrayOfExpression) } -} \ No newline at end of file +} diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractableAnalysisUtil.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractableAnalysisUtil.kt index abd0c6c57ed..3a65b2b679f 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractableAnalysisUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractableAnalysisUtil.kt @@ -27,6 +27,7 @@ import org.jetbrains.kotlin.cfg.pseudocodeTraverser.traverseFollowingInstruction import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.impl.LocalVariableDescriptor 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.findModuleDescriptor 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.NewDeclarationNameValidator 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.introduce.extractionEngine.AnalysisResult.ErrorMessage 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.types.* import org.jetbrains.kotlin.types.typeUtil.makeNullable +import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly import org.jetbrains.kotlin.utils.DFS.* import java.util.* @@ -736,7 +737,7 @@ private fun ExtractionData.suggestFunctionNames(returnType: KotlinType): List val property = expr.getStrictParentOfType() 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)) } } } @@ -834,4 +835,4 @@ fun ExtractableCodeDescriptor.validate(target: ExtractionTarget = ExtractionTarg ) return ExtractableCodeDescriptorWithConflicts(this, conflicts) -} \ No newline at end of file +} diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveMethod/MoveKotlinMethodProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveMethod/MoveKotlinMethodProcessor.kt index 68da4a46552..91b2b6b14b8 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveMethod/MoveKotlinMethodProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveMethod/MoveKotlinMethodProcessor.kt @@ -40,6 +40,7 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall import org.jetbrains.kotlin.resolve.descriptorUtil.isAncestorOf import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver import org.jetbrains.kotlin.resolve.scopes.utils.getImplicitReceiversHierarchy +import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly import org.jetbrains.kotlin.util.containingNonLocalDeclaration class MoveKotlinMethodProcessor( @@ -197,7 +198,7 @@ class MoveKotlinMethodProcessor( argumentExpression } else return } else { - val getterName = "get${targetVariable.nameAsSafeName.identifier.capitalize()}" + val getterName = "get${targetVariable.nameAsSafeName.identifier.capitalizeAsciiOnly()}" JavaPsiFacade.getElementFactory(myProject).createExpressionFromText("${oldReceiver.text}.$getterName()", null) } diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt index 7f51962462a..d80e8063ac9 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveUtils.kt @@ -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.ImplicitReceiver import org.jetbrains.kotlin.types.expressions.DoubleColonLHS +import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly import org.jetbrains.kotlin.utils.addIfNotNull import java.io.File import java.lang.System.currentTimeMillis @@ -407,7 +408,7 @@ fun guessNewFileName(declarationsToMove: Collection): String val newFileName = representative?.run { if (containingKtFile.isScript()) "$name.kts" else "$name.${KotlinFileType.EXTENSION}" } ?: declarationsToMove.first().containingFile.name - return newFileName.capitalize() + return newFileName.capitalizeAsciiOnly() } // returns true if successful diff --git a/j2k/src/org/jetbrains/kotlin/j2k/ast/Expressions.kt b/j2k/src/org/jetbrains/kotlin/j2k/ast/Expressions.kt index 454679d4eca..84361f36e3e 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/ast/Expressions.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/ast/Expressions.kt @@ -22,6 +22,7 @@ import com.intellij.psi.tree.IElementType import org.jetbrains.kotlin.j2k.CodeBuilder import org.jetbrains.kotlin.j2k.append import org.jetbrains.kotlin.lexer.KtTokens +import java.util.* class ArrayAccessExpression(val expression: Expression, val index: Expression, val lvalue: Boolean) : Expression() { override fun generateCode(builder: CodeBuilder) { @@ -294,7 +295,7 @@ class ClassLiteralExpression(val type: Type): Expression() { fun createArrayInitializerExpression(arrayType: ArrayType, initializers: List, needExplicitType: Boolean = true) : MethodCallExpression { val elementType = arrayType.elementType 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() + ">" else -> "arrayOf" } diff --git a/j2k/src/org/jetbrains/kotlin/j2k/usageProcessing/FieldToPropertyProcessing.kt b/j2k/src/org/jetbrains/kotlin/j2k/usageProcessing/FieldToPropertyProcessing.kt index 85111de12ee..c4962f7785e 100644 --- a/j2k/src/org/jetbrains/kotlin/j2k/usageProcessing/FieldToPropertyProcessing.kt +++ b/j2k/src/org/jetbrains/kotlin/j2k/usageProcessing/FieldToPropertyProcessing.kt @@ -23,6 +23,7 @@ import org.jetbrains.kotlin.j2k.AccessorKind import org.jetbrains.kotlin.j2k.CodeConverter import org.jetbrains.kotlin.j2k.ast.* import org.jetbrains.kotlin.j2k.dot +import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly class FieldToPropertyProcessing( private val field: PsiField, @@ -167,5 +168,5 @@ class UseAccessorsJavaCodeProcessor(private val factory: PsiElementFactory, priv } private fun accessorName(kind: AccessorKind) = - (if (kind == AccessorKind.GETTER) "get" else "set") + propertyName.capitalize() + (if (kind == AccessorKind.GETTER) "get" else "set") + propertyName.capitalizeAsciiOnly() } diff --git a/js/js.dce/src/org/jetbrains/kotlin/js/dce/util.kt b/js/js.dce/src/org/jetbrains/kotlin/js/dce/util.kt index 2beadabfaf4..f984ad4f411 100644 --- a/js/js.dce/src/org/jetbrains/kotlin/js/dce/util.kt +++ b/js/js.dce/src/org/jetbrains/kotlin/js/dce/util.kt @@ -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.dce.Context.Node +import java.util.* 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 { if (function !is JsNameRef || function.ident != 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 = diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/config/ErrorTolerancePolicy.kt b/js/js.frontend/src/org/jetbrains/kotlin/js/config/ErrorTolerancePolicy.kt index 2b6f18a5d12..c8e7bf657c5 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/config/ErrorTolerancePolicy.kt +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/config/ErrorTolerancePolicy.kt @@ -5,6 +5,8 @@ package org.jetbrains.kotlin.js.config +import java.util.* + enum class ErrorTolerancePolicy(val allowSyntaxErrors: Boolean, val allowSemanticErrors: Boolean) { NONE(false, false), SEMANTIC(false, true), @@ -16,7 +18,7 @@ enum class ErrorTolerancePolicy(val allowSyntaxErrors: Boolean, val allowSemanti val DEFAULT = NONE fun resolvePolicy(key: String): ErrorTolerancePolicy { - return when (key.toUpperCase()) { + return when (key.toUpperCase(Locale.US)) { "NONE" -> NONE "SEMANTIC" -> SEMANTIC "SYNTAX", "ALL" -> ALL @@ -24,4 +26,4 @@ enum class ErrorTolerancePolicy(val allowSyntaxErrors: Boolean, val allowSemanti } } } -} \ No newline at end of file +} diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/functions/factories/ArrayFIF.kt b/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/functions/factories/ArrayFIF.kt index 4d7c269d809..dad6b6bcbd6 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/functions/factories/ArrayFIF.kt +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/functions/factories/ArrayFIF.kt @@ -109,7 +109,7 @@ object ArrayFIF : CompositeFIF() { } private val PrimitiveType.lowerCaseName - get() = typeName.asString().toLowerCase() + get() = typeName.asString().toLowerCase(Locale.US) fun getTag(descriptor: CallableDescriptor, config: JsConfig): String? { if (descriptor !is ConstructorDescriptor) return null diff --git a/libraries/tools/kotlin-main-kts/src/org/jetbrains/kotlin/mainKts/impl/directories.kt b/libraries/tools/kotlin-main-kts/src/org/jetbrains/kotlin/mainKts/impl/directories.kt index bacc11d1858..9e2ff344b97 100644 --- a/libraries/tools/kotlin-main-kts/src/org/jetbrains/kotlin/mainKts/impl/directories.kt +++ b/libraries/tools/kotlin-main-kts/src/org/jetbrains/kotlin/mainKts/impl/directories.kt @@ -39,7 +39,7 @@ class Directories( // 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 private val os: OSKind - get() = getProperty("os.name")?.toLowerCase().let { name -> + get() = getProperty("os.name")?.toLowerCase(Locale.US).let { name -> when { name == null -> OSKind.Unknown name.startsWith("windows") -> OSKind.Windows diff --git a/libraries/tools/kotlinp/src/org/jetbrains/kotlin/kotlinp/printers.kt b/libraries/tools/kotlinp/src/org/jetbrains/kotlin/kotlinp/printers.kt index 965f159863c..a4f6842585e 100644 --- a/libraries/tools/kotlinp/src/org/jetbrains/kotlin/kotlinp/printers.kt +++ b/libraries/tools/kotlinp/src/org/jetbrains/kotlin/kotlinp/printers.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.kotlinp import kotlinx.metadata.* import kotlinx.metadata.jvm.* +import java.util.* private object SpecialCharacters { const val TYPE_ALIAS_MARKER = '^' @@ -309,7 +310,7 @@ private fun printType(flags: Flags, output: (String) -> Unit): KmTypeVisitor = printType(flags) { argumentTypeString -> arguments += buildString { if (variance != KmVariance.INVARIANT) { - append(variance.name.toLowerCase()).append(" ") + append(variance.name.toLowerCase(Locale.US)).append(" ") } append(argumentTypeString) } @@ -399,7 +400,7 @@ private fun printTypeParameter( append("@").append(renderAnnotation(annotation)).append(" ") } if (variance != KmVariance.INVARIANT) { - append(variance.name.toLowerCase()).append(" ") + append(variance.name.toLowerCase(Locale.US)).append(" ") } append("T#$id") if (settings.isVerbose) { diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/SourcesetIR.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/SourcesetIR.kt index fa4737046c9..eb056801f36 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/SourcesetIR.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/ir/buildsystem/SourcesetIR.kt @@ -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.SourcesetType import java.nio.file.Path +import java.util.* sealed class SourcesetIR : BuildSystemIR { @@ -55,4 +56,4 @@ data class MultiplatformSourcesetIR( } val MultiplatformSourcesetIR.sourcesetName - get() = targetName + sourcesetType.name.capitalize() \ No newline at end of file + get() = targetName + sourcesetType.name.capitalize(Locale.US) diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/NativeTargetConfigurator.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/NativeTargetConfigurator.kt index 10b14a1efcd..ab22f552bed 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/NativeTargetConfigurator.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/moduleConfigurators/NativeTargetConfigurator.kt @@ -4,8 +4,6 @@ import kotlinx.collections.immutable.toPersistentList import org.jetbrains.annotations.NonNls import org.jetbrains.kotlin.tools.projectWizard.KotlinNewProjectWizardBundle 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.gradle.* 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.printer.GradlePrinter import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Module +import java.util.* interface NativeTargetConfigurator : TargetConfigurator { val isDesktopTarget: Boolean @@ -22,7 +21,7 @@ interface NativeTargetConfigurator : TargetConfigurator { class RealNativeTargetConfigurator private constructor( override val moduleSubType: ModuleSubType ) : NativeTargetConfigurator, SimpleTargetConfigurator { - override val text: String = moduleSubType.name.capitalize() + override val text: String = moduleSubType.name.capitalize(Locale.US) override val isDesktopTarget: Boolean get() = moduleSubType.isNativeDesktop diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/mpp/mpp.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/mpp/mpp.kt index e8c990b37f5..b8ac41ea6a5 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/mpp/mpp.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/mpp/mpp.kt @@ -7,12 +7,9 @@ package org.jetbrains.kotlin.tools.projectWizard.mpp import org.jetbrains.annotations.NonNls 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.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.ModulesToIrConversionData import org.jetbrains.kotlin.tools.projectWizard.plugins.projectPath import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatesPlugin 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.FileTextDescriptor import java.nio.file.Path +import java.util.* @DslMarker annotation class ExpectFileDSL @@ -321,7 +319,7 @@ private fun pathForFileInTarget( sourcesetType: SourcesetType, ) = mppModulePath / Defaults.SRC_DIR / - "${target.name}${sourcesetType.name.capitalize()}" / + "${target.name}${sourcesetType.name.capitalize(Locale.US)}" / mppModule.configurator.kotlinDirectoryName / javaPackage?.asPath() / - filename \ No newline at end of file + filename diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModulesToIRsConverter.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModulesToIRsConverter.kt index 98be940aebe..ca7b830261d 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModulesToIRsConverter.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/ModulesToIRsConverter.kt @@ -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.settings.buildsystem.* import java.nio.file.Path +import java.util.* data class ModulesToIrConversionData( val rootModules: List, @@ -265,7 +266,7 @@ class ModulesToIRsConverter( val (moduleDependencies) = createModuleDependencies(target) mutateProjectStructureByModuleConfigurator(target, modulePath) 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( sourceset.sourcesetType, modulePath / Defaults.SRC_DIR / sourcesetName, diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt index 531d88be318..a34a3405c4c 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/templates/TemplatesPlugin.kt @@ -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.ir.buildsystem.* 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.settingValue import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemPlugin 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.TemplateInterceptionApplicationState import org.jetbrains.kotlin.tools.projectWizard.transformers.interceptors.applyAll -import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.settingValue import java.nio.file.Path +import java.util.* class TemplatesPlugin(context: Context) : Plugin(context) { override val path = pluginPath @@ -174,7 +174,7 @@ class TemplatesPlugin(context: Context) : Plugin(context) { is SrcFilePath -> moduleConfigurator.kotlinDirectoryName 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") } @@ -193,4 +193,4 @@ class TemplatesPlugin(context: Context) : Plugin(context) { templates, fileTemplatesToRender ) -} \ No newline at end of file +} diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/KtorServerTemplate.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/KtorServerTemplate.kt index 9a302a4c508..21bdae1083e 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/KtorServerTemplate.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/KtorServerTemplate.kt @@ -7,6 +7,11 @@ package org.jetbrains.kotlin.tools.projectWizard.templates 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.asPath 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.addWithJavaIntoJvmTarget 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.phases.GenerationPhase 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.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.transformers.interceptors.InterceptionPoint +import java.util.* class KtorServerTemplate : Template() { 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() val import: String - get() = "io.ktor.server.${engineName.decapitalize()}.${engineName.capitalize()}" -} \ No newline at end of file + get() = "io.ktor.server.${engineName.decapitalize(Locale.US)}.${engineName.capitalize(Locale.US)}" +} diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt index d359e09f6d7..9b4f9917e7b 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/templates/Template.kt @@ -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 import org.jetbrains.kotlin.tools.projectWizard.Identificator import org.jetbrains.kotlin.tools.projectWizard.SettingsOwner import org.jetbrains.kotlin.tools.projectWizard.WizardRunConfiguration - - import org.jetbrains.kotlin.tools.projectWizard.core.* - import org.jetbrains.kotlin.tools.projectWizard.core.entity.settings.* import org.jetbrains.kotlin.tools.projectWizard.enumSettingImpl 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.plugins.RunConfigurationsPlugin 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.settings.DisplayableSettingItem 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.TemplateInterceptor import java.nio.file.Path +import java.util.* import kotlin.properties.ReadOnlyProperty interface TemplateEnvironment { @@ -163,7 +164,7 @@ abstract class Template : SettingsOwner, EntitiesOwnerDescriptor, DisplayableSet 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 = @@ -331,4 +332,4 @@ operator fun TemplateApplicationResult.plus(other: TemplateApplicationResult) = irsToAddToBuildFile + other.irsToAddToBuildFile, updateTarget andThen other.updateTarget, updateModuleIR andThen other.updateModuleIR, - ) \ No newline at end of file + ) diff --git a/native/utils/src/org/jetbrains/kotlin/konan/target/utils.kt b/native/utils/src/org/jetbrains/kotlin/konan/target/utils.kt index 4b35065f10d..8254b14cb10 100644 --- a/native/utils/src/org/jetbrains/kotlin/konan/target/utils.kt +++ b/native/utils/src/org/jetbrains/kotlin/konan/target/utils.kt @@ -5,6 +5,8 @@ package org.jetbrains.kotlin.konan.target +import java.util.* + /** * 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 { 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) } } diff --git a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/processings/ConvertGettersAndSettersToPropertyProcessing.kt b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/processings/ConvertGettersAndSettersToPropertyProcessing.kt index ac7f6371f4e..baa5091324f 100644 --- a/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/processings/ConvertGettersAndSettersToPropertyProcessing.kt +++ b/nj2k/nj2k-services/src/org/jetbrains/kotlin/nj2k/postProcessing/processings/ConvertGettersAndSettersToPropertyProcessing.kt @@ -52,6 +52,7 @@ import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.checker.KotlinTypeChecker import org.jetbrains.kotlin.types.isError import org.jetbrains.kotlin.types.typeUtil.isUnit +import org.jetbrains.kotlin.util.capitalizeDecapitalize.decapitalizeAsciiOnly import org.jetbrains.kotlin.util.isJavaDescriptor import org.jetbrains.kotlin.utils.addToStdlib.cast import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull @@ -369,7 +370,7 @@ private class ConvertGettersAndSettersToPropertyStatefulProcessing( return declarations .asSequence() .mapNotNull { it.asPropertyAccessor() } - .groupBy { it.name.removePrefix("is").decapitalize() } + .groupBy { it.name.removePrefix("is").decapitalizeAsciiOnly() } .values .mapNotNull { group -> val realGetter = group.firstIsInstanceOrNull() diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt index 218f4ec7587..40b9b9a4e97 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/ConversionsRunner.kt @@ -21,6 +21,7 @@ import org.jetbrains.kotlin.nj2k.tree.JKLambdaExpression import org.jetbrains.kotlin.nj2k.tree.JKParameter import org.jetbrains.kotlin.nj2k.tree.JKTreeRoot import org.jetbrains.kotlin.utils.addToStdlib.safeAs +import java.util.* object ConversionsRunner { private fun createConversions(context: NewJ2kConverterContext) = listOf( @@ -105,7 +106,7 @@ object ConversionsRunner { private fun Conversion.description(): String { 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 { conversionName == null -> "Converting..." conversionName.endsWith("Conversion") -> "Converting ${words!!.dropLast(1).joinToString(" ")}" @@ -114,4 +115,4 @@ object ConversionsRunner { } private val wordRegex = "[A-Z][a-z0-9]+".toRegex() -} \ No newline at end of file +} diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BoxedTypeOperationsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BoxedTypeOperationsConversion.kt index b3b82aef797..c006b2c9851 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BoxedTypeOperationsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/BoxedTypeOperationsConversion.kt @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.nj2k.conversions import org.jetbrains.kotlin.nj2k.NewJ2kConverterContext import org.jetbrains.kotlin.nj2k.tree.* import org.jetbrains.kotlin.nj2k.types.primitiveTypes - +import java.util.* class BoxedTypeOperationsConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { @@ -40,7 +40,7 @@ class BoxedTypeOperationsConversion(context: NewJ2kConverterContext) : Recursive if (operationType !in primitiveTypeNames) return null return JKCallExpressionImpl( symbolProvider.provideMethodSymbol( - "kotlin.${primitiveTypeName.capitalize()}.to${operationType.capitalize()}" + "kotlin.${primitiveTypeName.capitalize(Locale.US)}.to${operationType.capitalize(Locale.US)}" ), JKArgumentList() ).withFormattingFrom(methodCallExpression) @@ -59,4 +59,4 @@ class BoxedTypeOperationsConversion(context: NewJ2kConverterContext) : Recursive private val primitiveTypeUnwrapRegexp = """([\w.]+)\.(\w+)Value""".toRegex() } -} \ No newline at end of file +} diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitCastsConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitCastsConversion.kt index cbff0757e06..05ca33639fd 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitCastsConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/ImplicitCastsConversion.kt @@ -15,6 +15,7 @@ import org.jetbrains.kotlin.nj2k.types.* import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType import org.jetbrains.kotlin.utils.addToStdlib.safeAs +import java.util.* class ImplicitCastsConversion(context: NewJ2kConverterContext) : RecursiveApplicableConversionBase(context) { override fun applyToElement(element: JKTreeElement): JKTreeElement { @@ -138,8 +139,8 @@ class ImplicitCastsConversion(context: NewJ2kConverterContext) : RecursiveApplic } } - val initialTypeName = expressionTypeAsPrimitive.jvmPrimitiveType.javaKeywordName.capitalize() - val conversionFunctionName = "to${toTypeAsPrimitive.jvmPrimitiveType.javaKeywordName.capitalize()}" + val initialTypeName = expressionTypeAsPrimitive.jvmPrimitiveType.javaKeywordName.capitalize(Locale.US) + val conversionFunctionName = "to${toTypeAsPrimitive.jvmPrimitiveType.javaKeywordName.capitalize(Locale.US)}" return JKQualifiedExpression( copyTreeAndDetach().parenthesizeIfBinaryExpression(), JKCallExpressionImpl( @@ -164,4 +165,4 @@ class ImplicitCastsConversion(context: NewJ2kConverterContext) : RecursiveApplic val lastArrayType = realParameterTypes.lastOrNull()?.arrayInnerType() ?: return realParameterTypes return realParameterTypes.subList(0, realParameterTypes.lastIndex) + lastArrayType } -} \ No newline at end of file +} diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/utils.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/utils.kt index 2e9571b4214..70040a87068 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/utils.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/utils.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.nj2k import org.jetbrains.kotlin.lexer.KtKeywordToken import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.load.java.JvmAbi +import org.jetbrains.kotlin.util.capitalizeDecapitalize.decapitalizeAsciiOnly fun List.replace(element: T, replacer: T): List { val mutableList = toMutableList() @@ -22,14 +23,14 @@ fun String.asGetterName() = ?.takeIf { it.isNotEmpty() && it.first().isUpperCase() || it.startsWith("is") && it.length > 2 && it[2].isUpperCase() - }?.decapitalize() + }?.decapitalizeAsciiOnly() ?.escaped() fun String.asSetterName() = takeIf { JvmAbi.isSetterName(it) } ?.removePrefix("set") ?.takeIf { it.isNotEmpty() && it.first().isUpperCase() } - ?.decapitalize() + ?.decapitalizeAsciiOnly() ?.escaped() fun String.isPossiblyGetterOrSetterName() = @@ -40,4 +41,4 @@ private val KEYWORDS = KtTokens.KEYWORDS.types.map { (it as KtKeywordToken).valu fun String.escaped() = if (this in KEYWORDS || '$' in this) "`$this`" - else this \ No newline at end of file + else this diff --git a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/incremental/incrementalProcessors.kt b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/incremental/incrementalProcessors.kt index a674abc535c..bf1c80acd4b 100644 --- a/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/incremental/incrementalProcessors.kt +++ b/plugins/kapt3/kapt3-base/src/org/jetbrains/kotlin/kapt3/base/incremental/incrementalProcessors.kt @@ -9,6 +9,7 @@ import com.sun.tools.javac.code.Symbol import org.jetbrains.kotlin.kapt3.base.util.KaptLogger import java.io.File import java.net.URI +import java.util.* import javax.annotation.processing.Filer import javax.annotation.processing.ProcessingEnvironment import javax.annotation.processing.Processor @@ -49,7 +50,7 @@ class IncrementalProcessor(private val processor: Processor, private val kind: D if (fromOptions == null) { RuntimeProcType.NON_INCREMENTAL } 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)) { enumValueOf(declaredType) } else { @@ -251,4 +252,4 @@ enum class RuntimeProcType(val isIncremental: Boolean) { AGGREGATING(true), ISOLATING(true), NON_INCREMENTAL(false), -} \ No newline at end of file +} diff --git a/plugins/kapt3/kapt3-idea/src/org/jetbrains/kotlin/kapt/idea/KaptGradleProjectImportHandler.kt b/plugins/kapt3/kapt3-idea/src/org/jetbrains/kotlin/kapt/idea/KaptGradleProjectImportHandler.kt index a91bb459591..68947141c64 100644 --- a/plugins/kapt3/kapt3-idea/src/org/jetbrains/kotlin/kapt/idea/KaptGradleProjectImportHandler.kt +++ b/plugins/kapt3/kapt3-idea/src/org/jetbrains/kotlin/kapt/idea/KaptGradleProjectImportHandler.kt @@ -12,6 +12,7 @@ import org.jetbrains.kotlin.idea.configuration.GradleProjectImportHandler import org.jetbrains.kotlin.idea.facet.KotlinFacet import org.jetbrains.plugins.gradle.model.data.GradleSourceSetData import java.io.File +import java.util.* class KaptGradleProjectImportHandler : GradleProjectImportHandler { override fun importBySourceSet(facet: KotlinFacet, sourceSetNode: DataNode) { @@ -42,7 +43,7 @@ class KaptGradleProjectImportHandler : GradleProjectImportHandler { private fun isKaptCompilerPluginPath(path: String): Boolean { 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()) } -} \ No newline at end of file +} From c569ec1badf7996a8156eda0928967f8f3dbf0b9 Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Fri, 25 Dec 2020 21:17:25 +0300 Subject: [PATCH 12/71] [IR] Add dumpKotlinLike for IrType and IrTypeArgument --- .../kotlin/ir/util/dumpKotlinLike.kt | 49 +++++++++++++++---- 1 file changed, 39 insertions(+), 10 deletions(-) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt index fbf847d5202..9f6b1d36650 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/dumpKotlinLike.kt @@ -29,9 +29,22 @@ import org.jetbrains.kotlin.utils.Printer * * IMPLICIT_DYNAMIC_CAST -- expr /*~> dynamic */ * * REINTERPRET_CAST -- expr /*=> Type */ */ -fun IrElement.dumpKotlinLike(options: KotlinLikeDumpOptions = KotlinLikeDumpOptions()): String { +fun IrElement.dumpKotlinLike(options: KotlinLikeDumpOptions = KotlinLikeDumpOptions()): String = + dumpKotlinLike(this, KotlinLikeDumper::printElement, options) + +fun IrType.dumpKotlinLike(): String = + dumpKotlinLike(this, KotlinLikeDumper::printType) + +fun IrTypeArgument.dumpKotlinLike(): String = + dumpKotlinLike(this, KotlinLikeDumper::printTypeArgument) + +private inline fun dumpKotlinLike( + target: T, + print: KotlinLikeDumper.(T) -> Unit, + options: KotlinLikeDumpOptions = KotlinLikeDumpOptions() +): String { val sb = StringBuilder() - accept(KotlinLikeDumper(Printer(sb, 1, " "), options), null) + KotlinLikeDumper(Printer(sb, 1, " "), options).print(target) return sb.toString() } @@ -98,6 +111,18 @@ enum class FakeOverridesStrategy { */ private class KotlinLikeDumper(val p: Printer, val options: KotlinLikeDumpOptions) : IrElementVisitor { + fun printElement(element: IrElement) { + element.accept(this, null) + } + + fun printType(type: IrType) { + type.printTypeWithNoIndent() + } + + fun printTypeArgument(typeArg: IrTypeArgument) { + typeArg.printTypeArgumentWithNoIndent() + } + override fun visitElement(element: IrElement, data: IrDeclaration?) { val e = "/* ERROR: unsupported element type: " + element.javaClass.simpleName + " */" if (element is IrExpression) { @@ -397,14 +422,7 @@ private class KotlinLikeDumper(val p: Printer, val options: KotlinLikeDumpOption arguments.forEachIndexed { i, typeArg -> p(i > 0, ",") - when (typeArg) { - is IrStarProjection -> - p.printWithNoIndent("*") - is IrTypeProjection -> { - typeArg.variance.printVarianceWithNoIndent() - typeArg.type.printTypeWithNoIndent() - } - } + typeArg.printTypeArgumentWithNoIndent() } p.printWithNoIndent(">") } @@ -420,6 +438,17 @@ private class KotlinLikeDumper(val p: Printer, val options: KotlinLikeDumpOption } } + private fun IrTypeArgument.printTypeArgumentWithNoIndent() { + when (this) { + is IrStarProjection -> + p.printWithNoIndent("*") + is IrTypeProjection -> { + variance.printVarianceWithNoIndent() + type.printTypeWithNoIndent() + } + } + } + override fun visitTypeAlias(declaration: IrTypeAlias, data: IrDeclaration?) { declaration.printlnAnnotations() p.printIndent() From 9ac7c3d8bc2513122eadd8a5910b133e1820bfa4 Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Mon, 28 Dec 2020 14:43:35 +0300 Subject: [PATCH 13/71] [Wasm] Remove usage of descriptor based API usage from WasmSharedVariablesManager --- .../wasm/lower/WasmSharedVariablesManager.kt | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/WasmSharedVariablesManager.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/WasmSharedVariablesManager.kt index 133bdabec6b..17c45f0ebe7 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/WasmSharedVariablesManager.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/WasmSharedVariablesManager.kt @@ -7,11 +7,8 @@ package org.jetbrains.kotlin.backend.wasm.lower import org.jetbrains.kotlin.backend.common.ir.SharedVariablesManager import org.jetbrains.kotlin.backend.common.lower.InnerClassesSupport -import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.DescriptorVisibilities import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.backend.js.JsCommonBackendContext import org.jetbrains.kotlin.ir.backend.js.JsLoweredDeclarationOrigin @@ -20,24 +17,26 @@ import org.jetbrains.kotlin.ir.builders.declarations.buildClass import org.jetbrains.kotlin.ir.builders.declarations.buildValueParameter import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.impl.IrVariableImpl -import org.jetbrains.kotlin.ir.descriptors.* -import org.jetbrains.kotlin.ir.expressions.* +import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns +import org.jetbrains.kotlin.ir.expressions.IrExpression +import org.jetbrains.kotlin.ir.expressions.IrGetValue +import org.jetbrains.kotlin.ir.expressions.IrSetValue +import org.jetbrains.kotlin.ir.expressions.IrTypeOperator import org.jetbrains.kotlin.ir.expressions.impl.* import org.jetbrains.kotlin.ir.symbols.IrVariableSymbol -import org.jetbrains.kotlin.ir.symbols.impl.IrClassSymbolImpl import org.jetbrains.kotlin.ir.symbols.impl.IrConstructorSymbolImpl import org.jetbrains.kotlin.ir.symbols.impl.IrFieldSymbolImpl import org.jetbrains.kotlin.ir.symbols.impl.IrVariableSymbolImpl import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl import org.jetbrains.kotlin.ir.util.defaultType +import org.jetbrains.kotlin.ir.util.parentAsClass import org.jetbrains.kotlin.name.Name /** * This is a copy of an old version of JS lowering, because JS did platform-specific optimization incompatible with Wasm. * TODO: Revisit */ -@OptIn(ObsoleteDescriptorBasedAPI::class) class WasmSharedVariablesManager(val context: JsCommonBackendContext, val builtIns: IrBuiltIns, val implicitDeclarationsFile: IrPackageFragment) : SharedVariablesManager { override fun declareSharedVariable(originalDeclaration: IrVariable): IrVariable { val initializer = originalDeclaration.initializer ?: IrConstImpl.constNull( @@ -49,10 +48,17 @@ class WasmSharedVariablesManager(val context: JsCommonBackendContext, val builtI val constructorSymbol = closureBoxConstructorDeclaration.symbol val irCall = - IrConstructorCallImpl.fromSymbolDescriptor(initializer.startOffset, initializer.endOffset, closureBoxType, constructorSymbol) - .apply { - putValueArgument(0, initializer) - } + IrConstructorCallImpl( + initializer.startOffset, + initializer.endOffset, + closureBoxType, + constructorSymbol, + closureBoxConstructorDeclaration.parentAsClass.typeParameters.size, + closureBoxConstructorDeclaration.typeParameters.size, + closureBoxConstructorDeclaration.valueParameters.size + ).apply { + putValueArgument(0, initializer) + } return IrVariableImpl( originalDeclaration.startOffset, @@ -211,4 +217,4 @@ class WasmSharedVariablesManager(val context: JsCommonBackendContext, val builtI private fun createClosureBoxConstructorParameterDeclaration(irConstructor: IrConstructor): IrValueParameter { return JsIrBuilder.buildValueParameter(irConstructor,"p", 0, closureBoxPropertyDeclaration.type) } -} \ No newline at end of file +} From 0372dae3cea44cd68af412252d86a09b0a89bffb Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Fri, 25 Dec 2020 21:16:50 +0300 Subject: [PATCH 14/71] [JS scripting] Remove usages of descriptor based APIs and proper support for callable references --- .../js/lower/ScriptRemoveReceiverLowering.kt | 29 +++++++------- .../kotlin/scripting/repl/js/test/ReplTest.kt | 38 ++++++++++++++++++- .../repl/js/JsCoreScriptingCompiler.kt | 7 +++- 3 files changed, 58 insertions(+), 16 deletions(-) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/ScriptRemoveReceiverLowering.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/ScriptRemoveReceiverLowering.kt index 87cadb725da..0bdad880334 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/ScriptRemoveReceiverLowering.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/ScriptRemoveReceiverLowering.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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. */ @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.ir.backend.js.lower import org.jetbrains.kotlin.backend.common.CommonBackendContext import org.jetbrains.kotlin.backend.common.FileLoweringPass -import org.jetbrains.kotlin.descriptors.ScriptDescriptor import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.* @@ -15,10 +14,9 @@ import org.jetbrains.kotlin.ir.expressions.impl.IrConstImpl import org.jetbrains.kotlin.ir.expressions.impl.IrFunctionReferenceImpl import org.jetbrains.kotlin.ir.expressions.impl.IrPropertyReferenceImpl import org.jetbrains.kotlin.ir.symbols.IrClassSymbol -import org.jetbrains.kotlin.ir.types.IrSimpleType -import org.jetbrains.kotlin.ir.types.IrTypeProjection +import org.jetbrains.kotlin.ir.symbols.IrScriptSymbol +import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl -import org.jetbrains.kotlin.ir.types.makeNullable import org.jetbrains.kotlin.ir.util.transformFlat import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid @@ -37,7 +35,6 @@ class ScriptRemoveReceiverLowering(val context: CommonBackendContext) : FileLowe private fun IrExpression.nullConst() = IrConstImpl.constNull(startOffset, endOffset, type.makeNullable()) - @OptIn(ObsoleteDescriptorBasedAPI::class) fun lower(script: IrScript): List { val transformer: IrElementTransformerVoid = object : IrElementTransformerVoid() { override fun visitCall(expression: IrCall): IrExpression { @@ -59,6 +56,8 @@ class ScriptRemoveReceiverLowering(val context: CommonBackendContext) : FileLowe return super.visitFieldAccess(expression) } + private fun isScript(it: IrTypeArgument) = it.typeOrNull?.classifierOrNull is IrScriptSymbol + override fun visitFunctionReference(expression: IrFunctionReference): IrExpression { expression.transformChildrenVoid(this) @@ -66,14 +65,15 @@ class ScriptRemoveReceiverLowering(val context: CommonBackendContext) : FileLowe expression.dispatchReceiver = null val result = with(super.visitFunctionReference(expression) as IrFunctionReference) { - val arguments = (type as IrSimpleType).arguments.filter { - !(it is IrTypeProjection && it.type is IrSimpleType && (it.type as IrSimpleType).classifier.descriptor is ScriptDescriptor) - } + // TODO do we really need to fix type or removing dispatchReceiver is enough? + val arguments = (type as IrSimpleType).arguments.filterNot(::isScript) + val newN = arguments.size - 1 + IrFunctionReferenceImpl( startOffset, endOffset, IrSimpleTypeImpl( - context.ir.symbols.functionN(arguments.size), + context.ir.symbols.functionN(newN), (type as IrSimpleType).hasQuestionMark, arguments, type.annotations @@ -102,14 +102,15 @@ class ScriptRemoveReceiverLowering(val context: CommonBackendContext) : FileLowe expression.dispatchReceiver = null val result = with(super.visitPropertyReference(expression) as IrPropertyReference) { - val arguments = (type as IrSimpleType).arguments.filter { - !(it is IrTypeProjection && it.type is IrSimpleType && (it.type as IrSimpleType).classifier.descriptor is ScriptDescriptor) - } + // TODO do we really need to fix type or removing dispatchReceiver is enough? + val arguments = (type as IrSimpleType).arguments.filterNot(::isScript) + val newN = arguments.size - 1 + IrPropertyReferenceImpl( startOffset, endOffset, IrSimpleTypeImpl( - (if (setter == null) getPropertyN(arguments.size) else getMutablePropertyN(arguments.size)), + (if (setter == null) getPropertyN(newN) else getMutablePropertyN(newN)), (type as IrSimpleType).hasQuestionMark, arguments, type.annotations diff --git a/libraries/scripting/js-test/test/org/jetbrains/kotlin/scripting/repl/js/test/ReplTest.kt b/libraries/scripting/js-test/test/org/jetbrains/kotlin/scripting/repl/js/test/ReplTest.kt index bd72817ec26..6dcca37eef7 100644 --- a/libraries/scripting/js-test/test/org/jetbrains/kotlin/scripting/repl/js/test/ReplTest.kt +++ b/libraries/scripting/js-test/test/org/jetbrains/kotlin/scripting/repl/js/test/ReplTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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. */ @@ -214,6 +214,42 @@ abstract class AbstractReplTestRunner : TestCase() { Assert.assertEquals("10#$@123456_81goo", compileAndEval(lines)) } + @Test + fun testFunctionReference() { + val lines = listOf( + """ + fun foo(k: String) = "O" + k + val f = ::foo + f("K") + """ + ) + + Assert.assertEquals("OK", compileAndEval(lines)) + } + + @Test + fun testPropertyReference() { + val lines = listOf( + """ + var r = "" + val o = "O" + val ro = ::o + r += ro.get() + r += ro() + + var k = "k" + var rk = ::k + r += rk.get() + rk.set("y") + r += rk() + + r + """ + ) + + Assert.assertEquals("OOky", compileAndEval(lines)) + } + private fun compileAndEval(lines: List): Any? { var result: Any? = null getTester().use { tester -> diff --git a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/repl/js/JsCoreScriptingCompiler.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/repl/js/JsCoreScriptingCompiler.kt index 584d28f457c..6407fca3ef7 100644 --- a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/repl/js/JsCoreScriptingCompiler.kt +++ b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/repl/js/JsCoreScriptingCompiler.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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. */ @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.ir.backend.js.JsIrBackendContext import org.jetbrains.kotlin.ir.backend.js.generateJsCode import org.jetbrains.kotlin.ir.backend.js.utils.NameTables +import org.jetbrains.kotlin.ir.descriptors.IrFunctionFactory import org.jetbrains.kotlin.ir.util.ExternalDependenciesGenerator import org.jetbrains.kotlin.ir.util.SymbolTable import org.jetbrains.kotlin.ir.util.generateTypicalIrProviderList @@ -63,6 +64,10 @@ class JsCoreScriptingCompiler( val providers = generateTypicalIrProviderList(module, psi2irContext.irBuiltIns, psi2irContext.symbolTable) val irModuleFragment = psi2ir.generateModuleFragment(psi2irContext, files, providers, emptyList(), null) // TODO: deserializer + psi2irContext.irBuiltIns.let { irBuiltIns -> + irBuiltIns.functionFactory = IrFunctionFactory(irBuiltIns, symbolTable) + } + val context = JsIrBackendContext( irModuleFragment.descriptor, psi2irContext.irBuiltIns, From 14254ceb0bbcedec1c78d251c224108ffd861fae Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Thu, 24 Dec 2020 21:25:00 +0300 Subject: [PATCH 15/71] [IR] Remove no longer needed usages of ObsoleteDescriptorBasedAPI --- .../common/DeepCopyIrTreeWithDeclarations.kt | 24 ++++++------------- .../kotlin/backend/common/ir/IrInlineUtils.kt | 5 ++-- .../kotlin/backend/common/ir/IrUtils.kt | 4 +--- .../kotlin/backend/common/lower/LowerUtils.kt | 16 ++----------- .../backend/js/lower/BridgesConstruction.kt | 4 +--- .../backend/js/lower/JsInnerClassesSupport.kt | 3 +-- .../ir/backend/js/lower/VarargLowering.kt | 4 +--- .../transformers/irToJs/MultiModuleSupport.kt | 4 +--- 8 files changed, 16 insertions(+), 48 deletions(-) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/DeepCopyIrTreeWithDeclarations.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/DeepCopyIrTreeWithDeclarations.kt index 30859ffb09f..77e77478e56 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/DeepCopyIrTreeWithDeclarations.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/DeepCopyIrTreeWithDeclarations.kt @@ -1,29 +1,19 @@ /* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * 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.backend.common -import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.expressions.IrLoop -import org.jetbrains.kotlin.ir.util.* +import org.jetbrains.kotlin.ir.util.DeepCopyIrTreeWithSymbols +import org.jetbrains.kotlin.ir.util.DeepCopySymbolRemapper +import org.jetbrains.kotlin.ir.util.DeepCopyTypeRemapper +import org.jetbrains.kotlin.ir.util.NullDescriptorsRemapper import org.jetbrains.kotlin.ir.visitors.acceptVoid @Suppress("UNCHECKED_CAST") -@OptIn(ObsoleteDescriptorBasedAPI::class) fun T.deepCopyWithVariables(): T { val symbolsRemapper = DeepCopySymbolRemapper(NullDescriptorsRemapper) acceptVoid(symbolsRemapper) @@ -38,4 +28,4 @@ fun T.deepCopyWithVariables(): T { }, null ) as T -} \ No newline at end of file +} diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/IrInlineUtils.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/IrInlineUtils.kt index 44671ca21a8..9598b50078c 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/IrInlineUtils.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/IrInlineUtils.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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. */ @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.backend.common.ir import org.jetbrains.kotlin.backend.common.lower.VariableRemapper import org.jetbrains.kotlin.ir.IrStatement -import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.expressions.impl.IrReturnImpl @@ -83,4 +82,4 @@ private fun IrBody.move( fun IrFunction.inline(target: IrDeclarationParent, arguments: List = listOf()): IrReturnableBlock = IrReturnableBlockImpl(startOffset, endOffset, returnType, IrReturnableBlockSymbolImpl(), null, symbol).apply { statements += body!!.move(this@inline, target, symbol, valueParameters.zip(arguments).toMap()).statements - } \ No newline at end of file + } diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/IrUtils.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/IrUtils.kt index 358e6b8fdfe..ccc4a17a685 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/IrUtils.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/IrUtils.kt @@ -12,7 +12,6 @@ import org.jetbrains.kotlin.descriptors.DescriptorVisibilities import org.jetbrains.kotlin.descriptors.DescriptorVisibility import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.ir.IrElement -import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.builders.declarations.addConstructor import org.jetbrains.kotlin.ir.builders.declarations.buildReceiverParameter import org.jetbrains.kotlin.ir.builders.declarations.buildTypeParameter @@ -26,8 +25,8 @@ import org.jetbrains.kotlin.ir.overrides.FakeOverrideBuilderStrategy import org.jetbrains.kotlin.ir.overrides.IrOverridingUtil import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.symbols.IrSymbol -import org.jetbrains.kotlin.ir.symbols.impl.IrPropertySymbolImpl import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol +import org.jetbrains.kotlin.ir.symbols.impl.IrPropertySymbolImpl import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl import org.jetbrains.kotlin.ir.symbols.impl.IrValueParameterSymbolImpl import org.jetbrains.kotlin.ir.types.* @@ -485,7 +484,6 @@ fun IrClass.addFakeOverrides(irBuiltIns: IrBuiltIns, implementedMembers: List.toArrayLiteral(type: IrType, varargElementType: IrType): IrExpression { // TODO: Use symbols when builtins symbol table is fixes diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/MultiModuleSupport.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/MultiModuleSupport.kt index d7afc286f6f..b5cdf4f6c35 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/MultiModuleSupport.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/MultiModuleSupport.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.ir.backend.js.transformers.irToJs -import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.backend.js.JsIrBackendContext import org.jetbrains.kotlin.ir.backend.js.utils.IrNamer @@ -117,7 +116,6 @@ fun buildCrossModuleReferenceInfo(modules: Iterable): CrossMod return CrossModuleReferenceInfoImpl(map) } -@OptIn(ObsoleteDescriptorBasedAPI::class) fun breakCrossModuleFieldAccess( context: JsIrBackendContext, modules: Iterable @@ -214,4 +212,4 @@ val IrModuleFragment.safeName: String if (result.endsWith('>')) result = result.substring(0, result.length - 1) return sanitizeName("kotlin-$result") - } \ No newline at end of file + } From 02849edc22e45a8a281ed666a24a326df70062bc Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Thu, 24 Dec 2020 21:29:56 +0300 Subject: [PATCH 16/71] [IR] Make descriptor parameter optional for IrFileSymbolImpl and IrExternalPackageFragmentSymbolImpl Remove DescriptorlessIrFileSymbol and use IrFileSymbolImpl instead. --- ...MoveBodilessDeclarationsToSeparatePlace.kt | 31 ++----------------- .../ir/symbols/impl/IrPrivateSymbolBase.kt | 19 +++--------- 2 files changed, 7 insertions(+), 43 deletions(-) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/MoveBodilessDeclarationsToSeparatePlace.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/MoveBodilessDeclarationsToSeparatePlace.kt index 948a3b33230..3a812e56db2 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/MoveBodilessDeclarationsToSeparatePlace.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/MoveBodilessDeclarationsToSeparatePlace.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * 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. */ @@ -7,16 +7,13 @@ package org.jetbrains.kotlin.ir.backend.js.lower import org.jetbrains.kotlin.backend.common.DeclarationTransformer import org.jetbrains.kotlin.backend.common.ir.addChild -import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor import org.jetbrains.kotlin.ir.IrElement -import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.backend.js.JsIrBackendContext import org.jetbrains.kotlin.ir.backend.js.utils.getJsModule import org.jetbrains.kotlin.ir.backend.js.utils.getJsQualifier import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl -import org.jetbrains.kotlin.ir.symbols.IrFileSymbol -import org.jetbrains.kotlin.ir.util.IdSignature +import org.jetbrains.kotlin.ir.symbols.impl.IrFileSymbolImpl import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable import org.jetbrains.kotlin.ir.util.isEffectivelyExternal import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid @@ -45,28 +42,6 @@ private val BODILESS_BUILTIN_CLASSES = listOf( "kotlin.Function" ).map { FqName(it) }.toSet() -private class DescriptorlessIrFileSymbol : IrFileSymbol { - override fun bind(owner: IrFile) { - _owner = owner - } - - @ObsoleteDescriptorBasedAPI - override val descriptor: PackageFragmentDescriptor - get() = error("Operation is unsupported") - - @ObsoleteDescriptorBasedAPI - override val hasDescriptor: Boolean - get() = error("Operation is unsupported") - - private var _owner: IrFile? = null - override val owner get() = _owner!! - - override val isBound get() = _owner != null - - override val signature: IdSignature? - get() = null -} - private fun isBuiltInClass(declaration: IrDeclaration): Boolean = declaration is IrClass && declaration.fqNameWhenAvailable in BODILESS_BUILTIN_CLASSES @@ -85,7 +60,7 @@ class MoveBodilessDeclarationsToSeparatePlaceLowering(private val context: JsIrB val externalPackageFragment by lazy { context.externalPackageFragment.getOrPut(irFile.symbol) { - IrFileImpl(fileEntry = irFile.fileEntry, fqName = irFile.fqName, symbol = DescriptorlessIrFileSymbol()).also { + IrFileImpl(fileEntry = irFile.fileEntry, fqName = irFile.fqName, symbol = IrFileSymbolImpl()).also { it.annotations += irFile.annotations } } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/symbols/impl/IrPrivateSymbolBase.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/symbols/impl/IrPrivateSymbolBase.kt index ad023bbf91d..b1b64619d71 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/symbols/impl/IrPrivateSymbolBase.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/symbols/impl/IrPrivateSymbolBase.kt @@ -1,17 +1,6 @@ /* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * 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.ir.symbols.impl @@ -83,11 +72,11 @@ abstract class IrBindableSymbolBase(descriptor), IrFileSymbol -class IrExternalPackageFragmentSymbolImpl(descriptor: PackageFragmentDescriptor) : +class IrExternalPackageFragmentSymbolImpl(descriptor: PackageFragmentDescriptor? = null) : IrBindableSymbolBase(descriptor), IrExternalPackageFragmentSymbol From 531ba4bb482866a8066e4b5851cb907138e64c6b Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Thu, 24 Dec 2020 21:28:20 +0300 Subject: [PATCH 17/71] [IR] Narrow usage scope of ObsoleteDescriptorBasedAPI in CheckIrElementVisitor --- .../backend/common/CheckIrElementVisitor.kt | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/CheckIrElementVisitor.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/CheckIrElementVisitor.kt index e2a4acd5d27..a987c95fdb2 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/CheckIrElementVisitor.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/CheckIrElementVisitor.kt @@ -1,17 +1,6 @@ /* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * 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.backend.common @@ -32,7 +21,6 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid typealias ReportError = (element: IrElement, message: String) -> Unit -@OptIn(ObsoleteDescriptorBasedAPI::class) class CheckIrElementVisitor( val irBuiltIns: IrBuiltIns, val reportError: ReportError, @@ -260,6 +248,7 @@ class CheckIrElementVisitor( expression.ensureTypeIs(irBuiltIns.nothingType) } + @OptIn(ObsoleteDescriptorBasedAPI::class) override fun visitClass(declaration: IrClass) { super.visitClass(declaration) From 27dd9484ba12f080f15e8a660873c9e5b5bcf5d4 Mon Sep 17 00:00:00 2001 From: Victor Petukhov Date: Mon, 28 Dec 2020 13:39:28 +0300 Subject: [PATCH 18/71] Add missed type arguments for a star projection into the enhanced type arguments list --- .../jvm/checkers/JavaNullabilityChecker.kt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/JavaNullabilityChecker.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/JavaNullabilityChecker.kt index 65f3e09caff..9a6254f7080 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/JavaNullabilityChecker.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/checkers/JavaNullabilityChecker.kt @@ -254,17 +254,17 @@ class JavaNullabilityChecker : AdditionalTypeChecker { null } - @OptIn(ExperimentalStdlibApi::class) private fun enhanceTypeArguments(arguments: List) = - buildList { - for (argument in arguments) { - // TODO: think about star projections with enhancement (e.g. came from Java: Foo<@NotNull ?>) - if (argument.isStarProjection) continue - val argumentType = argument.type - val enhancedArgumentType = if (argumentType is TypeWithEnhancement) argumentType.enhancement else argumentType - val enhancedDeeplyArgumentType = buildTypeWithEnhancement(enhancedArgumentType) - add(argument.replaceType(enhancedDeeplyArgumentType)) + arguments.map { argument -> + // TODO: think about star projections with enhancement (e.g. came from Java: Foo<@NotNull ?>) + if (argument.isStarProjection) { + return@map argument } + val argumentType = argument.type + val enhancedArgumentType = if (argumentType is TypeWithEnhancement) argumentType.enhancement else argumentType + val enhancedDeeplyArgumentType = buildTypeWithEnhancement(enhancedArgumentType) + + argument.replaceType(enhancedDeeplyArgumentType) } fun buildTypeWithEnhancement(type: KotlinType): KotlinType { From 6a6e2a1c77baa80b944d3721ddc23992520e3aa5 Mon Sep 17 00:00:00 2001 From: Yunir Salimzyanov Date: Fri, 25 Dec 2020 13:13:15 +0300 Subject: [PATCH 19/71] Set custom timeout for flaky muted tests synchronization requests Cause: Teamcity requests processes for average 80 seconds --- .../jetbrains/kotlin/test/mutes/TeamCityInteraction.kt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/compiler/tests-mutes/tc-integration/src/org/jetbrains/kotlin/test/mutes/TeamCityInteraction.kt b/compiler/tests-mutes/tc-integration/src/org/jetbrains/kotlin/test/mutes/TeamCityInteraction.kt index c245c1a9f24..00c4b869553 100644 --- a/compiler/tests-mutes/tc-integration/src/org/jetbrains/kotlin/test/mutes/TeamCityInteraction.kt +++ b/compiler/tests-mutes/tc-integration/src/org/jetbrains/kotlin/test/mutes/TeamCityInteraction.kt @@ -2,7 +2,6 @@ package org.jetbrains.kotlin.test.mutes import com.fasterxml.jackson.databind.JsonNode import com.fasterxml.jackson.module.kotlin.treeToValue -import khttp.DEFAULT_TIMEOUT import khttp.responses.Response import khttp.structures.authorization.Authorization @@ -12,7 +11,7 @@ private val headers = mapOf("Content-type" to "application/json", "Accept" to "a private val authUser = object : Authorization { override val header = "Authorization" to "Bearer ${getMandatoryProperty("org.jetbrains.kotlin.test.mutes.teamcity.server.token")}" } -private const val customTimeout = DEFAULT_TIMEOUT * 4 +private const val requestTimeoutSec = 120.0 internal fun getMutedTestsOnTeamcityForRootProject(rootScopeId: String): List { @@ -34,7 +33,7 @@ private fun traverseAll(requestHref: String, requestParams: Map) val jsonResponses = mutableListOf() fun request(url: String, params: Map): String { - val currentResponse = khttp.get(url, headers, params, auth = authUser, timeout = customTimeout) + val currentResponse = khttp.get(url, headers, params, auth = authUser, timeout = requestTimeoutSec) checkResponseAndLog(currentResponse) val currentJsonResponse = jsonObjectMapper.readTree(currentResponse.text) jsonResponses.add(currentJsonResponse) @@ -56,7 +55,7 @@ internal fun uploadMutedTests(uploadMap: Map) { headers = headers, data = jsonObjectMapper.writeValueAsString(muteTestJson), auth = authUser, - timeout = customTimeout + timeout = requestTimeoutSec ) checkResponseAndLog(response) } @@ -68,7 +67,7 @@ internal fun deleteMutedTests(deleteMap: Map) { "$buildServerUrl/app/rest/mutes/id:${muteTestJson.id}", headers = headers, auth = authUser, - timeout = customTimeout + timeout = requestTimeoutSec ) try { checkResponseAndLog(response) From 74077bf6d2749933d3a1c0a9bab2c6e2e8b87061 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 28 Dec 2020 19:15:55 +0300 Subject: [PATCH 20/71] [FIR] Don't attempt to process interface constructors --- .../kotlin/fir/resolve/calls/ConstructorProcessing.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt index f812220e4e2..8892c7ab6c3 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.fir.resolve.calls +import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.builder.buildConstructedClassTypeParameterRef @@ -23,6 +24,7 @@ import org.jetbrains.kotlin.fir.scopes.scopeForClass import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.name.Name +import java.util.* private operator fun Pair?.component1() = this?.first private operator fun Pair<*, T>?.component2() = this?.second @@ -184,10 +186,13 @@ private fun processConstructors( ) } else basicScope } - is FirClassSymbol -> - (matchedSymbol.fir as FirClass<*>).scopeForClass( + is FirClassSymbol -> { + val firClass = matchedSymbol.fir as FirClass<*> + if (firClass.classKind == ClassKind.INTERFACE) null + else firClass.scopeForClass( substitutor, session, bodyResolveComponents.scopeSession ) + } } //TODO: why don't we use declared member scope at this point? From 6230a7861aaf54e32448dda78f5fa226c0b1f1f6 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Wed, 23 Dec 2020 17:35:45 +0100 Subject: [PATCH 21/71] Wizard: do not print plugin repositories in build files if all of them are default ones Also, use space dev repo for kotlin dev plugins --- .../settings.gradle.kts | 1 - .../cli/AbstractBuildFileGenerationTest.kt | 2 +- .../KotlinVersionProviderTestWizardService.kt | 23 +++-------- .../service/KotlinVersionProviderService.kt | 38 +++++++++++++++++-- .../plugins/buildSystem/BuildSystemPlugin.kt | 20 ++++++++++ .../plugins/buildSystem/MavenPlugin.kt | 2 +- .../buildSystem/gradle/GradlePlugin.kt | 11 +----- .../plugins/kotlin/KotlinPlugin.kt | 14 +++++-- .../settings/buildsystem/Repository.kt | 6 +-- 9 files changed, 77 insertions(+), 40 deletions(-) diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/composeDesktopApplication/settings.gradle.kts b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/composeDesktopApplication/settings.gradle.kts index 2be82a340a2..38673624af5 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/composeDesktopApplication/settings.gradle.kts +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/testData/projectTemplatesBuildFileGeneration/composeDesktopApplication/settings.gradle.kts @@ -1,7 +1,6 @@ pluginManagement { repositories { gradlePluginPortal() - mavenCentral() maven { url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") } } diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/tests/org/jetbrains/kotlin/tools/projectWizard/cli/AbstractBuildFileGenerationTest.kt b/libraries/tools/new-project-wizard/new-project-wizard-cli/tests/org/jetbrains/kotlin/tools/projectWizard/cli/AbstractBuildFileGenerationTest.kt index 4afbc62d74d..a0c758fe2eb 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/tests/org/jetbrains/kotlin/tools/projectWizard/cli/AbstractBuildFileGenerationTest.kt +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/tests/org/jetbrains/kotlin/tools/projectWizard/cli/AbstractBuildFileGenerationTest.kt @@ -53,7 +53,7 @@ abstract class AbstractBuildFileGenerationTest : UsefulTestCase() { KOTLIN_VERSION_PLACEHOLDER ).replaceAllTo( listOf( - Repositories.KOTLIN_DEV_BINTRAY.url, + Repositories.JETBRAINS_KOTLIN_DEV.url, KotlinVersionProviderTestWizardService.KOTLIN_DEV_BINTRAY_WITH_CACHE_REDIRECTOR.url, ), KOTLIN_REPO_PLACEHOLDER diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/tests/org/jetbrains/kotlin/tools/projectWizard/cli/KotlinVersionProviderTestWizardService.kt b/libraries/tools/new-project-wizard/new-project-wizard-cli/tests/org/jetbrains/kotlin/tools/projectWizard/cli/KotlinVersionProviderTestWizardService.kt index aad9bd8b7ff..9c3df810f77 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/tests/org/jetbrains/kotlin/tools/projectWizard/cli/KotlinVersionProviderTestWizardService.kt +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/tests/org/jetbrains/kotlin/tools/projectWizard/cli/KotlinVersionProviderTestWizardService.kt @@ -11,9 +11,7 @@ import org.jetbrains.kotlin.tools.projectWizard.core.service.WizardKotlinVersion import org.jetbrains.kotlin.tools.projectWizard.core.service.KotlinVersionKind import org.jetbrains.kotlin.tools.projectWizard.core.service.KotlinVersionProviderService import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind -import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.BintrayRepository -import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository -import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Repository +import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.* class KotlinVersionProviderTestWizardService() : KotlinVersionProviderService(), TestWizardService { private val useCacheRedirector @@ -28,23 +26,14 @@ class KotlinVersionProviderTestWizardService() : KotlinVersionProviderService(), } ) - override fun getKotlinVersionRepository(versionKind: KotlinVersionKind): Repository = if (useCacheRedirector) { - getKotlinVersionRepositoryWithCacheRedirector(versionKind) - } else { - super.getKotlinVersionRepository(versionKind) - } - - private fun getKotlinVersionRepositoryWithCacheRedirector(versionKind: KotlinVersionKind): Repository = when (versionKind) { - KotlinVersionKind.STABLE -> DefaultRepository.MAVEN_CENTRAL - KotlinVersionKind.EAP -> DefaultRepository.MAVEN_CENTRAL - KotlinVersionKind.DEV -> KOTLIN_DEV_BINTRAY_WITH_CACHE_REDIRECTOR - KotlinVersionKind.M -> DefaultRepository.MAVEN_CENTRAL - } + override fun getDevVersionRepository(): Repository = + if (useCacheRedirector) KOTLIN_DEV_BINTRAY_WITH_CACHE_REDIRECTOR + else super.getDevVersionRepository() companion object { - private const val CACHE_REDIRECTOR_BINTRAY_URL = "https://cache-redirector.jetbrains.com/dl.bintray.com" + private const val CACHE_REDIRECTOR_JETBRAINS_SPACE_URL = "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space" - val KOTLIN_DEV_BINTRAY_WITH_CACHE_REDIRECTOR = BintrayRepository("kotlin/kotlin-dev", CACHE_REDIRECTOR_BINTRAY_URL) + val KOTLIN_DEV_BINTRAY_WITH_CACHE_REDIRECTOR = BintrayRepository("kotlin/p/kotlin/dev", CACHE_REDIRECTOR_JETBRAINS_SPACE_URL) val TEST_KOTLIN_VERSION by lazy { diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/service/KotlinVersionProviderService.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/service/KotlinVersionProviderService.kt index 4c152fe8fc6..40597674e77 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/service/KotlinVersionProviderService.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/core/service/KotlinVersionProviderService.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.tools.projectWizard.core.TaskResult import org.jetbrains.kotlin.tools.projectWizard.core.asNullable import org.jetbrains.kotlin.tools.projectWizard.core.compute import org.jetbrains.kotlin.tools.projectWizard.core.safe +import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemType import org.jetbrains.kotlin.tools.projectWizard.plugins.kotlin.ProjectKind import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Repositories @@ -23,7 +24,12 @@ import java.io.InputStreamReader import java.net.URL import java.util.stream.Collectors -data class WizardKotlinVersion(val version: Version, val kind: KotlinVersionKind, val repository: Repository) +data class WizardKotlinVersion( + val version: Version, + val kind: KotlinVersionKind, + val repository: Repository, + val buildSystemPluginRepository: (BuildSystemType) -> Repository?, +) abstract class KotlinVersionProviderService : WizardService { abstract fun getKotlinVersion(projectKind: ProjectKind): WizardKotlinVersion @@ -31,23 +37,47 @@ abstract class KotlinVersionProviderService : WizardService { protected fun kotlinVersionWithDefaultValues(version: Version) = WizardKotlinVersion( version, getKotlinVersionKind(version), - getKotlinVersionRepository(version) + getKotlinVersionRepository(version), + getBuildSystemPluginRepository(getKotlinVersionKind(version), getDevVersionRepository()), ) - protected open fun getKotlinVersionRepository(versionKind: KotlinVersionKind): Repository = when (versionKind) { + + private fun getKotlinVersionRepository(versionKind: KotlinVersionKind): Repository = when (versionKind) { KotlinVersionKind.STABLE, KotlinVersionKind.EAP, KotlinVersionKind.M -> DefaultRepository.MAVEN_CENTRAL - KotlinVersionKind.DEV -> Repositories.KOTLIN_DEV_BINTRAY + KotlinVersionKind.DEV -> getDevVersionRepository() } + protected open fun getDevVersionRepository(): Repository = Repositories.JETBRAINS_KOTLIN_DEV + private fun getKotlinVersionRepository(version: Version) = getKotlinVersionRepository(getKotlinVersionKind(version)) + private fun getKotlinVersionKind(version: Version) = when { "eap" in version.toString().toLowerCase() -> KotlinVersionKind.EAP "rc" in version.toString().toLowerCase() -> KotlinVersionKind.EAP "dev" in version.toString().toLowerCase() -> KotlinVersionKind.DEV "m" in version.toString().toLowerCase() -> KotlinVersionKind.M else -> KotlinVersionKind.STABLE + + + } + + companion object { + fun getBuildSystemPluginRepository( + versionKind: KotlinVersionKind, + devRepository: Repository + ): (BuildSystemType) -> Repository? = + when (versionKind) { + KotlinVersionKind.STABLE, KotlinVersionKind.EAP, KotlinVersionKind.M -> { buildSystem -> + when (buildSystem) { + BuildSystemType.GradleKotlinDsl, BuildSystemType.GradleGroovyDsl -> DefaultRepository.GRADLE_PLUGIN_PORTAL + BuildSystemType.Maven -> DefaultRepository.MAVEN_CENTRAL + BuildSystemType.Jps -> null + } + } + KotlinVersionKind.DEV -> { _ -> devRepository } + } } } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt index 22484825a22..8ddcabcc324 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/BuildSystemPlugin.kt @@ -23,6 +23,7 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.printBuildFile import org.jetbrains.kotlin.tools.projectWizard.plugins.projectPath import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatesPlugin 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.Repository import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.updateBuildFiles @@ -125,6 +126,19 @@ abstract class BuildSystemPlugin(context: Context) : Plugin(context) { ) } +fun Reader.getPluginRepositoriesWithDefaultOnes(): List { + val allRepositories = BuildSystemPlugin.pluginRepositoreis.propertyValue + buildSystemType.getDefaultPluginRepositories() + return allRepositories.filterOutOnlyDefaultPluginRepositories(buildSystemType) +} + +private fun List.filterOutOnlyDefaultPluginRepositories(buildSystem: BuildSystemType): List { + val isAllDefault = all { it.isDefaultPluginRepository(buildSystem) } + return if (isAllDefault) emptyList() else this +} + +private fun Repository.isDefaultPluginRepository(buildSystem: BuildSystemType) = + this in buildSystem.getDefaultPluginRepositories() + fun PluginSettingsOwner.addBuildSystemData(data: BuildSystemData) = pipelineTask(GenerationPhase.PREPARE) { runBefore(BuildSystemPlugin.createModules) withAction { @@ -198,6 +212,12 @@ val Writer.allModulesPaths } } +fun BuildSystemType.getDefaultPluginRepositories(): List = when (this) { + BuildSystemType.GradleKotlinDsl, BuildSystemType.GradleGroovyDsl -> listOf(DefaultRepository.GRADLE_PLUGIN_PORTAL) + BuildSystemType.Maven -> listOf(DefaultRepository.MAVEN_CENTRAL) + BuildSystemType.Jps -> emptyList() +} + val Reader.buildSystemType: BuildSystemType get() = BuildSystemPlugin.type.settingValue diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/MavenPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/MavenPlugin.kt index 1a2913db59d..8f90c747aa8 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/MavenPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/MavenPlugin.kt @@ -52,7 +52,7 @@ class MavenPlugin(context: Context) : BuildSystemPlugin(context) { isAvailable = isMaven withAction { - val repositories = pluginRepositoreis.propertyValue + val repositories = getPluginRepositoriesWithDefaultOnes() updateBuildFiles { buildFile -> buildFile.withIrs(repositories.map(::PluginRepositoryMavenIR)).asSuccess() } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/GradlePlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/GradlePlugin.kt index 7f990a8acd1..dd73fe6ca26 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/GradlePlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/buildSystem/gradle/GradlePlugin.kt @@ -18,10 +18,7 @@ import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.GradlePrinter import org.jetbrains.kotlin.tools.projectWizard.plugins.printer.printBuildFile import org.jetbrains.kotlin.tools.projectWizard.plugins.projectPath import org.jetbrains.kotlin.tools.projectWizard.plugins.templates.TemplatesPlugin -import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.DefaultRepository -import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.Repository import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.updateBuildFiles -import org.jetbrains.kotlin.tools.projectWizard.settings.buildsystem.updateModules import org.jetbrains.kotlin.tools.projectWizard.templates.FileTemplate import org.jetbrains.kotlin.tools.projectWizard.templates.FileTemplateDescriptor @@ -152,13 +149,7 @@ abstract class GradlePlugin(context: Context) : BuildSystemPlugin(context) { withAction { val (createBuildFile, buildFileName) = settingsGradleBuildFileData ?: return@withAction UNIT_SUCCESS - val repositories = buildList { - +pluginRepositoreis.propertyValue.map(::RepositoryIR) - if (isNotEmpty()) { - +RepositoryIR(DefaultRepository.MAVEN_CENTRAL) - +RepositoryIR(DefaultRepository.GRADLE_PLUGIN_PORTAL) - } - }.map(::PluginManagementRepositoryIR) + val repositories = getPluginRepositoriesWithDefaultOnes().map { PluginManagementRepositoryIR(RepositoryIR(it)) } val settingsGradleIR = SettingsGradleFileIR( StructurePlugin.name.settingValue, diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt index d777281bb41..3a9d30cf513 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/plugins/kotlin/KotlinPlugin.kt @@ -55,7 +55,15 @@ class KotlinPlugin(context: Context) : Plugin(context) { val version by property( // todo do not hardcode kind & repository - WizardKotlinVersion(Versions.KOTLIN, KotlinVersionKind.M, Repositories.KOTLIN_EAP_MAVEN_CENTRAL) + WizardKotlinVersion( + Versions.KOTLIN, + KotlinVersionKind.M, + Repositories.KOTLIN_EAP_MAVEN_CENTRAL, + KotlinVersionProviderService.getBuildSystemPluginRepository( + KotlinVersionKind.M, + devRepository = Repositories.JETBRAINS_KOTLIN_DEV + ) + ) ) val initKotlinVersions by pipelineTask(GenerationPhase.PREPARE_GENERATION) { @@ -127,10 +135,10 @@ class KotlinPlugin(context: Context) : Plugin(context) { withAction { val version = version.propertyValue if (version.kind.isStable) return@withAction UNIT_SUCCESS - val pluginRepository = version.repository + val pluginRepository = version.buildSystemPluginRepository(buildSystemType) ?: return@withAction UNIT_SUCCESS BuildSystemPlugin.pluginRepositoreis.addValues(pluginRepository) andThen updateBuildFiles { buildFile -> - buildFile.withIrs(RepositoryIR(pluginRepository)).asSuccess() + buildFile.withIrs(RepositoryIR(version.repository)).asSuccess() } } } diff --git a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Repository.kt b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Repository.kt index f4a0fe533c4..f71ce763c2f 100644 --- a/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Repository.kt +++ b/libraries/tools/new-project-wizard/src/org/jetbrains/kotlin/tools/projectWizard/settings/buildsystem/Repository.kt @@ -38,7 +38,7 @@ data class BintrayRepository(val repository: String, val base: String = "https:/ } data class JetBrainsSpace(val repository: String) : CustomMavenRepository { - override val url: String = "https://maven.pkg.jetbrains.space/public/p/$repository" + override val url: String = "https://maven.pkg.jetbrains.space/$repository" override val idForMaven: String get() = "jetbrains." + repository.replace('/', '.') @@ -49,6 +49,6 @@ object Repositories { val KOTLINX = BintrayRepository("kotlin/kotlinx") val KOTLIN_JS_WRAPPERS_BINTRAY = BintrayRepository("kotlin/kotlin-js-wrappers") val KOTLIN_EAP_MAVEN_CENTRAL = DefaultRepository.MAVEN_CENTRAL - val KOTLIN_DEV_BINTRAY = BintrayRepository("kotlin/kotlin-dev") - val JETBRAINS_COMPOSE_DEV = JetBrainsSpace("compose/dev") + val JETBRAINS_COMPOSE_DEV = JetBrainsSpace("public/p/compose/dev") + val JETBRAINS_KOTLIN_DEV = JetBrainsSpace("kotlin/p/kotlin/dev") } From 0af1c81d6235db32a61685373a20d2b9301ab3cb Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Mon, 21 Dec 2020 15:56:54 +0300 Subject: [PATCH 22/71] Revert "Probably fix issue with creating module descriptor for SDK twice" This reverts commit 92adccde Actually this commit didn't fix anything so it can be reverted --- .../kotlin/analyzer/AbstractResolverForProject.kt | 4 ++-- .../analyzer/ResolverForSingleModuleProject.kt | 4 ++-- .../compiler/MultiModuleJavaAnalysisCustomTest.kt | 2 +- .../idea/caches/resolve/IdeaResolverForProject.kt | 12 +++--------- 4 files changed, 8 insertions(+), 14 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AbstractResolverForProject.kt b/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AbstractResolverForProject.kt index 212e38791bb..1e07157dc1f 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AbstractResolverForProject.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AbstractResolverForProject.kt @@ -52,7 +52,7 @@ abstract class AbstractResolverForProject( assert(moduleInfoToResolvableInfo.values.toSet() == modules.toSet()) } - abstract fun sdkDependency(module: M, ownerModuleDescriptor: ModuleDescriptorImpl?): M? + abstract fun sdkDependency(module: M): M? abstract fun modulesContent(module: M): ModuleContent abstract fun builtInsForModule(module: M): KotlinBuiltIns abstract fun createResolverForModule(descriptor: ModuleDescriptor, moduleInfo: M): ResolverForModule @@ -68,7 +68,7 @@ abstract class AbstractResolverForProject( LazyModuleDependencies( projectContext.storageManager, module, - sdkDependency(module, moduleDescriptor), + sdkDependency(module), this ) ) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/analyzer/ResolverForSingleModuleProject.kt b/compiler/frontend/src/org/jetbrains/kotlin/analyzer/ResolverForSingleModuleProject.kt index d0ca5e77b57..e2c36115eb4 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/analyzer/ResolverForSingleModuleProject.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/analyzer/ResolverForSingleModuleProject.kt @@ -35,7 +35,7 @@ class ResolverForSingleModuleProject( EmptyResolverForProject(), PackageOracleFactory.OptimisticFactory ) { - override fun sdkDependency(module: M, ownerModuleDescriptor: ModuleDescriptorImpl?): M? = sdkDependency + override fun sdkDependency(module: M): M? = sdkDependency init { knownDependencyModuleDescriptors.forEach { (module, descriptor) -> @@ -61,4 +61,4 @@ class ResolverForSingleModuleProject( this, languageVersionSettings ) -} +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/MultiModuleJavaAnalysisCustomTest.kt b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/MultiModuleJavaAnalysisCustomTest.kt index 6040a0c17ce..1e449e6e4bc 100644 --- a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/MultiModuleJavaAnalysisCustomTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/MultiModuleJavaAnalysisCustomTest.kt @@ -96,7 +96,7 @@ class MultiModuleJavaAnalysisCustomTest : KtUsefulTestCase() { projectContext, modules ) { - override fun sdkDependency(module: TestModule, ownerModuleDescriptor: ModuleDescriptorImpl?): TestModule? = null + override fun sdkDependency(module: TestModule): TestModule? = null override fun modulesContent(module: TestModule): ModuleContent = ModuleContent(module, module.kotlinFiles, module.javaFilesScope) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IdeaResolverForProject.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IdeaResolverForProject.kt index 1aa494cd018..c18b9ab4272 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IdeaResolverForProject.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IdeaResolverForProject.kt @@ -58,16 +58,10 @@ class IdeaResolverForProject( private val builtInsCache: BuiltInsCache = (delegateResolver as? IdeaResolverForProject)?.builtInsCache ?: BuiltInsCache(projectContext, this) - override fun sdkDependency(module: IdeaModuleInfo, ownerModuleDescriptor: ModuleDescriptorImpl?): SdkInfo? { + override fun sdkDependency(module: IdeaModuleInfo): SdkInfo? { if (projectContext.project.useCompositeAnalysis) { require(constantSdkDependencyIfAny == null) { "Shouldn't pass SDK dependency manually for composite analysis mode" } } - // This is needed for case when we find sdk dependency for module descriptor of - // that sdk itself. There was some situations when we create additional module - // descriptor for one SdkInfo - if (module is SdkInfo && ownerModuleDescriptor?.getCapability(ModuleInfo.Capability) == module) { - return module - } return constantSdkDependencyIfAny ?: module.findSdkAcrossDependencies() } @@ -138,7 +132,7 @@ class IdeaResolverForProject( private val cache = mutableMapOf() fun getOrCreateIfNeeded(module: IdeaModuleInfo): KotlinBuiltIns = projectContextFromSdkResolver.storageManager.compute { - val sdk = resolverForSdk.sdkDependency(module, null) + val sdk = resolverForSdk.sdkDependency(module) val key = module.platform.idePlatformKind.resolution.getKeyForBuiltIns(module, sdk) val cachedBuiltIns = cache[key] @@ -186,4 +180,4 @@ class IdeaResolverForProject( interface BuiltInsCacheKey { object DefaultBuiltInsKey : BuiltInsCacheKey -} +} \ No newline at end of file From 009add2b41ea76d4ce538b868a2fa2a484dc69e7 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Tue, 29 Dec 2020 12:56:22 +0300 Subject: [PATCH 23/71] [Test] Report difference in test data file in a first place --- .../tests/org/jetbrains/kotlin/test/TestRunner.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/TestRunner.kt b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/TestRunner.kt index fe9b7ccb97f..b4c2ea323b7 100644 --- a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/TestRunner.kt +++ b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/TestRunner.kt @@ -58,7 +58,7 @@ class TestRunner(private val testConfiguration: TestConfiguration) { withAssertionCatching { handler.processAfterAllModules(failedAssertions.isNotEmpty()) } } if (testConfiguration.metaInfoHandlerEnabled) { - withAssertionCatching { + withAssertionCatching(insertExceptionInStart = true) { globalMetadataInfoHandler.compareAllMetaDataInfos() } } @@ -124,11 +124,15 @@ class TestRunner(private val testConfiguration: TestConfiguration) { } } - private inline fun withAssertionCatching(block: () -> Unit) { + private inline fun withAssertionCatching(insertExceptionInStart: Boolean = false, block: () -> Unit) { try { block() } catch (e: AssertionError) { - failedAssertions += e + if (insertExceptionInStart) { + failedAssertions.add(0, e) + } else { + failedAssertions += e + } } } } From 30a5eee48133d46669a97587e8e4f9e5e0b8c2d0 Mon Sep 17 00:00:00 2001 From: Victor Petukhov Date: Tue, 29 Dec 2020 14:21:08 +0300 Subject: [PATCH 24/71] Don't approximate abbreviation during substitution it as it can't be projected at top-level ^KT-42036 Fixed --- ...irOldFrontendDiagnosticsTestGenerated.java | 6 ++ .../ir/FirBlackBoxCodegenTestGenerated.java | 5 + ...pturedTypesSubstitutionIntoAbbreviation.kt | 32 +++++++ ...edTypesSubstitutionIntoAbbreviation.fir.kt | 31 +++++++ ...pturedTypesSubstitutionIntoAbbreviation.kt | 31 +++++++ ...turedTypesSubstitutionIntoAbbreviation.txt | 93 +++++++++++++++++++ .../test/runners/DiagnosticTestGenerated.java | 6 ++ .../codegen/BlackBoxCodegenTestGenerated.java | 5 + .../LightAnalysisModeTestGenerated.java | 5 + .../ir/IrBlackBoxCodegenTestGenerated.java | 5 + .../inference/CapturedTypeConstructor.kt | 2 +- .../kotlin/types/TypeSubstitution.kt | 4 +- .../kotlin/types/TypeSubstitutor.java | 17 +++- .../IrJsCodegenBoxES6TestGenerated.java | 5 + .../IrJsCodegenBoxTestGenerated.java | 5 + .../semantics/JsCodegenBoxTestGenerated.java | 5 + .../IrCodegenBoxWasmTestGenerated.java | 5 + 17 files changed, 258 insertions(+), 4 deletions(-) create mode 100644 compiler/testData/codegen/box/inference/capturedTypesSubstitutionIntoAbbreviation.kt create mode 100644 compiler/testData/diagnostics/tests/inference/capturedTypes/capturedTypesSubstitutionIntoAbbreviation.fir.kt create mode 100644 compiler/testData/diagnostics/tests/inference/capturedTypes/capturedTypesSubstitutionIntoAbbreviation.kt create mode 100644 compiler/testData/diagnostics/tests/inference/capturedTypes/capturedTypesSubstitutionIntoAbbreviation.txt diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java index 6a8aa712660..c8f92fa41b9 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java @@ -12426,6 +12426,12 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti runTest("compiler/testData/diagnostics/tests/inference/capturedTypes/capturedTypeWithTypeVariableSubtyping.kt"); } + @Test + @TestMetadata("capturedTypesSubstitutionIntoAbbreviation.kt") + public void testCapturedTypesSubstitutionIntoAbbreviation() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/capturedTypes/capturedTypesSubstitutionIntoAbbreviation.kt"); + } + @Test @TestMetadata("capturingFromArgumentOfFlexibleType.kt") public void testCapturingFromArgumentOfFlexibleType() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java index 575fd44d2c8..ec7f7882421 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java @@ -13301,6 +13301,11 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/inference/capturedStarProjection.kt"); } + @TestMetadata("capturedTypesSubstitutionIntoAbbreviation.kt") + public void testCapturedTypesSubstitutionIntoAbbreviation() throws Exception { + runTest("compiler/testData/codegen/box/inference/capturedTypesSubstitutionIntoAbbreviation.kt"); + } + @TestMetadata("coercionToUnitForLambdaReturnTypeWithFlexibleConstraint.kt") public void testCoercionToUnitForLambdaReturnTypeWithFlexibleConstraint() throws Exception { runTest("compiler/testData/codegen/box/inference/coercionToUnitForLambdaReturnTypeWithFlexibleConstraint.kt"); diff --git a/compiler/testData/codegen/box/inference/capturedTypesSubstitutionIntoAbbreviation.kt b/compiler/testData/codegen/box/inference/capturedTypesSubstitutionIntoAbbreviation.kt new file mode 100644 index 00000000000..806140fd345 --- /dev/null +++ b/compiler/testData/codegen/box/inference/capturedTypesSubstitutionIntoAbbreviation.kt @@ -0,0 +1,32 @@ +typealias Action = (@UnsafeVariance K) -> Unit +typealias Action2 = (@UnsafeVariance K) -> K + +data class Tag(val action: Action) +data class Tag2(val action: Action) +data class Tag3(val action: Action) +data class Tag4(val action: Action) +data class Tag5(val action: Action2) +data class Tag6(val action: Action) +data class Tag7(val action: Action) +data class Tag8(val action: Action2) + +fun getTag(): Tag<*> = Tag {} +fun getTag2(): Tag2<*> = Tag2 {} +fun getTag3(): Tag3<*> = Tag3 {} +fun getTag4(): Tag4<*> = Tag4 {} +fun getTag5(): Tag5<*> = Tag5 { 1 } +fun getTag6(): Tag6<*> = Tag6 { } +fun getTag7(): Tag7<*> = Tag7 { } +fun getTag8(): Tag8<*> = Tag8 { 1 } + +fun box(): String { + getTag().action + getTag2().action + getTag3().action + getTag4().action + getTag5().action + getTag6().action + getTag7().action + getTag8().action + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/capturedTypes/capturedTypesSubstitutionIntoAbbreviation.fir.kt b/compiler/testData/diagnostics/tests/inference/capturedTypes/capturedTypesSubstitutionIntoAbbreviation.fir.kt new file mode 100644 index 00000000000..32741c4edf6 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/capturedTypes/capturedTypesSubstitutionIntoAbbreviation.fir.kt @@ -0,0 +1,31 @@ +typealias Action = (@UnsafeVariance K) -> Unit +typealias Action2 = (@UnsafeVariance K) -> K + +data class Tag(val action: Action) +data class Tag2(val action: Action) +data class Tag3(val action: Action) +data class Tag4(val action: Action) +data class Tag5(val action: Action2) +data class Tag6(val action: Action) +data class Tag7(val action: Action) +data class Tag8(val action: Action2) + +fun getTag(): Tag<*> = Tag {} +fun getTag2(): Tag2<*> = Tag2 {} +fun getTag3(): Tag3<*> = Tag3 {} +fun getTag4(): Tag4<*> = Tag4 {} +fun getTag5(): Tag5<*> = Tag5 { 1 } +fun getTag6(): Tag6<*> = Tag6 { } +fun getTag7(): Tag7<*> = Tag7 { } +fun getTag8(): Tag8<*> = Tag8 { 1 } + +fun main() { + ")!>getTag().action + ")!>getTag2().action + ")!>getTag3().action + ")!>getTag4().action + ")!>getTag5().action + ")!>getTag6().action + ")!>getTag7().action + ")!>getTag8().action +} diff --git a/compiler/testData/diagnostics/tests/inference/capturedTypes/capturedTypesSubstitutionIntoAbbreviation.kt b/compiler/testData/diagnostics/tests/inference/capturedTypes/capturedTypesSubstitutionIntoAbbreviation.kt new file mode 100644 index 00000000000..188a3e3778d --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/capturedTypes/capturedTypesSubstitutionIntoAbbreviation.kt @@ -0,0 +1,31 @@ +typealias Action = (@UnsafeVariance K) -> Unit +typealias Action2 = (@UnsafeVariance K) -> K + +data class Tag(val action: Action) +data class Tag2(val action: Action) +data class Tag3(val action: Action) +data class Tag4(val action: Action) +data class Tag5(val action: Action2) +data class Tag6(val action: Action) +data class Tag7(val action: Action) +data class Tag8(val action: Action2) + +fun getTag(): Tag<*> = Tag {} +fun getTag2(): Tag2<*> = Tag2 {} +fun getTag3(): Tag3<*> = Tag3 {} +fun getTag4(): Tag4<*> = Tag4 {} +fun getTag5(): Tag5<*> = Tag5 { 1 } +fun getTag6(): Tag6<*> = Tag6 { } +fun getTag7(): Tag7<*> = Tag7 { } +fun getTag8(): Tag8<*> = Tag8 { 1 } + +fun main() { + /* = (kotlin.Any?) -> kotlin.Unit */")!>getTag().action + /* = (kotlin.Any?) -> kotlin.Unit */")!>getTag2().action + /* = (kotlin.Any?) -> kotlin.Unit */")!>getTag3().action + /* = (kotlin.Any?) -> kotlin.Unit */")!>getTag4().action + kotlin.Any?")!>getTag5().action + /* = (kotlin.Any?) -> kotlin.Unit */")!>getTag6().action + /* = (kotlin.Any?) -> kotlin.Unit */")!>getTag7().action + kotlin.Any?")!>getTag8().action +} diff --git a/compiler/testData/diagnostics/tests/inference/capturedTypes/capturedTypesSubstitutionIntoAbbreviation.txt b/compiler/testData/diagnostics/tests/inference/capturedTypes/capturedTypesSubstitutionIntoAbbreviation.txt new file mode 100644 index 00000000000..8763b8547b7 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/capturedTypes/capturedTypesSubstitutionIntoAbbreviation.txt @@ -0,0 +1,93 @@ +package + +public fun getTag(): Tag<*> +public fun getTag2(): Tag2<*> +public fun getTag3(): Tag3<*> +public fun getTag4(): Tag4<*> +public fun getTag5(): Tag5<*> +public fun getTag6(): Tag6<*> +public fun getTag7(): Tag7<*> +public fun getTag8(): Tag8<*> +public fun main(): kotlin.Unit + +public final data class Tag { + public constructor Tag(/*0*/ action: Action /* = (@kotlin.UnsafeVariance L) -> kotlin.Unit */) + public final val action: Action /* = (@kotlin.UnsafeVariance L) -> kotlin.Unit */ + public final operator /*synthesized*/ fun component1(): Action /* = (@kotlin.UnsafeVariance L) -> kotlin.Unit */ + public final /*synthesized*/ fun copy(/*0*/ action: Action /* = (@kotlin.UnsafeVariance L) -> kotlin.Unit */ = ...): Tag + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String +} + +public final data class Tag2 { + public constructor Tag2(/*0*/ action: Action /* = (in @kotlin.UnsafeVariance L) -> kotlin.Unit */) + public final val action: Action /* = (in @kotlin.UnsafeVariance L) -> kotlin.Unit */ + public final operator /*synthesized*/ fun component1(): Action /* = (in @kotlin.UnsafeVariance L) -> kotlin.Unit */ + public final /*synthesized*/ fun copy(/*0*/ action: Action /* = (in @kotlin.UnsafeVariance L) -> kotlin.Unit */ = ...): Tag2 + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String +} + +public final data class Tag3 { + public constructor Tag3(/*0*/ action: Action /* = (@kotlin.UnsafeVariance L) -> kotlin.Unit */) + public final val action: Action /* = (@kotlin.UnsafeVariance L) -> kotlin.Unit */ + public final operator /*synthesized*/ fun component1(): Action /* = (@kotlin.UnsafeVariance L) -> kotlin.Unit */ + public final /*synthesized*/ fun copy(/*0*/ action: Action /* = (@kotlin.UnsafeVariance L) -> kotlin.Unit */ = ...): Tag3 + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String +} + +public final data class Tag4 { + public constructor Tag4(/*0*/ action: Action /* = (in @kotlin.UnsafeVariance L) -> kotlin.Unit */) + public final val action: Action /* = (in @kotlin.UnsafeVariance L) -> kotlin.Unit */ + public final operator /*synthesized*/ fun component1(): Action /* = (in @kotlin.UnsafeVariance L) -> kotlin.Unit */ + public final /*synthesized*/ fun copy(/*0*/ action: Action /* = (in @kotlin.UnsafeVariance L) -> kotlin.Unit */ = ...): Tag4 + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String +} + +public final data class Tag5 { + public constructor Tag5(/*0*/ action: Action2 /* = (@kotlin.UnsafeVariance L) -> L */) + public final val action: Action2 /* = (@kotlin.UnsafeVariance L) -> L */ + public final operator /*synthesized*/ fun component1(): Action2 /* = (@kotlin.UnsafeVariance L) -> L */ + public final /*synthesized*/ fun copy(/*0*/ action: Action2 /* = (@kotlin.UnsafeVariance L) -> L */ = ...): Tag5 + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String +} + +public final data class Tag6 { + public constructor Tag6(/*0*/ action: Action /* = (in @kotlin.UnsafeVariance L) -> kotlin.Unit */) + public final val action: Action /* = (in @kotlin.UnsafeVariance L) -> kotlin.Unit */ + public final operator /*synthesized*/ fun component1(): Action /* = (in @kotlin.UnsafeVariance L) -> kotlin.Unit */ + public final /*synthesized*/ fun copy(/*0*/ action: Action /* = (in @kotlin.UnsafeVariance L) -> kotlin.Unit */ = ...): Tag6 + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String +} + +public final data class Tag7 { + public constructor Tag7(/*0*/ action: Action /* = (@kotlin.UnsafeVariance L) -> kotlin.Unit */) + public final val action: Action /* = (@kotlin.UnsafeVariance L) -> kotlin.Unit */ + public final operator /*synthesized*/ fun component1(): Action /* = (@kotlin.UnsafeVariance L) -> kotlin.Unit */ + public final /*synthesized*/ fun copy(/*0*/ action: Action /* = (@kotlin.UnsafeVariance L) -> kotlin.Unit */ = ...): Tag7 + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String +} + +public final data class Tag8 { + public constructor Tag8(/*0*/ action: Action2 /* = (@kotlin.UnsafeVariance L) -> L */) + public final val action: Action2 /* = (@kotlin.UnsafeVariance L) -> L */ + public final operator /*synthesized*/ fun component1(): Action2 /* = (@kotlin.UnsafeVariance L) -> L */ + public final /*synthesized*/ fun copy(/*0*/ action: Action2 /* = (@kotlin.UnsafeVariance L) -> L */ = ...): Tag8 + public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String +} +public typealias Action = (@kotlin.UnsafeVariance K) -> kotlin.Unit +public typealias Action2 = (@kotlin.UnsafeVariance K) -> K diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index edef6d75d7c..1e2b50cec6e 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -12432,6 +12432,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/inference/capturedTypes/capturedTypeWithTypeVariableSubtyping.kt"); } + @Test + @TestMetadata("capturedTypesSubstitutionIntoAbbreviation.kt") + public void testCapturedTypesSubstitutionIntoAbbreviation() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/capturedTypes/capturedTypesSubstitutionIntoAbbreviation.kt"); + } + @Test @TestMetadata("capturingFromArgumentOfFlexibleType.kt") public void testCapturingFromArgumentOfFlexibleType() throws Exception { diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index fb58726ad80..be970c35be3 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -13301,6 +13301,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/inference/capturedStarProjection.kt"); } + @TestMetadata("capturedTypesSubstitutionIntoAbbreviation.kt") + public void testCapturedTypesSubstitutionIntoAbbreviation() throws Exception { + runTest("compiler/testData/codegen/box/inference/capturedTypesSubstitutionIntoAbbreviation.kt"); + } + @TestMetadata("coercionToUnitForLambdaReturnTypeWithFlexibleConstraint.kt") public void testCoercionToUnitForLambdaReturnTypeWithFlexibleConstraint() throws Exception { runTest("compiler/testData/codegen/box/inference/coercionToUnitForLambdaReturnTypeWithFlexibleConstraint.kt"); diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 821c5a462e2..778943165cb 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -13301,6 +13301,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/inference/capturedStarProjection.kt"); } + @TestMetadata("capturedTypesSubstitutionIntoAbbreviation.kt") + public void testCapturedTypesSubstitutionIntoAbbreviation() throws Exception { + runTest("compiler/testData/codegen/box/inference/capturedTypesSubstitutionIntoAbbreviation.kt"); + } + @TestMetadata("coercionToUnitForLambdaReturnTypeWithFlexibleConstraint.kt") public void testCoercionToUnitForLambdaReturnTypeWithFlexibleConstraint() throws Exception { runTest("compiler/testData/codegen/box/inference/coercionToUnitForLambdaReturnTypeWithFlexibleConstraint.kt"); diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index b3d257c583b..a500d9a9d3a 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -13301,6 +13301,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/inference/capturedStarProjection.kt"); } + @TestMetadata("capturedTypesSubstitutionIntoAbbreviation.kt") + public void testCapturedTypesSubstitutionIntoAbbreviation() throws Exception { + runTest("compiler/testData/codegen/box/inference/capturedTypesSubstitutionIntoAbbreviation.kt"); + } + @TestMetadata("coercionToUnitForLambdaReturnTypeWithFlexibleConstraint.kt") public void testCoercionToUnitForLambdaReturnTypeWithFlexibleConstraint() throws Exception { runTest("compiler/testData/codegen/box/inference/coercionToUnitForLambdaReturnTypeWithFlexibleConstraint.kt"); diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/calls/inference/CapturedTypeConstructor.kt b/core/descriptors/src/org/jetbrains/kotlin/resolve/calls/inference/CapturedTypeConstructor.kt index efe2dcf1829..d9469f312e3 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/calls/inference/CapturedTypeConstructor.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/calls/inference/CapturedTypeConstructor.kt @@ -122,7 +122,7 @@ fun TypeSubstitution.wrapWithCapturingSubstitution(needApproximation: Boolean = this.arguments.zip(this.parameters).map { it.first.createCapturedIfNeeded(it.second) }.toTypedArray(), - approximateCapturedTypes = needApproximation + approximateContravariantCapturedTypes = needApproximation ) else object : DelegatedTypeSubstitution(this@wrapWithCapturingSubstitution) { diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitution.kt b/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitution.kt index 645874abcd1..cf9b1cc6ffd 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitution.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitution.kt @@ -88,7 +88,7 @@ abstract class TypeConstructorSubstitution : TypeSubstitution() { class IndexedParametersSubstitution( val parameters: Array, val arguments: Array, - private val approximateCapturedTypes: Boolean = false + private val approximateContravariantCapturedTypes: Boolean = false ) : TypeSubstitution() { init { assert(parameters.size <= arguments.size) { @@ -103,7 +103,7 @@ class IndexedParametersSubstitution( override fun isEmpty(): Boolean = arguments.isEmpty() - override fun approximateContravariantCapturedTypes() = approximateCapturedTypes + override fun approximateContravariantCapturedTypes() = approximateContravariantCapturedTypes override fun get(key: KotlinType): TypeProjection? { val parameter = key.constructor.declarationDescriptor as? TypeParameterDescriptor ?: return null diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitutor.java b/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitutor.java index 5997d1fed3e..da175c6f513 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitutor.java +++ b/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitutor.java @@ -54,6 +54,19 @@ public class TypeSubstitutor implements TypeSubstitutorMarker { return new TypeSubstitutor(substitution); } + @NotNull + public TypeSubstitutor replaceWithNonApproximatingSubstitution() { + if (!(substitution instanceof IndexedParametersSubstitution) || !substitution.approximateContravariantCapturedTypes()) return this; + + return new TypeSubstitutor( + new IndexedParametersSubstitution( + ((IndexedParametersSubstitution) substitution).getParameters(), + ((IndexedParametersSubstitution) substitution).getArguments(), + false + ) + ); + } + @NotNull public static TypeSubstitutor createChainedSubstitutor(@NotNull TypeSubstitution first, @NotNull TypeSubstitution second) { return create(DisjointKeysUnionTypeSubstitution.create(first, second)); @@ -302,7 +315,9 @@ public class TypeSubstitutor implements TypeSubstitutorMarker { KotlinType substitutedAbbreviation = null; SimpleType abbreviation = SpecialTypesKt.getAbbreviation(type); if (abbreviation != null) { - substitutedAbbreviation = substitute(abbreviation, Variance.INVARIANT); + // We shouldn't approximate abbreviation at the top-level as they can't be projected: below we substitute this always as invariant + TypeSubstitutor substitutorForAbbreviation = replaceWithNonApproximatingSubstitution(); + substitutedAbbreviation = substitutorForAbbreviation.substitute(abbreviation, Variance.INVARIANT); } List substitutedArguments = substituteTypeArguments( diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index 23e8c5b7443..5e88c866dd6 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -11386,6 +11386,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes runTest("compiler/testData/codegen/box/inference/capturedStarProjection.kt"); } + @TestMetadata("capturedTypesSubstitutionIntoAbbreviation.kt") + public void testCapturedTypesSubstitutionIntoAbbreviation() throws Exception { + runTest("compiler/testData/codegen/box/inference/capturedTypesSubstitutionIntoAbbreviation.kt"); + } + @TestMetadata("coercionToUnitWithLastLambdaExpression.kt") public void testCoercionToUnitWithLastLambdaExpression() throws Exception { runTest("compiler/testData/codegen/box/inference/coercionToUnitWithLastLambdaExpression.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index e22daf5b09a..6bf98298989 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -11386,6 +11386,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inference/capturedStarProjection.kt"); } + @TestMetadata("capturedTypesSubstitutionIntoAbbreviation.kt") + public void testCapturedTypesSubstitutionIntoAbbreviation() throws Exception { + runTest("compiler/testData/codegen/box/inference/capturedTypesSubstitutionIntoAbbreviation.kt"); + } + @TestMetadata("coercionToUnitWithLastLambdaExpression.kt") public void testCoercionToUnitWithLastLambdaExpression() throws Exception { runTest("compiler/testData/codegen/box/inference/coercionToUnitWithLastLambdaExpression.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index f74d83ccefc..fb64cbbe42e 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -11451,6 +11451,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inference/capturedStarProjection.kt"); } + @TestMetadata("capturedTypesSubstitutionIntoAbbreviation.kt") + public void testCapturedTypesSubstitutionIntoAbbreviation() throws Exception { + runTest("compiler/testData/codegen/box/inference/capturedTypesSubstitutionIntoAbbreviation.kt"); + } + @TestMetadata("coercionToUnitWithLastLambdaExpression.kt") public void testCoercionToUnitWithLastLambdaExpression() throws Exception { runTest("compiler/testData/codegen/box/inference/coercionToUnitWithLastLambdaExpression.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java index d93848261f8..5f97f29546a 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java @@ -6092,6 +6092,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest runTest("compiler/testData/codegen/box/inference/capturedStarProjection.kt"); } + @TestMetadata("capturedTypesSubstitutionIntoAbbreviation.kt") + public void testCapturedTypesSubstitutionIntoAbbreviation() throws Exception { + runTest("compiler/testData/codegen/box/inference/capturedTypesSubstitutionIntoAbbreviation.kt"); + } + @TestMetadata("earlyReturnInsideCrossinlineLambda.kt") public void testEarlyReturnInsideCrossinlineLambda() throws Exception { runTest("compiler/testData/codegen/box/inference/earlyReturnInsideCrossinlineLambda.kt"); From 826985450e9eca63d569eeca24dc27ef362b9a75 Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Thu, 24 Sep 2020 12:42:27 +0300 Subject: [PATCH 25/71] Add test for KT-42036 --- .../kotlin/fir/Fir2IrTextTestGenerated.java | 5 + .../typeAliasWithUnsafeVariance.fir.kt.txt | 51 +++++++++ .../types/typeAliasWithUnsafeVariance.fir.txt | 104 ++++++++++++++++++ .../types/typeAliasWithUnsafeVariance.kt | 14 +++ .../types/typeAliasWithUnsafeVariance.kt.txt | 51 +++++++++ .../types/typeAliasWithUnsafeVariance.txt | 103 +++++++++++++++++ .../kotlin/ir/IrTextTestCaseGenerated.java | 5 + 7 files changed, 333 insertions(+) create mode 100644 compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.fir.kt.txt create mode 100644 compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.fir.txt create mode 100644 compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.kt create mode 100644 compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.kt.txt create mode 100644 compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.txt diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/fir/Fir2IrTextTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/fir/Fir2IrTextTestGenerated.java index 5f1ec072168..56ed7cdea14 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/fir/Fir2IrTextTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/fir/Fir2IrTextTestGenerated.java @@ -2246,6 +2246,11 @@ public class Fir2IrTextTestGenerated extends AbstractFir2IrTextTest { runTest("compiler/testData/ir/irText/types/starProjection_OI.kt"); } + @TestMetadata("typeAliasWithUnsafeVariance.kt") + public void testTypeAliasWithUnsafeVariance() throws Exception { + runTest("compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.kt"); + } + @TestMetadata("compiler/testData/ir/irText/types/nullChecks") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.fir.kt.txt b/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.fir.kt.txt new file mode 100644 index 00000000000..ad11ecd704c --- /dev/null +++ b/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.fir.kt.txt @@ -0,0 +1,51 @@ +typealias Action = Function1 +data class Tag { + constructor(action: Function1) /* primary */ { + super/*Any*/() + /* () */ + + } + + val action: Function1 + field = action + get + + fun component1(): Function1 { + return .#action + } + + fun copy(action: Function1 = .#action): Tag { + return Tag(action = action) + } + + override fun equals(other: Any?): Boolean { + when { + EQEQEQ(arg0 = , arg1 = other) -> return true + } + when { + other !is Tag -> return false + } + val tmp0_other_with_cast: Tag = other as Tag + when { + EQEQ(arg0 = .#action, arg1 = tmp0_other_with_cast.#action).not() -> return false + } + return true + } + + override fun hashCode(): Int { + return .#action.hashCode() + } + + override fun toString(): String { + return "Tag(" + "action=" + .#action + ")" + } + +} + +fun getTag(): Tag<*> { + return throw Exception() +} + +fun doAction() { + getTag().() /*~> Unit */ +} diff --git a/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.fir.txt b/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.fir.txt new file mode 100644 index 00000000000..66300117be1 --- /dev/null +++ b/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.fir.txt @@ -0,0 +1,104 @@ +FILE fqName: fileName:/typeAliasWithUnsafeVariance.kt + TYPEALIAS name:Action visibility:public expandedType:kotlin.Function1.Action, kotlin.Unit> + TYPE_PARAMETER name:RenderingT index:0 variance: superTypes:[kotlin.Any?] + CLASS CLASS name:Tag modality:FINAL visibility:public [data] superTypes:[kotlin.Any] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Tag.Tag> + TYPE_PARAMETER name:RenderingT index:0 variance:out superTypes:[kotlin.Any?] + CONSTRUCTOR visibility:public <> (action:kotlin.Function1.Tag, kotlin.Unit>) returnType:.Tag.Tag> [primary] + VALUE_PARAMETER name:action index:0 type:kotlin.Function1.Tag, kotlin.Unit> + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Tag modality:FINAL visibility:public [data] superTypes:[kotlin.Any]' + PROPERTY name:action visibility:public modality:FINAL [val] + FIELD PROPERTY_BACKING_FIELD name:action type:kotlin.Function1.Tag, kotlin.Unit> visibility:private [final] + EXPRESSION_BODY + GET_VAR 'action: kotlin.Function1.Tag, kotlin.Unit> declared in .Tag.' type=kotlin.Function1.Tag, kotlin.Unit> origin=INITIALIZE_PROPERTY_FROM_PARAMETER + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.Tag.Tag>) returnType:kotlin.Function1.Tag, kotlin.Unit> + correspondingProperty: PROPERTY name:action visibility:public modality:FINAL [val] + $this: VALUE_PARAMETER name: type:.Tag.Tag> + BLOCK_BODY + RETURN type=kotlin.Nothing from='public final fun (): kotlin.Function1.Tag, kotlin.Unit> declared in .Tag' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:action type:kotlin.Function1.Tag, kotlin.Unit> visibility:private [final]' type=kotlin.Function1.Tag, kotlin.Unit> origin=null + receiver: GET_VAR ': .Tag.Tag> declared in .Tag.' type=.Tag.Tag> origin=null + FUN name:component1 visibility:public modality:FINAL <> ($this:.Tag.Tag>) returnType:kotlin.Function1.Tag, kotlin.Unit> + $this: VALUE_PARAMETER name: type:.Tag.Tag> + BLOCK_BODY + RETURN type=kotlin.Nothing from='public final fun component1 (): kotlin.Function1.Tag, kotlin.Unit> declared in .Tag' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:action type:kotlin.Function1.Tag, kotlin.Unit> visibility:private [final]' type=kotlin.Function1.Tag, kotlin.Unit> origin=null + receiver: GET_VAR ': .Tag.Tag> declared in .Tag.component1' type=.Tag.Tag> origin=null + FUN name:copy visibility:public modality:FINAL <> ($this:.Tag.Tag>, action:kotlin.Function1.Tag, kotlin.Unit>) returnType:.Tag.Tag> + $this: VALUE_PARAMETER name: type:.Tag.Tag> + VALUE_PARAMETER name:action index:0 type:kotlin.Function1.Tag, kotlin.Unit> + EXPRESSION_BODY + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:action type:kotlin.Function1.Tag, kotlin.Unit> visibility:private [final]' type=kotlin.Function1.Tag, kotlin.Unit> origin=null + receiver: GET_VAR ': .Tag.Tag> declared in .Tag.copy' type=.Tag.Tag> origin=null + BLOCK_BODY + RETURN type=kotlin.Nothing from='public final fun copy (action: kotlin.Function1.Tag, kotlin.Unit>): .Tag.Tag> declared in .Tag' + CONSTRUCTOR_CALL 'public constructor (action: kotlin.Function1.Tag, kotlin.Unit>) [primary] declared in .Tag' type=.Tag.Tag> origin=null + : kotlin.Any + action: GET_VAR 'action: kotlin.Function1.Tag, kotlin.Unit> declared in .Tag.copy' type=kotlin.Function1.Tag, kotlin.Unit> origin=null + FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.Tag.Tag>, other:kotlin.Any?) returnType:kotlin.Boolean + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any + $this: VALUE_PARAMETER GENERATED_DATA_CLASS_MEMBER name: type:.Tag.Tag> + VALUE_PARAMETER GENERATED_DATA_CLASS_MEMBER name:other index:0 type:kotlin.Any? + BLOCK_BODY + WHEN type=kotlin.Unit origin=null + BRANCH + if: CALL 'public final fun EQEQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQEQ + arg0: GET_VAR ': .Tag.Tag> declared in .Tag.equals' type=.Tag.Tag> origin=null + arg1: GET_VAR 'other: kotlin.Any? declared in .Tag.equals' type=kotlin.Any? origin=null + then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Tag' + CONST Boolean type=kotlin.Boolean value=true + WHEN type=kotlin.Unit origin=null + BRANCH + if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=.Tag.Tag> + GET_VAR 'other: kotlin.Any? declared in .Tag.equals' type=kotlin.Any? origin=null + then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Tag' + CONST Boolean type=kotlin.Boolean value=false + VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:.Tag.Tag> [val] + TYPE_OP type=.Tag.Tag> origin=CAST typeOperand=.Tag.Tag> + GET_VAR 'other: kotlin.Any? declared in .Tag.equals' type=kotlin.Any? origin=null + WHEN type=kotlin.Unit origin=null + BRANCH + if: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ + $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:action type:kotlin.Function1.Tag, kotlin.Unit> visibility:private [final]' type=kotlin.Function1.Tag, kotlin.Unit> origin=null + receiver: GET_VAR ': .Tag.Tag> declared in .Tag.equals' type=.Tag.Tag> origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:action type:kotlin.Function1.Tag, kotlin.Unit> visibility:private [final]' type=kotlin.Function1.Tag, kotlin.Unit> origin=null + receiver: GET_VAR 'val tmp_0: .Tag.Tag> [val] declared in .Tag.equals' type=.Tag.Tag> origin=null + then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Tag' + CONST Boolean type=kotlin.Boolean value=false + RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Tag' + CONST Boolean type=kotlin.Boolean value=true + FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.Tag.Tag>) returnType:kotlin.Int + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER GENERATED_DATA_CLASS_MEMBER name: type:.Tag.Tag> + BLOCK_BODY + RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .Tag' + CALL 'public open fun hashCode (): kotlin.Int [fake_override] declared in kotlin.Function1' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:action type:kotlin.Function1.Tag, kotlin.Unit> visibility:private [final]' type=kotlin.Function1.Tag, kotlin.Unit> origin=null + receiver: GET_VAR ': .Tag.Tag> declared in .Tag.hashCode' type=.Tag.Tag> origin=null + FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:.Tag.Tag>) returnType:kotlin.String + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER GENERATED_DATA_CLASS_MEMBER name: type:.Tag.Tag> + BLOCK_BODY + RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in .Tag' + STRING_CONCATENATION type=kotlin.String + CONST String type=kotlin.String value="Tag(" + CONST String type=kotlin.String value="action=" + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:action type:kotlin.Function1.Tag, kotlin.Unit> visibility:private [final]' type=kotlin.Function1.Tag, kotlin.Unit> origin=null + receiver: GET_VAR ': .Tag.Tag> declared in .Tag.toString' type=.Tag.Tag> origin=null + CONST String type=kotlin.String value=")" + FUN name:getTag visibility:public modality:FINAL <> () returnType:.Tag<*> + BLOCK_BODY + RETURN type=kotlin.Nothing from='public final fun getTag (): .Tag<*> declared in ' + THROW type=kotlin.Nothing + CONSTRUCTOR_CALL 'public constructor () declared in java.lang.Exception' type=java.lang.Exception origin=null + FUN name:doAction visibility:public modality:FINAL <> () returnType:kotlin.Unit + BLOCK_BODY + TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit + CALL 'public final fun (): kotlin.Function1.Tag, kotlin.Unit> declared in .Tag' type=kotlin.Function1 origin=GET_PROPERTY + $this: CALL 'public final fun getTag (): .Tag<*> declared in ' type=.Tag<*> origin=null diff --git a/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.kt b/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.kt new file mode 100644 index 00000000000..5261aab0215 --- /dev/null +++ b/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.kt @@ -0,0 +1,14 @@ +// !LANGUAGE: +NewInference + +// KT-42036 + +typealias Action = (@UnsafeVariance RenderingT) -> Unit +// When a typealias is used, the compiler crashes. +data class Tag(val action: Action) +// When no typealias is used, the compiler is fine. +//data class Tag(val action: (@UnsafeVariance RenderingT) -> Unit) +fun getTag(): Tag<*> = throw Exception() +fun doAction() { + // This line crashes the compiler. + getTag().action +} \ No newline at end of file diff --git a/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.kt.txt b/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.kt.txt new file mode 100644 index 00000000000..d62f18582aa --- /dev/null +++ b/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.kt.txt @@ -0,0 +1,51 @@ +typealias Action = Function1<@UnsafeVariance RenderingT, Unit> +data class Tag { + constructor(action: Function1<@UnsafeVariance RenderingT, Unit>) /* primary */ { + super/*Any*/() + /* () */ + + } + + val action: Function1<@UnsafeVariance RenderingT, Unit> + field = action + get + + operator fun component1(): Function1<@UnsafeVariance RenderingT, Unit> { + return .#action + } + + fun copy(action: Function1<@UnsafeVariance RenderingT, Unit> = .#action): Tag { + return Tag(action = action) + } + + override fun toString(): String { + return "Tag(" + "action=" + .#action + ")" + } + + override fun hashCode(): Int { + return .#action.hashCode() + } + + override operator fun equals(other: Any?): Boolean { + when { + EQEQEQ(arg0 = , arg1 = other) -> return true + } + when { + other !is Tag -> return false + } + val tmp0_other_with_cast: Tag = other as Tag + when { + EQEQ(arg0 = .#action, arg1 = tmp0_other_with_cast.#action).not() -> return false + } + return true + } + +} + +fun getTag(): Tag<*> { + throw Exception() +} + +fun doAction() { + getTag().() /*~> Unit */ +} diff --git a/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.txt b/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.txt new file mode 100644 index 00000000000..329ceddc9bf --- /dev/null +++ b/compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.txt @@ -0,0 +1,103 @@ +FILE fqName: fileName:/typeAliasWithUnsafeVariance.kt + TYPEALIAS name:Action visibility:public expandedType:kotlin.Function1<@[UnsafeVariance] RenderingT of .Action, kotlin.Unit> + TYPE_PARAMETER name:RenderingT index:0 variance: superTypes:[kotlin.Any?] + CLASS CLASS name:Tag modality:FINAL visibility:public [data] superTypes:[kotlin.Any] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Tag.Tag> + TYPE_PARAMETER name:RenderingT index:0 variance:out superTypes:[kotlin.Any?] + CONSTRUCTOR visibility:public <> (action:kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> }) returnType:.Tag.Tag> [primary] + VALUE_PARAMETER name:action index:0 type:kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Tag modality:FINAL visibility:public [data] superTypes:[kotlin.Any]' + PROPERTY name:action visibility:public modality:FINAL [val] + FIELD PROPERTY_BACKING_FIELD name:action type:kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } visibility:private [final] + EXPRESSION_BODY + GET_VAR 'action: kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } declared in .Tag.' type=kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } origin=INITIALIZE_PROPERTY_FROM_PARAMETER + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.Tag.Tag>) returnType:kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } + correspondingProperty: PROPERTY name:action visibility:public modality:FINAL [val] + $this: VALUE_PARAMETER name: type:.Tag.Tag> + BLOCK_BODY + RETURN type=kotlin.Nothing from='public final fun (): kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } declared in .Tag' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:action type:kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } visibility:private [final]' type=kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } origin=null + receiver: GET_VAR ': .Tag.Tag> declared in .Tag.' type=.Tag.Tag> origin=null + FUN GENERATED_DATA_CLASS_MEMBER name:component1 visibility:public modality:FINAL <> ($this:.Tag.Tag>) returnType:kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } [operator] + $this: VALUE_PARAMETER name: type:.Tag.Tag> + BLOCK_BODY + RETURN type=kotlin.Nothing from='public final fun component1 (): kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } [operator] declared in .Tag' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:action type:kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } visibility:private [final]' type=kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } origin=null + receiver: GET_VAR ': .Tag.Tag> declared in .Tag.component1' type=.Tag.Tag> origin=null + FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:.Tag.Tag>, action:kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> }) returnType:.Tag.Tag> + $this: VALUE_PARAMETER name: type:.Tag.Tag> + VALUE_PARAMETER name:action index:0 type:kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } + EXPRESSION_BODY + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:action type:kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } visibility:private [final]' type=kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } origin=null + receiver: GET_VAR ': .Tag.Tag> declared in .Tag.copy' type=.Tag.Tag> origin=null + BLOCK_BODY + RETURN type=kotlin.Nothing from='public final fun copy (action: kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> }): .Tag.Tag> declared in .Tag' + CONSTRUCTOR_CALL 'public constructor (action: kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> }) [primary] declared in .Tag' type=.Tag.Tag> origin=null + : RenderingT of .Tag + action: GET_VAR 'action: kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } declared in .Tag.copy' type=kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } origin=null + FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:.Tag.Tag>) returnType:kotlin.String + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER name: type:.Tag.Tag> + BLOCK_BODY + RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in .Tag' + STRING_CONCATENATION type=kotlin.String + CONST String type=kotlin.String value="Tag(" + CONST String type=kotlin.String value="action=" + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:action type:kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } visibility:private [final]' type=kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } origin=null + receiver: GET_VAR ': .Tag.Tag> declared in .Tag.toString' type=.Tag.Tag> origin=null + CONST String type=kotlin.String value=")" + FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:.Tag.Tag>) returnType:kotlin.Int + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER name: type:.Tag.Tag> + BLOCK_BODY + RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in .Tag' + CALL 'public open fun hashCode (): kotlin.Int [fake_override] declared in kotlin.Function1' type=kotlin.Int origin=null + $this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:action type:kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } visibility:private [final]' type=kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } origin=null + receiver: GET_VAR ': .Tag.Tag> declared in .Tag.hashCode' type=.Tag.Tag> origin=null + FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:.Tag.Tag>, other:kotlin.Any?) returnType:kotlin.Boolean [operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any + $this: VALUE_PARAMETER name: type:.Tag.Tag> + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + BLOCK_BODY + WHEN type=kotlin.Unit origin=null + BRANCH + if: CALL 'public final fun EQEQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQEQ + arg0: GET_VAR ': .Tag.Tag> declared in .Tag.equals' type=.Tag.Tag> origin=null + arg1: GET_VAR 'other: kotlin.Any? declared in .Tag.equals' type=kotlin.Any? origin=null + then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in .Tag' + CONST Boolean type=kotlin.Boolean value=true + WHEN type=kotlin.Unit origin=null + BRANCH + if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=.Tag.Tag> + GET_VAR 'other: kotlin.Any? declared in .Tag.equals' type=kotlin.Any? origin=null + then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in .Tag' + CONST Boolean type=kotlin.Boolean value=false + VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:.Tag.Tag> [val] + TYPE_OP type=.Tag.Tag> origin=CAST typeOperand=.Tag.Tag> + GET_VAR 'other: kotlin.Any? declared in .Tag.equals' type=kotlin.Any? origin=null + WHEN type=kotlin.Unit origin=null + BRANCH + if: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ + $this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ + arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:action type:kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } visibility:private [final]' type=kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } origin=null + receiver: GET_VAR ': .Tag.Tag> declared in .Tag.equals' type=.Tag.Tag> origin=null + arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:action type:kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } visibility:private [final]' type=kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } origin=null + receiver: GET_VAR 'val tmp_0: .Tag.Tag> [val] declared in .Tag.equals' type=.Tag.Tag> origin=null + then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in .Tag' + CONST Boolean type=kotlin.Boolean value=false + RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in .Tag' + CONST Boolean type=kotlin.Boolean value=true + FUN name:getTag visibility:public modality:FINAL <> () returnType:.Tag<*> + BLOCK_BODY + THROW type=kotlin.Nothing + CONSTRUCTOR_CALL 'public constructor () declared in java.lang.Exception' type=java.lang.Exception origin=null + FUN name:doAction visibility:public modality:FINAL <> () returnType:kotlin.Unit + BLOCK_BODY + TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit + CALL 'public final fun (): kotlin.Function1<@[UnsafeVariance] RenderingT of .Tag, kotlin.Unit>{ .Action.Tag> } declared in .Tag' type=kotlin.Function1{ .Action } origin=GET_PROPERTY + $this: CALL 'public final fun getTag (): .Tag<*> declared in ' type=.Tag<*> origin=null diff --git a/compiler/tests-gen/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java index 5223278165b..a5a06590a09 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java @@ -2245,6 +2245,11 @@ public class IrTextTestCaseGenerated extends AbstractIrTextTestCase { runTest("compiler/testData/ir/irText/types/starProjection_OI.kt"); } + @TestMetadata("typeAliasWithUnsafeVariance.kt") + public void testTypeAliasWithUnsafeVariance() throws Exception { + runTest("compiler/testData/ir/irText/types/typeAliasWithUnsafeVariance.kt"); + } + @TestMetadata("compiler/testData/ir/irText/types/nullChecks") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) From b7a382f097fde0374bdb29169db60c39e73b0d4a Mon Sep 17 00:00:00 2001 From: "Denis.Zharkov" Date: Tue, 29 Dec 2020 15:45:34 +0300 Subject: [PATCH 26/71] Revert "Fix ISE when inferring type of a property that delegates to itself" This reverts commit 1a03d5c93ead70631c28699e11b4018b645e6db4. The reason is that original change seems to be breaking (see KT-44137). ^KT-44137 Relates ^KT-37796 Open --- .../runners/FirOldFrontendDiagnosticsTestGenerated.java | 6 ------ .../jetbrains/kotlin/resolve/DelegatedPropertyResolver.kt | 7 +------ .../diagnostics/tests/delegatedProperty/kt37796.fir.kt | 5 ----- .../diagnostics/tests/delegatedProperty/kt37796.kt | 5 ----- .../diagnostics/tests/delegatedProperty/kt37796.txt | 6 ------ .../diagnostics/tests/delegatedProperty/recursiveType.kt | 4 ++-- .../kotlin/test/runners/DiagnosticTestGenerated.java | 6 ------ 7 files changed, 3 insertions(+), 36 deletions(-) delete mode 100644 compiler/testData/diagnostics/tests/delegatedProperty/kt37796.fir.kt delete mode 100644 compiler/testData/diagnostics/tests/delegatedProperty/kt37796.kt delete mode 100644 compiler/testData/diagnostics/tests/delegatedProperty/kt37796.txt diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java index c8f92fa41b9..f32ef64be2e 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java @@ -6957,12 +6957,6 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti runTest("compiler/testData/diagnostics/tests/delegatedProperty/incompleteTypeInference.kt"); } - @Test - @TestMetadata("kt37796.kt") - public void testKt37796() throws Exception { - runTest("compiler/testData/diagnostics/tests/delegatedProperty/kt37796.kt"); - } - @Test @TestMetadata("kt4640.kt") public void testKt4640() throws Exception { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DelegatedPropertyResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DelegatedPropertyResolver.kt index 52ea1b1df76..765afd913b8 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DelegatedPropertyResolver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DelegatedPropertyResolver.kt @@ -545,12 +545,7 @@ class DelegatedPropertyResolver( traceToResolveDelegatedProperty, false, delegateExpression, ContextDependency.DEPENDENT ) - if (delegateTypeInfo.type == null) { - traceToResolveDelegatedProperty.commit() - return null - } - - var delegateType = delegateTypeInfo.type + var delegateType = delegateTypeInfo.type ?: return null var delegateDataFlow = delegateTypeInfo.dataFlowInfo val delegateTypeConstructor = delegateType.constructor diff --git a/compiler/testData/diagnostics/tests/delegatedProperty/kt37796.fir.kt b/compiler/testData/diagnostics/tests/delegatedProperty/kt37796.fir.kt deleted file mode 100644 index 768f96f595c..00000000000 --- a/compiler/testData/diagnostics/tests/delegatedProperty/kt37796.fir.kt +++ /dev/null @@ -1,5 +0,0 @@ -val foo by foo - -val bar by baz(bar) - -fun baz(t: T): T = t diff --git a/compiler/testData/diagnostics/tests/delegatedProperty/kt37796.kt b/compiler/testData/diagnostics/tests/delegatedProperty/kt37796.kt deleted file mode 100644 index 1abb8e51561..00000000000 --- a/compiler/testData/diagnostics/tests/delegatedProperty/kt37796.kt +++ /dev/null @@ -1,5 +0,0 @@ -val foo by foo - -val bar by baz(bar) - -fun baz(t: T): T = t diff --git a/compiler/testData/diagnostics/tests/delegatedProperty/kt37796.txt b/compiler/testData/diagnostics/tests/delegatedProperty/kt37796.txt deleted file mode 100644 index dbc8b82f67e..00000000000 --- a/compiler/testData/diagnostics/tests/delegatedProperty/kt37796.txt +++ /dev/null @@ -1,6 +0,0 @@ -package - -public val bar: [ERROR : Type from delegate] -public val foo: [ERROR : ] -public fun baz(/*0*/ t: T): T - diff --git a/compiler/testData/diagnostics/tests/delegatedProperty/recursiveType.kt b/compiler/testData/diagnostics/tests/delegatedProperty/recursiveType.kt index 5d8b50bc9bf..d74411e9801 100644 --- a/compiler/testData/diagnostics/tests/delegatedProperty/recursiveType.kt +++ b/compiler/testData/diagnostics/tests/delegatedProperty/recursiveType.kt @@ -4,12 +4,12 @@ import kotlin.reflect.KProperty -val a by a +val a by a val b by Delegate(b) val c by d -val d by c +val d by c class Delegate(i: Int) { operator fun getValue(t: Any?, p: KProperty<*>): Int { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index 1e2b50cec6e..e83c9f36071 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -6963,12 +6963,6 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/delegatedProperty/incompleteTypeInference.kt"); } - @Test - @TestMetadata("kt37796.kt") - public void testKt37796() throws Exception { - runTest("compiler/testData/diagnostics/tests/delegatedProperty/kt37796.kt"); - } - @Test @TestMetadata("kt4640.kt") public void testKt4640() throws Exception { From a6534c46535d940cfc9a49dca5a606aad0465213 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 28 Dec 2020 13:10:20 +0300 Subject: [PATCH 27/71] [FIR] Fix completion of synthetic call arguments --- .../RedundantExplicitTypeChecker.fir.txt | 2 +- .../problems/SpecialCallsWithLambdas.fir.txt | 17 +++++++++++++++++ .../problems/SpecialCallsWithLambdas.kt | 4 ++++ .../runners/FirDiagnosticTestGenerated.java | 6 ++++++ ...FirCallCompletionResultsWriterTransformer.kt | 5 ++++- .../builderInference/specialCallsWithLambdas.kt | 1 - .../inference/regressions/kt36342_2.fir.kt | 2 +- 7 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/SpecialCallsWithLambdas.fir.txt create mode 100644 compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/SpecialCallsWithLambdas.kt diff --git a/compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantExplicitTypeChecker.fir.txt b/compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantExplicitTypeChecker.fir.txt index 0bd8870bac8..9d524e9f7c5 100644 --- a/compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantExplicitTypeChecker.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/extendedCheckers/RedundantExplicitTypeChecker.fir.txt @@ -75,7 +75,7 @@ FILE: RedundantExplicitTypeChecker.kt public final fun test(boolean: R|kotlin/Boolean|): R|kotlin/Unit| { lval expectedLong: R|kotlin/Long| = when () { R|/boolean| -> { - Int(42) + Long(42) } else -> { ^test Unit diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/SpecialCallsWithLambdas.fir.txt b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/SpecialCallsWithLambdas.fir.txt new file mode 100644 index 00000000000..fb5571c8710 --- /dev/null +++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/SpecialCallsWithLambdas.fir.txt @@ -0,0 +1,17 @@ +FILE: SpecialCallsWithLambdas.kt + public final fun foo(): R|kotlin/Unit| { + lval inv: R|() -> kotlin/Function0| = fun (): R|() -> kotlin/Unit| { + ^ fun (): R|kotlin/Unit| { + ^ Unit + } + + } + !! + lval bar: R|() -> kotlin/Function0| = fun (): R|() -> kotlin/Unit| { + ^ fun (): R|kotlin/Unit| { + ^ Unit + } + + } + + } diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/SpecialCallsWithLambdas.kt b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/SpecialCallsWithLambdas.kt new file mode 100644 index 00000000000..17c9047281f --- /dev/null +++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/SpecialCallsWithLambdas.kt @@ -0,0 +1,4 @@ +fun foo() { + val inv = {{}}!! + val bar = {{}} +} diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticTestGenerated.java index 25e4476062f..3d370424d45 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticTestGenerated.java @@ -4889,6 +4889,12 @@ public class FirDiagnosticTestGenerated extends AbstractFirDiagnosticTest { runTest("compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/receiverResolutionInLambda.kt"); } + @Test + @TestMetadata("SpecialCallsWithLambdas.kt") + public void testSpecialCallsWithLambdas() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/SpecialCallsWithLambdas.kt"); + } + @Test @TestMetadata("TypesEligibleForSimpleVisit.kt") public void testTypesEligibleForSimpleVisit() throws Exception { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt index c0e1d2c4d8c..63e080d5868 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt @@ -534,13 +534,16 @@ class FirCallCompletionResultsWriterTransformer( syntheticCall: D, data: ExpectedArgumentType?, ): CompositeTransformResult where D : FirResolvable, D : FirExpression { - syntheticCall.transformChildren(this, data?.getExpectedType(syntheticCall)?.toExpectedType()) val calleeReference = syntheticCall.calleeReference as? FirNamedReferenceWithCandidate ?: return syntheticCall.compose() val declaration = calleeReference.candidate.symbol.fir as? FirSimpleFunction ?: return syntheticCall.compose() val typeRef = typeCalculator.tryCalculateReturnType(declaration) syntheticCall.replaceTypeRefWithSubstituted(calleeReference, typeRef) + syntheticCall.transformChildren( + this, + data = data?.getExpectedType(syntheticCall)?.toExpectedType() ?: syntheticCall.typeRef.coneType.toExpectedType() + ) return (syntheticCall.transformCalleeReference( StoreCalleeReference, diff --git a/compiler/testData/codegen/box/inference/builderInference/specialCallsWithLambdas.kt b/compiler/testData/codegen/box/inference/builderInference/specialCallsWithLambdas.kt index 5b4ac730f0a..87e10fd6c44 100644 --- a/compiler/testData/codegen/box/inference/builderInference/specialCallsWithLambdas.kt +++ b/compiler/testData/codegen/box/inference/builderInference/specialCallsWithLambdas.kt @@ -1,5 +1,4 @@ // WITH_RUNTIME -// IGNORE_BACKEND_FIR: JVM_IR // DONT_TARGET_EXACT_BACKEND: WASM import kotlin.experimental.ExperimentalTypeInference diff --git a/compiler/testData/diagnostics/tests/inference/regressions/kt36342_2.fir.kt b/compiler/testData/diagnostics/tests/inference/regressions/kt36342_2.fir.kt index 5e8254c4013..4657de5aa65 100644 --- a/compiler/testData/diagnostics/tests/inference/regressions/kt36342_2.fir.kt +++ b/compiler/testData/diagnostics/tests/inference/regressions/kt36342_2.fir.kt @@ -5,7 +5,7 @@ fun materialize(): M = TODO() fun test(b: Boolean) { id(if (b) { - id(unresolved) + id(unresolved) } else { id( materialize() From 55a5695fc0de9f8c8fbdae44080b7e81c0ff2839 Mon Sep 17 00:00:00 2001 From: Shagen Ogandzhanian Date: Tue, 29 Dec 2020 20:43:57 +0100 Subject: [PATCH 28/71] [JS] Forbid export of interfaces With the only exception of external interfaces. See https://youtrack.jetbrains.com/issue/KT-44099 --- .../export/extendingNonExportedType.kt | 2 +- .../export/unexportableTypesInTypeParameters.kt | 2 +- .../export/wrongExportedDeclaration.kt | 6 ++++++ .../export/wrongExportedDeclaration.txt | 12 ++++++++++++ .../diagnostics/JsExportDeclarationChecker.kt | 16 ++++++++++------ .../box/inline/inlinedObjectLiteralIsCheck.kt | 1 - 6 files changed, 30 insertions(+), 9 deletions(-) diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/export/extendingNonExportedType.kt b/compiler/testData/diagnostics/testsWithJsStdLib/export/extendingNonExportedType.kt index 7a0064ca898..37ace185ed5 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/export/extendingNonExportedType.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/export/extendingNonExportedType.kt @@ -20,7 +20,7 @@ open class ExportedGenericClass class ")!>ExportedClass3 : ExportedGenericClass() @JsExport -interface ExportedGenericInterface +interface ExportedGenericInterface @JsExport class ")!>ExportedClass4 : ExportedGenericInterface diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/export/unexportableTypesInTypeParameters.kt b/compiler/testData/diagnostics/testsWithJsStdLib/export/unexportableTypesInTypeParameters.kt index f6c80bbecab..824fd1a77de 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/export/unexportableTypesInTypeParameters.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/export/unexportableTypesInTypeParameters.kt @@ -14,4 +14,4 @@ fun <T : C>foo() { } class A<T : C, S: I> @JsExport -interface I2<T> where T : C, T : I +interface I2<T> where T : C, T : I diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/export/wrongExportedDeclaration.kt b/compiler/testData/diagnostics/testsWithJsStdLib/export/wrongExportedDeclaration.kt index 09806d4c83b..bc84713c50e 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/export/wrongExportedDeclaration.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/export/wrongExportedDeclaration.kt @@ -18,3 +18,9 @@ enum class EnumClass { ENTRY1, EN @JsExport annotation class AnnotationClass + +@JsExport +interface SomeInterface + +@JsExport +external interface GoodInterface diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/export/wrongExportedDeclaration.txt b/compiler/testData/diagnostics/testsWithJsStdLib/export/wrongExportedDeclaration.txt index f7459275d85..f45ea89aa8f 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/export/wrongExportedDeclaration.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/export/wrongExportedDeclaration.txt @@ -30,4 +30,16 @@ package foo { public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): foo.EnumClass public final /*synthesized*/ fun values(): kotlin.Array } + + @kotlin.js.JsExport public external interface GoodInterface { + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + + @kotlin.js.JsExport public interface SomeInterface { + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } } diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/diagnostics/JsExportDeclarationChecker.kt b/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/diagnostics/JsExportDeclarationChecker.kt index c9649eedc20..f45bf578910 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/diagnostics/JsExportDeclarationChecker.kt +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/diagnostics/JsExportDeclarationChecker.kt @@ -107,14 +107,18 @@ object JsExportDeclarationChecker : DeclarationChecker { checkTypeParameter(typeParameter) } - if (descriptor.kind == ENUM_CLASS) { - reportWrongExportedDeclaration("enum class") - return - } - if (descriptor.kind == ANNOTATION_CLASS) { - reportWrongExportedDeclaration("annotation class") + val wrongDeclaration: String? = when (descriptor.kind) { + ENUM_CLASS -> "enum class" + INTERFACE -> if (descriptor.isExternal) null else "interface" + ANNOTATION_CLASS -> "annotation class" + else -> null + } + + if (wrongDeclaration != null) { + reportWrongExportedDeclaration(wrongDeclaration) return } + if (descriptor.kind == ENUM_ENTRY) { // Covered by ENUM_CLASS return diff --git a/js/js.translator/testData/box/inline/inlinedObjectLiteralIsCheck.kt b/js/js.translator/testData/box/inline/inlinedObjectLiteralIsCheck.kt index 8eea3699096..8eece0a7b85 100644 --- a/js/js.translator/testData/box/inline/inlinedObjectLiteralIsCheck.kt +++ b/js/js.translator/testData/box/inline/inlinedObjectLiteralIsCheck.kt @@ -1,6 +1,5 @@ // EXPECTED_REACHABLE_NODES: 1282 -@JsExport interface I { fun ok(): String } From 80289e4a3ff916213ddf598c56b126b0bc5cb844 Mon Sep 17 00:00:00 2001 From: Ilmir Usmanov Date: Tue, 29 Dec 2020 07:59:29 +0100 Subject: [PATCH 29/71] IC Mangling: Generate inline class literal instead of underlying type literal in annotations. #KT-30280 Fixed --- .../kotlin/codegen/AnnotationCodegen.java | 4 ++++ .../ir/FirBlackBoxCodegenTestGenerated.java | 5 +++++ .../backend/jvm/codegen/AnnotationCodegen.kt | 5 ++++- .../box/inlineClasses/kclassInAnnotation.kt | 16 ++++++++++++++++ .../codegen/BlackBoxCodegenTestGenerated.java | 5 +++++ .../codegen/LightAnalysisModeTestGenerated.java | 5 +++++ .../ir/IrBlackBoxCodegenTestGenerated.java | 5 +++++ 7 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/codegen/box/inlineClasses/kclassInAnnotation.kt diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java index 2ffacdd6f48..c44172f262d 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java @@ -33,6 +33,7 @@ import org.jetbrains.kotlin.name.FqName; import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.resolve.AnnotationChecker; import org.jetbrains.kotlin.resolve.DescriptorUtils; +import org.jetbrains.kotlin.resolve.InlineClassesUtilsKt; import org.jetbrains.kotlin.resolve.checkers.ExpectedActualDeclarationChecker; import org.jetbrains.kotlin.resolve.constants.*; import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt; @@ -497,6 +498,9 @@ public abstract class AnnotationCodegen { public Void visitKClassValue(KClassValue value, Void data) { KotlinType classType = value.getArgumentType(module); innerClassConsumer.addInnerClassInfoFromAnnotation(DescriptorUtils.getClassDescriptorForType(classType)); + if (InlineClassesUtilsKt.isInlineClassType(classType)) { + classType = TypeUtils.makeNullable(classType); + } annotationVisitor.visit(name, typeMapper.mapType(classType)); return null; } diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java index ec7f7882421..14cc6ac517f 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java @@ -13987,6 +13987,11 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/inlineClasses/jvmStaticVarInInlineClassCompanion.kt"); } + @TestMetadata("kclassInAnnotation.kt") + public void testKclassInAnnotation() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/kclassInAnnotation.kt"); + } + @TestMetadata("kt25246.kt") public void testKt25246() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/kt25246.kt"); diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/AnnotationCodegen.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/AnnotationCodegen.kt index 1c0e59c8543..6217fba9a38 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/AnnotationCodegen.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/AnnotationCodegen.kt @@ -272,8 +272,11 @@ abstract class AnnotationCodegen( visitor.visitEnd() } is IrClassReference -> { - val classType = value.classType + var classType = value.classType classType.classOrNull?.owner?.let(innerClassConsumer::addInnerClassInfoFromAnnotation) + if (classType.isInlined()) { + classType = classType.makeNullable() + } annotationVisitor.visit(name, typeMapper.mapType(classType)) } is IrErrorExpression -> error("Don't know how to compile annotation value ${ir2string(value)}") diff --git a/compiler/testData/codegen/box/inlineClasses/kclassInAnnotation.kt b/compiler/testData/codegen/box/inlineClasses/kclassInAnnotation.kt new file mode 100644 index 00000000000..933f9e9ccf3 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/kclassInAnnotation.kt @@ -0,0 +1,16 @@ +// WITH_REFLECT +// TARGET_BACKEND: JVM + +import kotlin.reflect.KClass + +inline class IC(val i: Int) + +annotation class Ann(val c: KClass<*>) + +@Ann(IC::class) +class C + +fun box(): String { + val klass = (C::class.annotations.first() as Ann).c.toString() + return if (klass == "class IC") "OK" else klass +} \ No newline at end of file diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index be970c35be3..aa9727d8756 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -13987,6 +13987,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/inlineClasses/jvmStaticVarInInlineClassCompanion.kt"); } + @TestMetadata("kclassInAnnotation.kt") + public void testKclassInAnnotation() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/kclassInAnnotation.kt"); + } + @TestMetadata("kt25246.kt") public void testKt25246() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/kt25246.kt"); diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 778943165cb..d4afe6337ce 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -13997,6 +13997,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/inlineClasses/jvmStaticVarInInlineClassCompanion.kt"); } + @TestMetadata("kclassInAnnotation.kt") + public void testKclassInAnnotation() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/kclassInAnnotation.kt"); + } + @TestMetadata("kt25246.kt") public void testKt25246() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/kt25246.kt"); diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index a500d9a9d3a..637ce137d5b 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -13987,6 +13987,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/inlineClasses/jvmStaticVarInInlineClassCompanion.kt"); } + @TestMetadata("kclassInAnnotation.kt") + public void testKclassInAnnotation() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/kclassInAnnotation.kt"); + } + @TestMetadata("kt25246.kt") public void testKt25246() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/kt25246.kt"); From 1314adb6f7bc0de1831928cbd7d183fef99abf46 Mon Sep 17 00:00:00 2001 From: Abduqodiri Qurbonzoda Date: Fri, 2 Oct 2020 06:46:42 +0300 Subject: [PATCH 30/71] Locale-agnostic case conversions by default #KT-43023 --- libraries/stdlib/api/js-v1/kotlin.text.kt | 43 +++++ libraries/stdlib/api/js/kotlin.text.kt | 43 +++++ libraries/stdlib/common/src/kotlin/TextH.kt | 37 ---- libraries/stdlib/js/src/kotlin/text/char.kt | 72 +++++++- .../js/src/kotlin/text/numberConversions.kt | 6 +- libraries/stdlib/js/src/kotlin/text/string.kt | 39 ++++- .../stdlib/js/src/kotlin/text/stringsCode.kt | 3 +- .../stdlib/jvm/src/kotlin/text/CharJVM.kt | 163 +++++++++++++++++- .../stdlib/jvm/src/kotlin/text/StringsJVM.kt | 76 ++++++-- .../stdlib/jvm/test/text/StringJVMTest.kt | 58 ++++--- .../stdlib/samples/test/samples/text/char.kt | 62 +++++-- .../samples/test/samples/text/strings.kt | 32 +++- libraries/stdlib/src/kotlin/text/Char.kt | 73 +++++++- libraries/stdlib/src/kotlin/text/Strings.kt | 90 ++++++++++ libraries/stdlib/test/OrderingTest.kt | 2 +- .../stdlib/test/collections/ArraysTest.kt | 2 +- .../stdlib/test/collections/CollectionTest.kt | 4 +- .../stdlib/test/collections/IterableTests.kt | 2 +- libraries/stdlib/test/collections/MapTest.kt | 4 +- .../stdlib/test/collections/SequenceTest.kt | 2 +- libraries/stdlib/test/text/RegexTest.kt | 2 +- .../test/text/StringNumberConversionTest.kt | 4 +- libraries/stdlib/test/text/StringTest.kt | 29 ++-- libraries/stdlib/wasm/src/kotlin/Text.kt | 95 +++++++++- .../kotlin-stdlib-runtime-merged.txt | 4 + 25 files changed, 805 insertions(+), 142 deletions(-) diff --git a/libraries/stdlib/api/js-v1/kotlin.text.kt b/libraries/stdlib/api/js-v1/kotlin.text.kt index be5c956b7d8..dd3c70a7674 100644 --- a/libraries/stdlib/api/js-v1/kotlin.text.kt +++ b/libraries/stdlib/api/js-v1/kotlin.text.kt @@ -382,6 +382,21 @@ public fun kotlin.CharSequence.lineSequence(): kotlin.sequences.Sequence +@kotlin.SinceKotlin(version = "1.4") +@kotlin.ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public inline fun kotlin.Char.lowercase(): kotlin.String + +@kotlin.SinceKotlin(version = "1.4") +@kotlin.ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public inline fun kotlin.String.lowercase(): kotlin.String + +@kotlin.SinceKotlin(version = "1.4") +@kotlin.ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public inline fun kotlin.Char.lowercaseChar(): kotlin.Char + public inline fun kotlin.CharSequence.map(transform: (kotlin.Char) -> R): kotlin.collections.List public inline fun kotlin.CharSequence.mapIndexed(transform: (index: kotlin.Int, kotlin.Char) -> R): kotlin.collections.List @@ -659,6 +674,20 @@ public fun kotlin.String.replaceFirst(oldChar: kotlin.Char, newChar: kotlin.Char public fun kotlin.String.replaceFirst(oldValue: kotlin.String, newValue: kotlin.String, ignoreCase: kotlin.Boolean = ...): kotlin.String +@kotlin.SinceKotlin(version = "1.4") +@kotlin.ExperimentalStdlibApi +@kotlin.OverloadResolutionByLambdaReturnType +@kotlin.jvm.JvmName(name = "replaceFirstCharWithChar") +@kotlin.internal.InlineOnly +public inline fun kotlin.String.replaceFirstChar(transform: (kotlin.Char) -> kotlin.Char): kotlin.String + +@kotlin.SinceKotlin(version = "1.4") +@kotlin.ExperimentalStdlibApi +@kotlin.OverloadResolutionByLambdaReturnType +@kotlin.jvm.JvmName(name = "replaceFirstCharWithCharSequence") +@kotlin.internal.InlineOnly +public inline fun kotlin.String.replaceFirstChar(transform: (kotlin.Char) -> kotlin.CharSequence): kotlin.String + public fun kotlin.String.replaceIndent(newIndent: kotlin.String = ...): kotlin.String public fun kotlin.String.replaceIndentByMargin(newIndent: kotlin.String = ..., marginPrefix: kotlin.String = ...): kotlin.String @@ -1079,6 +1108,20 @@ public inline fun kotlin.String.trimStart(predicate: (kotlin.Char) -> kotlin.Boo public fun kotlin.String.trimStart(vararg chars: kotlin.Char): kotlin.String +@kotlin.SinceKotlin(version = "1.4") +@kotlin.ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public inline fun kotlin.Char.uppercase(): kotlin.String + +@kotlin.SinceKotlin(version = "1.4") +@kotlin.ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public inline fun kotlin.String.uppercase(): kotlin.String + +@kotlin.SinceKotlin(version = "1.4") +@kotlin.ExperimentalStdlibApi +public fun kotlin.Char.uppercaseChar(): kotlin.Char + @kotlin.SinceKotlin(version = "1.2") public fun kotlin.CharSequence.windowed(size: kotlin.Int, step: kotlin.Int = ..., partialWindows: kotlin.Boolean = ...): kotlin.collections.List diff --git a/libraries/stdlib/api/js/kotlin.text.kt b/libraries/stdlib/api/js/kotlin.text.kt index be5c956b7d8..dd3c70a7674 100644 --- a/libraries/stdlib/api/js/kotlin.text.kt +++ b/libraries/stdlib/api/js/kotlin.text.kt @@ -382,6 +382,21 @@ public fun kotlin.CharSequence.lineSequence(): kotlin.sequences.Sequence +@kotlin.SinceKotlin(version = "1.4") +@kotlin.ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public inline fun kotlin.Char.lowercase(): kotlin.String + +@kotlin.SinceKotlin(version = "1.4") +@kotlin.ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public inline fun kotlin.String.lowercase(): kotlin.String + +@kotlin.SinceKotlin(version = "1.4") +@kotlin.ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public inline fun kotlin.Char.lowercaseChar(): kotlin.Char + public inline fun kotlin.CharSequence.map(transform: (kotlin.Char) -> R): kotlin.collections.List public inline fun kotlin.CharSequence.mapIndexed(transform: (index: kotlin.Int, kotlin.Char) -> R): kotlin.collections.List @@ -659,6 +674,20 @@ public fun kotlin.String.replaceFirst(oldChar: kotlin.Char, newChar: kotlin.Char public fun kotlin.String.replaceFirst(oldValue: kotlin.String, newValue: kotlin.String, ignoreCase: kotlin.Boolean = ...): kotlin.String +@kotlin.SinceKotlin(version = "1.4") +@kotlin.ExperimentalStdlibApi +@kotlin.OverloadResolutionByLambdaReturnType +@kotlin.jvm.JvmName(name = "replaceFirstCharWithChar") +@kotlin.internal.InlineOnly +public inline fun kotlin.String.replaceFirstChar(transform: (kotlin.Char) -> kotlin.Char): kotlin.String + +@kotlin.SinceKotlin(version = "1.4") +@kotlin.ExperimentalStdlibApi +@kotlin.OverloadResolutionByLambdaReturnType +@kotlin.jvm.JvmName(name = "replaceFirstCharWithCharSequence") +@kotlin.internal.InlineOnly +public inline fun kotlin.String.replaceFirstChar(transform: (kotlin.Char) -> kotlin.CharSequence): kotlin.String + public fun kotlin.String.replaceIndent(newIndent: kotlin.String = ...): kotlin.String public fun kotlin.String.replaceIndentByMargin(newIndent: kotlin.String = ..., marginPrefix: kotlin.String = ...): kotlin.String @@ -1079,6 +1108,20 @@ public inline fun kotlin.String.trimStart(predicate: (kotlin.Char) -> kotlin.Boo public fun kotlin.String.trimStart(vararg chars: kotlin.Char): kotlin.String +@kotlin.SinceKotlin(version = "1.4") +@kotlin.ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public inline fun kotlin.Char.uppercase(): kotlin.String + +@kotlin.SinceKotlin(version = "1.4") +@kotlin.ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public inline fun kotlin.String.uppercase(): kotlin.String + +@kotlin.SinceKotlin(version = "1.4") +@kotlin.ExperimentalStdlibApi +public fun kotlin.Char.uppercaseChar(): kotlin.Char + @kotlin.SinceKotlin(version = "1.2") public fun kotlin.CharSequence.windowed(size: kotlin.Int, step: kotlin.Int = ..., partialWindows: kotlin.Boolean = ...): kotlin.collections.List diff --git a/libraries/stdlib/common/src/kotlin/TextH.kt b/libraries/stdlib/common/src/kotlin/TextH.kt index 6c4c9a7172f..10e88020a10 100644 --- a/libraries/stdlib/common/src/kotlin/TextH.kt +++ b/libraries/stdlib/common/src/kotlin/TextH.kt @@ -5,8 +5,6 @@ package kotlin.text -import kotlin.internal.LowPriorityInOverloadResolution - expect class Regex { constructor(pattern: String) constructor(pattern: String, option: RegexOption) @@ -66,8 +64,6 @@ expect enum class RegexOption { // From char.kt expect fun Char.isWhitespace(): Boolean -expect fun Char.toLowerCase(): Char -expect fun Char.toUpperCase(): Char expect fun Char.isHighSurrogate(): Boolean expect fun Char.isLowSurrogate(): Boolean @@ -195,39 +191,6 @@ internal expect fun String.nativeLastIndexOf(str: String, fromIndex: Int): Int public expect fun String.substring(startIndex: Int): String public expect fun String.substring(startIndex: Int, endIndex: Int): String -/** - * Returns a copy of this string converted to upper case using the rules of the default locale. - * - * @sample samples.text.Strings.toUpperCase - */ -public expect fun String.toUpperCase(): String - -/** - * Returns a copy of this string converted to lower case using the rules of the default locale. - * - * @sample samples.text.Strings.toLowerCase - */ -public expect fun String.toLowerCase(): String - -/** - * Returns a copy of this string having its first letter titlecased using the rules of the default locale, - * or the original string if it's empty or already starts with a title case letter. - * - * The title case of a character is usually the same as its upper case with several exceptions. - * The particular list of characters with the special title case form depends on the underlying platform. - * - * @sample samples.text.Strings.capitalize - */ -public expect fun String.capitalize(): String - -/** - * Returns a copy of this string having its first letter lowercased using the rules of the default locale, - * or the original string if it's empty or already starts with a lower case letter. - * - * @sample samples.text.Strings.decapitalize - */ -public expect fun String.decapitalize(): String - public expect fun CharSequence.repeat(n: Int): String diff --git a/libraries/stdlib/js/src/kotlin/text/char.kt b/libraries/stdlib/js/src/kotlin/text/char.kt index 0fb61f511fb..654e619a8dc 100644 --- a/libraries/stdlib/js/src/kotlin/text/char.kt +++ b/libraries/stdlib/js/src/kotlin/text/char.kt @@ -8,11 +8,79 @@ package kotlin.text // actually \s is enough to match all whitespace, but \xA0 added because of different regexp behavior of Rhino used in Selenium tests public actual fun Char.isWhitespace(): Boolean = toString().matches("[\\s\\xA0]") +/** + * Converts this character to lower case using Unicode mapping rules of the invariant locale. + */ +@OptIn(ExperimentalStdlibApi::class) @kotlin.internal.InlineOnly -public actual inline fun Char.toLowerCase(): Char = js("String.fromCharCode")(toInt()).toLowerCase().charCodeAt(0).unsafeCast().toChar() +public actual inline fun Char.toLowerCase(): Char = lowercaseChar() +/** + * Converts this character to lower case using Unicode mapping rules of the invariant locale. + * + * This function performs one-to-one character mapping. + * To support one-to-many character mapping use the [lowercase] function. + * If this character has no mapping equivalent, the character itself is returned. + * + * @sample samples.text.Chars.lowercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi @kotlin.internal.InlineOnly -public actual inline fun Char.toUpperCase(): Char = js("String.fromCharCode")(toInt()).toUpperCase().charCodeAt(0).unsafeCast().toChar() +public actual inline fun Char.lowercaseChar(): Char = toString().asDynamic().toLowerCase().charCodeAt(0).unsafeCast().toChar() + +/** + * Converts this character to lower case using Unicode mapping rules of the invariant locale. + * + * This function supports one-to-many character mapping, thus the length of the returned string can be greater than one. + * For example, `'\u0130'.lowercase()` returns `"\u0069\u0307"`, + * where `'\u0130'` is the LATIN CAPITAL LETTER I WITH DOT ABOVE character (`İ`). + * If this character has no lower case mapping, the result of `toString()` of this char is returned. + * + * @sample samples.text.Chars.lowercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public actual inline fun Char.lowercase(): String = toString().asDynamic().toLowerCase() as String + +/** + * Converts this character to upper case using Unicode mapping rules of the invariant locale. + */ +@OptIn(ExperimentalStdlibApi::class) +@kotlin.internal.InlineOnly +public actual inline fun Char.toUpperCase(): Char = uppercaseChar() + +/** + * Converts this character to upper case using Unicode mapping rules of the invariant locale. + * + * This function performs one-to-one character mapping. + * To support one-to-many character mapping use the [uppercase] function. + * If this character has no mapping equivalent, the character itself is returned. + * + * @sample samples.text.Chars.uppercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +public actual fun Char.uppercaseChar(): Char { + val uppercase = uppercase() + return if (uppercase.length > 1) this else uppercase[0] +} + +/** + * Converts this character to upper case using Unicode mapping rules of the invariant locale. + * + * This function supports one-to-many character mapping, thus the length of the returned string can be greater than one. + * For example, `'\uFB00'.uppercase()` returns `"\u0046\u0046"`, + * where `'\uFB00'` is the LATIN SMALL LIGATURE FF character (`ff`). + * If this character has no upper case mapping, the result of `toString()` of this char is returned. + * + * @sample samples.text.Chars.uppercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public actual inline fun Char.uppercase(): String = toString().asDynamic().toUpperCase() as String /** * Returns `true` if this character is a Unicode high-surrogate code unit (also known as leading-surrogate code unit). diff --git a/libraries/stdlib/js/src/kotlin/text/numberConversions.kt b/libraries/stdlib/js/src/kotlin/text/numberConversions.kt index d69754fbd6a..9596dfeaa20 100644 --- a/libraries/stdlib/js/src/kotlin/text/numberConversions.kt +++ b/libraries/stdlib/js/src/kotlin/text/numberConversions.kt @@ -17,8 +17,9 @@ public actual inline fun String.toBoolean(): Boolean = this.toBoolean() /** * Returns `true` if this string is not `null` and its content is equal to the word "true", ignoring case, and `false` otherwise. */ +@OptIn(ExperimentalStdlibApi::class) @SinceKotlin("1.4") -public actual fun String?.toBoolean(): Boolean = this != null && this.toLowerCase() == "true" +public actual fun String?.toBoolean(): Boolean = this != null && this.lowercase() == "true" /** * Parses the string as a signed [Byte] number and returns the result. @@ -130,7 +131,8 @@ public actual inline fun Short.toString(radix: Int): String = this.toInt().toStr @SinceKotlin("1.2") public actual fun Int.toString(radix: Int): String = asDynamic().toString(checkRadix(radix)) -private fun String.isNaN(): Boolean = when (this.toLowerCase()) { +@OptIn(ExperimentalStdlibApi::class) +private fun String.isNaN(): Boolean = when (this.lowercase()) { "nan", "+nan", "-nan" -> true else -> false } diff --git a/libraries/stdlib/js/src/kotlin/text/string.kt b/libraries/stdlib/js/src/kotlin/text/string.kt index d079686da63..80ca2d47ae5 100644 --- a/libraries/stdlib/js/src/kotlin/text/string.kt +++ b/libraries/stdlib/js/src/kotlin/text/string.kt @@ -168,20 +168,42 @@ public actual fun String.encodeToByteArray( /** * Returns a copy of this string converted to upper case using the rules of the default locale. - * - * @sample samples.text.Strings.toUpperCase */ @kotlin.internal.InlineOnly public actual inline fun String.toUpperCase(): String = asDynamic().toUpperCase() /** - * Returns a copy of this string converted to lower case using the rules of the default locale. + * Returns a copy of this string converted to upper case using Unicode mapping rules of the invariant locale. * - * @sample samples.text.Strings.toLowerCase + * This function supports one-to-many and many-to-one character mapping, + * thus the length of the returned string can be different from the length of the original string. + * + * @sample samples.text.Strings.uppercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public actual inline fun String.uppercase(): String = asDynamic().toUpperCase() + +/** + * Returns a copy of this string converted to lower case using the rules of the default locale. */ @kotlin.internal.InlineOnly public actual inline fun String.toLowerCase(): String = asDynamic().toLowerCase() +/** + * Returns a copy of this string converted to lower case using Unicode mapping rules of the invariant locale. + * + * This function supports one-to-many and many-to-one character mapping, + * thus the length of the returned string can be different from the length of the original string. + * + * @sample samples.text.Strings.lowercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public actual inline fun String.lowercase(): String = asDynamic().toLowerCase() + @kotlin.internal.InlineOnly internal actual inline fun String.nativeIndexOf(str: String, fromIndex: Int): Int = asDynamic().indexOf(str, fromIndex) @@ -212,6 +234,7 @@ public inline fun String.match(regex: String): Array? = asDynamic().matc @kotlin.internal.InlineOnly internal inline fun String.nativeReplace(pattern: RegExp, replacement: String): String = asDynamic().replace(pattern, replacement) +@OptIn(ExperimentalStdlibApi::class) @SinceKotlin("1.2") @Suppress("ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS") public actual fun String.compareTo(other: String, ignoreCase: Boolean = false): Int { @@ -226,11 +249,11 @@ public actual fun String.compareTo(other: String, ignoreCase: Boolean = false): var s1 = this.substring(start, end) var s2 = other.substring(start, end) if (s1 != s2) { - s1 = s1.toUpperCase() - s2 = s2.toUpperCase() + s1 = s1.uppercase() + s2 = s2.uppercase() if (s1 != s2) { - s1 = s1.toLowerCase() - s2 = s2.toLowerCase() + s1 = s1.lowercase() + s2 = s2.lowercase() if (s1 != s2) { return s1.compareTo(s2) } diff --git a/libraries/stdlib/js/src/kotlin/text/stringsCode.kt b/libraries/stdlib/js/src/kotlin/text/stringsCode.kt index 94d90d9acd1..371f8366f4d 100644 --- a/libraries/stdlib/js/src/kotlin/text/stringsCode.kt +++ b/libraries/stdlib/js/src/kotlin/text/stringsCode.kt @@ -54,6 +54,7 @@ public fun String.matches(regex: String): Boolean { public actual fun CharSequence.isBlank(): Boolean = length == 0 || (if (this is String) this else this.toString()).matches("^[\\s\\xA0]+$") +@OptIn(ExperimentalStdlibApi::class) @Suppress("ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS") public actual fun String?.equals(other: String?, ignoreCase: Boolean = false): Boolean = if (this == null) @@ -61,7 +62,7 @@ public actual fun String?.equals(other: String?, ignoreCase: Boolean = false): B else if (!ignoreCase) this == other else - other != null && this.toLowerCase() == other.toLowerCase() + other != null && this.lowercase() == other.lowercase() @Suppress("ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS") diff --git a/libraries/stdlib/jvm/src/kotlin/text/CharJVM.kt b/libraries/stdlib/jvm/src/kotlin/text/CharJVM.kt index 1122dd1c0b9..23489d81e19 100644 --- a/libraries/stdlib/jvm/src/kotlin/text/CharJVM.kt +++ b/libraries/stdlib/jvm/src/kotlin/text/CharJVM.kt @@ -8,6 +8,8 @@ package kotlin.text +import java.util.Locale + /** * Returns `true` if this character (Unicode code point) is defined in Unicode. */ @@ -86,18 +88,104 @@ public inline fun Char.isUpperCase(): Boolean = Character.isUpperCase(this) public inline fun Char.isLowerCase(): Boolean = Character.isLowerCase(this) /** - * Converts this character to uppercase. - * @sample samples.text.Chars.toUpperCase + * Converts this character to lower case using Unicode mapping rules of the invariant locale. */ +@OptIn(ExperimentalStdlibApi::class) @kotlin.internal.InlineOnly -public actual inline fun Char.toUpperCase(): Char = Character.toUpperCase(this) +public actual inline fun Char.toUpperCase(): Char = uppercaseChar() /** - * Converts this character to lowercase. - * @sample samples.text.Chars.toLowerCase + * Converts this character to upper case using Unicode mapping rules of the invariant locale. + * + * This function performs one-to-one character mapping. + * To support one-to-many character mapping use the [uppercase] function. + * If this character has no mapping equivalent, the character itself is returned. + * + * @sample samples.text.Chars.uppercase */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi @kotlin.internal.InlineOnly -public actual inline fun Char.toLowerCase(): Char = Character.toLowerCase(this) +public actual inline fun Char.uppercaseChar(): Char = Character.toUpperCase(this) + +/** + * Converts this character to upper case using Unicode mapping rules of the invariant locale. + * + * This function supports one-to-many character mapping, thus the length of the returned string can be greater than one. + * For example, `'\uFB00'.uppercase()` returns `"\u0046\u0046"`, + * where `'\uFB00'` is the LATIN SMALL LIGATURE FF character (`ff`). + * If this character has no upper case mapping, the result of `toString()` of this char is returned. + * + * @sample samples.text.Chars.uppercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public actual inline fun Char.uppercase(): String = toString().uppercase() + +/** + * Converts this character to upper case using Unicode mapping rules of the specified [locale]. + * + * This function supports one-to-many character mapping, thus the length of the returned string can be greater than one. + * For example, `'\uFB00'.uppercase(Locale.US)` returns `"\u0046\u0046"`, + * where `'\uFB00'` is the LATIN SMALL LIGATURE FF character (`ff`). + * If this character has no upper case mapping, the result of `toString()` of this char is returned. + * + * @sample samples.text.Chars.uppercaseLocale + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +public fun Char.uppercase(locale: Locale): String = toString().uppercase(locale) + +/** + * Converts this character to lower case using Unicode mapping rules of the invariant locale. + */ +@OptIn(ExperimentalStdlibApi::class) +@kotlin.internal.InlineOnly +public actual inline fun Char.toLowerCase(): Char = lowercaseChar() + +/** + * Converts this character to lower case using Unicode mapping rules of the invariant locale. + * + * This function performs one-to-one character mapping. + * To support one-to-many character mapping use the [lowercase] function. + * If this character has no mapping equivalent, the character itself is returned. + * + * @sample samples.text.Chars.lowercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public actual inline fun Char.lowercaseChar(): Char = Character.toLowerCase(this) + +/** + * Converts this character to lower case using Unicode mapping rules of the invariant locale. + * + * This function supports one-to-many character mapping, thus the length of the returned string can be greater than one. + * For example, `'\u0130'.lowercase()` returns `"\u0069\u0307"`, + * where `'\u0130'` is the LATIN CAPITAL LETTER I WITH DOT ABOVE character (`İ`). + * If this character has no lower case mapping, the result of `toString()` of this char is returned. + * + * @sample samples.text.Chars.lowercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public actual inline fun Char.lowercase(): String = toString().lowercase() + +/** + * Converts this character to lower case using Unicode mapping rules of the specified [locale]. + * + * This function supports one-to-many character mapping, thus the length of the returned string can be greater than one. + * For example, `'\u0130'.lowercase(Locale.US)` returns `"\u0069\u0307"`, + * where `'\u0130'` is the LATIN CAPITAL LETTER I WITH DOT ABOVE character (`İ`). + * If this character has no lower case mapping, the result of `toString()` of this char is returned. + * + * @sample samples.text.Chars.lowercaseLocale + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +public fun Char.lowercase(locale: Locale): String = toString().lowercase(locale) /** * Returns `true` if this character is a titlecase character. @@ -107,13 +195,70 @@ public actual inline fun Char.toLowerCase(): Char = Character.toLowerCase(this) public inline fun Char.isTitleCase(): Boolean = Character.isTitleCase(this) /** - * Converts this character to titlecase. + * Converts this character to title case using Unicode mapping rules of the invariant locale. * * @see Character.toTitleCase - * @sample samples.text.Chars.toTitleCase */ +@OptIn(ExperimentalStdlibApi::class) @kotlin.internal.InlineOnly -public inline fun Char.toTitleCase(): Char = Character.toTitleCase(this) +public inline fun Char.toTitleCase(): Char = titlecaseChar() + +/** + * Converts this character to title case using Unicode mapping rules of the invariant locale. + * + * This function performs one-to-one character mapping. + * To support one-to-many character mapping use the [titlecase] function. + * If this character has no mapping equivalent, the result of calling [uppercaseChar] is returned. + * + * @sample samples.text.Chars.titlecase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public inline fun Char.titlecaseChar(): Char = Character.toTitleCase(this) + +/** + * Converts this character to title case using Unicode mapping rules of the invariant locale. + * + * This function supports one-to-many character mapping, thus the length of the returned string can be greater than one. + * For example, `'\uFB00'.titlecase()` returns `"\u0046\u0066"`, + * where `'\uFB00'` is the LATIN SMALL LIGATURE FF character (`ff`). + * If this character has no title case mapping, the result of [uppercase] is returned instead. + * + * @sample samples.text.Chars.titlecase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +public fun Char.titlecase(): String { + val uppercase = uppercase() + if (uppercase.length > 1) { + return if (this == '\u0149') uppercase else uppercase[0] + uppercase.substring(1).lowercase() + } + return titlecaseChar().toString() +} + +/** + * Converts this character to title case using Unicode mapping rules of the specified [locale]. + * + * This function supports one-to-many character mapping, thus the length of the returned string can be greater than one. + * For example, `'\uFB00'.titlecase(Locale.US)` returns `"\u0046\u0066"`, + * where `'\uFB00'` is the LATIN SMALL LIGATURE FF character (`ff`). + * If this character has no title case mapping, the result of `uppercase(locale)` is returned instead. + * + * @sample samples.text.Chars.titlecaseLocale + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +public fun Char.titlecase(locale: Locale): String { + val localizedUppercase = uppercase(locale) + if (localizedUppercase.length > 1) { + return if (this == '\u0149') localizedUppercase else localizedUppercase[0] + localizedUppercase.substring(1).lowercase() + } + if (localizedUppercase != uppercase()) { + return localizedUppercase + } + return titlecaseChar().toString() +} /** * Returns a value indicating a character's general category. diff --git a/libraries/stdlib/jvm/src/kotlin/text/StringsJVM.kt b/libraries/stdlib/jvm/src/kotlin/text/StringsJVM.kt index e90a0146368..65cd26b38a4 100644 --- a/libraries/stdlib/jvm/src/kotlin/text/StringsJVM.kt +++ b/libraries/stdlib/jvm/src/kotlin/text/StringsJVM.kt @@ -120,20 +120,42 @@ public actual fun String.replaceFirst(oldValue: String, newValue: String, ignore /** * Returns a copy of this string converted to upper case using the rules of the default locale. - * - * @sample samples.text.Strings.toUpperCase */ @kotlin.internal.InlineOnly public actual inline fun String.toUpperCase(): String = (this as java.lang.String).toUpperCase() /** - * Returns a copy of this string converted to lower case using the rules of the default locale. + * Returns a copy of this string converted to upper case using Unicode mapping rules of the invariant locale. * - * @sample samples.text.Strings.toLowerCase + * This function supports one-to-many and many-to-one character mapping, + * thus the length of the returned string can be different from the length of the original string. + * + * @sample samples.text.Strings.uppercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public actual inline fun String.uppercase(): String = (this as java.lang.String).toUpperCase(Locale.ROOT) + +/** + * Returns a copy of this string converted to lower case using the rules of the default locale. */ @kotlin.internal.InlineOnly public actual inline fun String.toLowerCase(): String = (this as java.lang.String).toLowerCase() +/** + * Returns a copy of this string converted to lower case using Unicode mapping rules of the invariant locale. + * + * This function supports one-to-many and many-to-one character mapping, + * thus the length of the returned string can be different from the length of the original string. + * + * @sample samples.text.Strings.lowercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public actual inline fun String.lowercase(): String = (this as java.lang.String).toLowerCase(Locale.ROOT) + /** * Concatenates characters in this [CharArray] into a String. */ @@ -588,14 +610,42 @@ public fun String.regionMatches(thisOffset: Int, other: String, otherOffset: Int /** * Returns a copy of this string converted to lower case using the rules of the specified locale. */ +@OptIn(ExperimentalStdlibApi::class) @kotlin.internal.InlineOnly -public inline fun String.toLowerCase(locale: java.util.Locale): String = (this as java.lang.String).toLowerCase(locale) +public inline fun String.toLowerCase(locale: java.util.Locale): String = lowercase(locale) + +/** + * Returns a copy of this string converted to lower case using the rules of the specified [locale]. + * + * This function supports one-to-many and many-to-one character mapping, + * thus the length of the returned string can be different from the length of the original string. + * + * @sample samples.text.Strings.lowercaseLocale + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public inline fun String.lowercase(locale: Locale): String = (this as java.lang.String).toLowerCase(locale) /** * Returns a copy of this string converted to upper case using the rules of the specified locale. */ +@OptIn(ExperimentalStdlibApi::class) @kotlin.internal.InlineOnly -public inline fun String.toUpperCase(locale: java.util.Locale): String = (this as java.lang.String).toUpperCase(locale) +public inline fun String.toUpperCase(locale: java.util.Locale): String = uppercase(locale) + +/** + * Returns a copy of this string converted to upper case using the rules of the specified [locale]. + * + * This function supports one-to-many and many-to-one character mapping, + * thus the length of the returned string can be different from the length of the original string. + * + * @sample samples.text.Strings.uppercaseLocale + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +@kotlin.internal.InlineOnly +public inline fun String.uppercase(locale: Locale): String = (this as java.lang.String).toUpperCase(locale) /** * Encodes the contents of this string using the specified character set and returns the resulting byte array. @@ -634,19 +684,20 @@ public actual fun String.capitalize(): String { * The title case of a character is usually the same as its upper case with several exceptions. * The particular list of characters with the special title case form depends on the underlying platform. */ +@OptIn(ExperimentalStdlibApi::class) @SinceKotlin("1.4") @WasExperimental(ExperimentalStdlibApi::class) -@kotlin.internal.LowPriorityInOverloadResolution +@kotlin.internal.LowPriorityInOverloadResolution // To avoid conflicts in function references, as this function was introduced later than common capitalize() public fun String.capitalize(locale: Locale): String { if (isNotEmpty()) { val firstChar = this[0] if (firstChar.isLowerCase()) { return buildString { - val titleChar = firstChar.toTitleCase() - if (titleChar != firstChar.toUpperCase()) { + val titleChar = firstChar.titlecaseChar() + if (titleChar != firstChar.uppercaseChar()) { append(titleChar) } else { - append(this@capitalize.substring(0, 1).toUpperCase(locale)) + append(this@capitalize.substring(0, 1).uppercase(locale)) } append(this@capitalize.substring(1)) } @@ -669,11 +720,12 @@ public actual fun String.decapitalize(): String { * Returns a copy of this string having its first letter lowercased using the rules of the specified [locale], * or the original string, if it's empty or already starts with a lower case letter. */ +@OptIn(ExperimentalStdlibApi::class) @SinceKotlin("1.4") @WasExperimental(ExperimentalStdlibApi::class) -@kotlin.internal.LowPriorityInOverloadResolution +@kotlin.internal.LowPriorityInOverloadResolution // To avoid conflicts in function references, as this function was introduced later than common decapitalize() public fun String.decapitalize(locale: Locale): String { - return if (isNotEmpty() && !this[0].isLowerCase()) substring(0, 1).toLowerCase(locale) + substring(1) else this + return if (isNotEmpty() && !this[0].isLowerCase()) substring(0, 1).lowercase(locale) + substring(1) else this } /** diff --git a/libraries/stdlib/jvm/test/text/StringJVMTest.kt b/libraries/stdlib/jvm/test/text/StringJVMTest.kt index d2fc5aa6fb6..0e07ff1c7f6 100644 --- a/libraries/stdlib/jvm/test/text/StringJVMTest.kt +++ b/libraries/stdlib/jvm/test/text/StringJVMTest.kt @@ -75,53 +75,67 @@ class StringJVMTest { } @Test fun capitalize() { + fun testCapitalize(expected: String, string: String) { + assertEquals(expected, string.capitalize()) + assertEquals(expected, string.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() }) + } // Case mapping that results in multiple characters (validating Character.toUpperCase was not used). assertEquals("SSßß", "ßßß".capitalize()) + assertEquals("Ssßß", "ßßß".replaceFirstChar { if (it.isLowerCase()) it.titlecase() else it.toString() }) // Case mapping where title case is different than uppercase and so Character.toTitleCase is preferred. - assertEquals("Dzdzdz", "dzdzdz".capitalize()) - assertEquals("DZDZDZ", "DZDZDZ".capitalize()) + testCapitalize("Dzdzdz", "dzdzdz") + testCapitalize("DZDZDZ", "DZDZDZ") } @Test fun decapitalize() { - assertEquals("aBC", "ABC".decapitalize()) - assertEquals("abc", "Abc".decapitalize()) - assertEquals("abc", "abc".decapitalize()) - + fun testDecapitalize(expected: String, string: String) { + assertEquals(expected, string.decapitalize()) + assertEquals(expected, string.replaceFirstChar { it.lowercase(Locale.getDefault()) }) + } // Case mapping where title case is different than uppercase. - assertEquals("dzdzdz", "DZdzdz".decapitalize()) - assertEquals("dzdzdz", "Dzdzdz".decapitalize()) + testDecapitalize("dzdzdz", "DZdzdz") + testDecapitalize("dzdzdz", "Dzdzdz") } @Test fun capitalizeLocale() { - assertEquals("ABC", "ABC".capitalize(Locale.US)) - assertEquals("Abc", "Abc".capitalize(Locale.US)) - assertEquals("Abc", "abc".capitalize(Locale.US)) + fun testCapitalizeLocale(expected: String, string: String, locale: Locale) { + assertEquals(expected, string.capitalize(locale)) + assertEquals(expected, string.replaceFirstChar { if (it.isLowerCase()) it.titlecase(locale) else it.toString() }) + } + testCapitalizeLocale("ABC", "ABC", Locale.US) + testCapitalizeLocale("Abc", "Abc", Locale.US) + testCapitalizeLocale("Abc", "abc", Locale.US) // Locale-specific case mappings. - assertEquals("İii", "iii".capitalize(Locale("tr", "TR"))) - assertEquals("Iii", "iii".capitalize(Locale.US)) + testCapitalizeLocale("İii", "iii", Locale("tr", "TR")) + testCapitalizeLocale("Iii", "iii", Locale.US) // Case mapping that results in multiple characters (validating Character.toUpperCase was not used). assertEquals("SSßß", "ßßß".capitalize(Locale.US)) + assertEquals("Ssßß", "ßßß".replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.US) else it.toString() }) // Case mapping where title case is different than uppercase and so Character.toTitleCase is preferred. - assertEquals("Dzdzdz", "dzdzdz".capitalize(Locale.US)) - assertEquals("DZDZDZ", "DZDZDZ".capitalize(Locale.US)) + testCapitalizeLocale("Dzdzdz", "dzdzdz", Locale.US) + testCapitalizeLocale("DZDZDZ", "DZDZDZ", Locale.US) } @Test fun decapitalizeLocale() { - assertEquals("aBC", "ABC".decapitalize(Locale.US)) - assertEquals("abc", "Abc".decapitalize(Locale.US)) - assertEquals("abc", "abc".decapitalize(Locale.US)) + fun testDecapitalizeLocale(expected: String, string: String, locale: Locale) { + assertEquals(expected, string.decapitalize(locale)) + assertEquals(expected, string.replaceFirstChar { it.lowercase(locale) }) + } + testDecapitalizeLocale("aBC", "ABC", Locale.US) + testDecapitalizeLocale("abc", "Abc", Locale.US) + testDecapitalizeLocale("abc", "abc", Locale.US) // Locale-specific case mappings. - assertEquals("ıII", "III".decapitalize(Locale("tr", "TR"))) - assertEquals("iII", "III".decapitalize(Locale.US)) + testDecapitalizeLocale("ıII", "III", Locale("tr", "TR")) + testDecapitalizeLocale("iII", "III", Locale.US) // Case mapping where title case is different than uppercase. - assertEquals("dzdzdz", "DZdzdz".decapitalize(Locale.US)) - assertEquals("dzdzdz", "Dzdzdz".decapitalize(Locale.US)) + testDecapitalizeLocale("dzdzdz", "DZdzdz", Locale.US) + testDecapitalizeLocale("dzdzdz", "Dzdzdz", Locale.US) } @Test diff --git a/libraries/stdlib/samples/test/samples/text/char.kt b/libraries/stdlib/samples/test/samples/text/char.kt index bbee1094508..493cf8815a6 100644 --- a/libraries/stdlib/samples/test/samples/text/char.kt +++ b/libraries/stdlib/samples/test/samples/text/char.kt @@ -1,8 +1,8 @@ package samples.text import samples.* -import kotlin.test.* import java.util.* +import kotlin.test.* class Chars { @@ -83,17 +83,41 @@ class Chars { } @Sample - fun toUpperCase() { - val chars = listOf('a', 'ω', '1', 'A', '+') - val upperCases = chars.map { it.toUpperCase() } - assertPrints(upperCases, "[A, Ω, 1, A, +]") + fun uppercase() { + val chars = listOf('a', 'ω', '1', 'ʼn', 'A', '+', 'ß') + val uppercaseChar = chars.map { it.uppercaseChar() } + val uppercase = chars.map { it.uppercase() } + assertPrints(uppercaseChar, "[A, Ω, 1, ʼn, A, +, ß]") + assertPrints(uppercase, "[A, Ω, 1, ʼN, A, +, SS]") } @Sample - fun toLowerCase() { - val chars = listOf('A', 'Ω', '1', 'a', '+') - val lowerCases = chars.map { it.toLowerCase() } - assertPrints(lowerCases, "[a, ω, 1, a, +]") + fun uppercaseLocale() { + val chars = listOf('a', '1', 'ʼn', 'A', '+', 'i') + val uppercase = chars.map { it.uppercase() } + val turkishLocale = Locale.forLanguageTag("tr") + val uppercaseTurkish = chars.map { it.uppercase(turkishLocale) } + assertPrints(uppercase, "[A, 1, ʼN, A, +, I]") + assertPrints(uppercaseTurkish, "[A, 1, ʼN, A, +, İ]") + } + + @Sample + fun lowercase() { + val chars = listOf('A', 'Ω', '1', 'a', '+', 'İ') + val lowercaseChar = chars.map { it.lowercaseChar() } + val lowercase = chars.map { it.lowercase() } + assertPrints(lowercaseChar, "[a, ω, 1, a, +, i]") + assertPrints(lowercase, "[a, ω, 1, a, +, \u0069\u0307]") + } + + @Sample + fun lowercaseLocale() { + val chars = listOf('A', 'Ω', '1', 'a', '+', 'İ') + val lowercase = chars.map { it.lowercase() } + val turkishLocale = Locale.forLanguageTag("tr") + val lowercaseTurkish = chars.map { it.lowercase(turkishLocale) } + assertPrints(lowercase, "[a, ω, 1, a, +, \u0069\u0307]") + assertPrints(lowercaseTurkish, "[a, ω, 1, a, +, i]") } @Sample @@ -105,10 +129,22 @@ class Chars { } @Sample - fun toTitleCase() { - val chars = listOf('a', 'Dž', '1', '+') - val titleCases = chars.map { it.toTitleCase() } - assertPrints(titleCases, "[A, Dž, 1, +]") + fun titlecase() { + val chars = listOf('a', 'Dž', 'ʼn', '+', 'ß') + val titlecaseChar = chars.map { it.titlecaseChar() } + val titlecase = chars.map { it.titlecase() } + assertPrints(titlecaseChar, "[A, Dž, ʼn, +, ß]") + assertPrints(titlecase, "[A, Dž, ʼN, +, Ss]") + } + + @Sample + fun titlecaseLocale() { + val chars = listOf('a', 'Dž', 'ʼn', '+', 'ß', 'i') + val titlecase = chars.map { it.titlecase() } + val turkishLocale = Locale.forLanguageTag("tr") + val titlecaseTurkish = chars.map { it.titlecase(turkishLocale) } + assertPrints(titlecase, "[A, Dž, ʼN, +, Ss, I]") + assertPrints(titlecaseTurkish, "[A, Dž, ʼN, +, Ss, İ]") } @Sample diff --git a/libraries/stdlib/samples/test/samples/text/strings.kt b/libraries/stdlib/samples/test/samples/text/strings.kt index a30b571ce47..6faa1ef3826 100644 --- a/libraries/stdlib/samples/test/samples/text/strings.kt +++ b/libraries/stdlib/samples/test/samples/text/strings.kt @@ -1,6 +1,7 @@ package samples.text import samples.* +import java.util.Locale import kotlin.test.* class Strings { @@ -17,6 +18,15 @@ class Strings { assertPrints("Abcd".decapitalize(), "abcd") } + @Sample + fun replaceFirstChar() { + assertPrints("kotlin".replaceFirstChar { it.uppercase() }, "Kotlin") + + val sentence = "Welcome to Kotlin!" + val words = sentence.split(' '); + assertPrints(words.joinToString(separator = "_") { word -> word.replaceFirstChar { it.lowercase() } }, "welcome_to_kotlin!") + } + @Sample fun repeat() { assertPrints("Word".repeat(4), "WordWordWordWord") @@ -205,13 +215,27 @@ class Strings { } @Sample - fun toLowerCase() { - assertPrints("Iced frappé!".toLowerCase(), "iced frappé!") + fun lowercase() { + assertPrints("Iced frappé!".lowercase(), "iced frappé!") } @Sample - fun toUpperCase() { - assertPrints("Iced frappé!".toUpperCase(), "ICED FRAPPÉ!") + fun lowercaseLocale() { + assertPrints("KOTLIN".lowercase(), "kotlin") + val turkishLocale = Locale.forLanguageTag("tr") + assertPrints("KOTLIN".lowercase(turkishLocale), "kotlın") + } + + @Sample + fun uppercase() { + assertPrints("Iced frappé!".uppercase(), "ICED FRAPPÉ!") + } + + @Sample + fun uppercaseLocale() { + assertPrints("Kotlin".uppercase(), "KOTLIN") + val turkishLocale = Locale.forLanguageTag("tr") + assertPrints("Kotlin".uppercase(turkishLocale), "KOTLİN") } @Sample diff --git a/libraries/stdlib/src/kotlin/text/Char.kt b/libraries/stdlib/src/kotlin/text/Char.kt index d422e6ae8ea..e8de0008915 100644 --- a/libraries/stdlib/src/kotlin/text/Char.kt +++ b/libraries/stdlib/src/kotlin/text/Char.kt @@ -8,6 +8,70 @@ package kotlin.text +/** + * Converts this character to lower case using Unicode mapping rules of the invariant locale. + */ +public expect fun Char.toLowerCase(): Char + +/** + * Converts this character to lower case using Unicode mapping rules of the invariant locale. + * + * This function performs one-to-one character mapping. + * To support one-to-many character mapping use the [lowercase] function. + * If this character has no mapping equivalent, the character itself is returned. + * + * @sample samples.text.Chars.lowercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +public expect fun Char.lowercaseChar(): Char + +/** + * Converts this character to lower case using Unicode mapping rules of the invariant locale. + * + * This function supports one-to-many character mapping, thus the length of the returned string can be greater than one. + * For example, `'\u0130'.lowercase()` returns `"\u0069\u0307"`, + * where `'\u0130'` is the LATIN CAPITAL LETTER I WITH DOT ABOVE character (`İ`). + * If this character has no lower case mapping, the result of `toString()` of this char is returned. + * + * @sample samples.text.Chars.lowercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +public expect fun Char.lowercase(): String + +/** + * Converts this character to upper case using Unicode mapping rules of the invariant locale. + */ +public expect fun Char.toUpperCase(): Char + +/** + * Converts this character to upper case using Unicode mapping rules of the invariant locale. + * + * This function performs one-to-one character mapping. + * To support one-to-many character mapping use the [uppercase] function. + * If this character has no mapping equivalent, the character itself is returned. + * + * @sample samples.text.Chars.uppercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +public expect fun Char.uppercaseChar(): Char + +/** + * Converts this character to upper case using Unicode mapping rules of the invariant locale. + * + * This function supports one-to-many character mapping, thus the length of the returned string can be greater than one. + * For example, `'\uFB00'.uppercase()` returns `"\u0046\u0046"`, + * where `'\uFB00'` is the LATIN SMALL LIGATURE FF character (`ff`). + * If this character has no upper case mapping, the result of `toString()` of this char is returned. + * + * @sample samples.text.Chars.uppercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +public expect fun Char.uppercase(): String + /** * Concatenates this Char and a String. * @@ -23,17 +87,18 @@ public inline operator fun Char.plus(other: String): String = this.toString() + * * Two characters are considered the same ignoring case if at least one of the following is `true`: * - The two characters are the same (as compared by the == operator) - * - Applying the method [toUpperCase] to each character produces the same result - * - Applying the method [toLowerCase] to each character produces the same result + * - Applying the method [uppercaseChar] to each character produces the same result + * - Applying the method [lowercaseChar] to each character produces the same result * * @sample samples.text.Chars.equals */ +@OptIn(ExperimentalStdlibApi::class) public fun Char.equals(other: Char, ignoreCase: Boolean = false): Boolean { if (this == other) return true if (!ignoreCase) return false - if (this.toUpperCase() == other.toUpperCase()) return true - if (this.toLowerCase() == other.toLowerCase()) return true + if (this.uppercaseChar() == other.uppercaseChar()) return true + if (this.lowercaseChar() == other.lowercaseChar()) return true return false } diff --git a/libraries/stdlib/src/kotlin/text/Strings.kt b/libraries/stdlib/src/kotlin/text/Strings.kt index fbdc097e20c..a0d00a730e3 100644 --- a/libraries/stdlib/src/kotlin/text/Strings.kt +++ b/libraries/stdlib/src/kotlin/text/Strings.kt @@ -9,6 +9,60 @@ package kotlin.text import kotlin.contracts.contract +import kotlin.jvm.JvmName + +/** + * Returns a copy of this string converted to upper case using the rules of the default locale. + */ +public expect fun String.toUpperCase(): String + +/** + * Returns a copy of this string converted to upper case using Unicode mapping rules of the invariant locale. + * + * This function supports one-to-many and many-to-one character mapping, + * thus the length of the returned string can be different from the length of the original string. + * + * @sample samples.text.Strings.uppercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +public expect fun String.uppercase(): String + +/** + * Returns a copy of this string converted to lower case using the rules of the default locale. + */ +public expect fun String.toLowerCase(): String + +/** + * Returns a copy of this string converted to lower case using Unicode mapping rules of the invariant locale. + * + * This function supports one-to-many and many-to-one character mapping, + * thus the length of the returned string can be different from the length of the original string. + * + * @sample samples.text.Strings.lowercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +public expect fun String.lowercase(): String + +/** + * Returns a copy of this string having its first letter titlecased using the rules of the default locale, + * or the original string if it's empty or already starts with a title case letter. + * + * The title case of a character is usually the same as its upper case with several exceptions. + * The particular list of characters with the special title case form depends on the underlying platform. + * + * @sample samples.text.Strings.capitalize + */ +public expect fun String.capitalize(): String + +/** + * Returns a copy of this string having its first letter lowercased using the rules of the default locale, + * or the original string if it's empty or already starts with a lower case letter. + * + * @sample samples.text.Strings.decapitalize + */ +public expect fun String.decapitalize(): String /** * Returns a sub sequence of this char sequence having leading and trailing characters matching the [predicate] removed. @@ -710,6 +764,42 @@ public inline fun CharSequence.replace(regex: Regex, noinline transform: (MatchR @kotlin.internal.InlineOnly public inline fun CharSequence.replaceFirst(regex: Regex, replacement: String): String = regex.replaceFirst(this, replacement) +/** + * Returns a copy of this string having its first character replaced with the result of the specified [transform], + * or the original string if it's empty. + * + * @param transform function that takes the first character and returns the result of the transform applied to the character. + * + * @sample samples.text.Strings.replaceFirstChar + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +@OptIn(kotlin.experimental.ExperimentalTypeInference::class) +@OverloadResolutionByLambdaReturnType +@JvmName("replaceFirstCharWithChar") +@kotlin.internal.InlineOnly +public inline fun String.replaceFirstChar(transform: (Char) -> Char): String { + return if (isNotEmpty()) transform(this[0]) + substring(1) else this +} + +/** + * Returns a copy of this string having its first character replaced with the result of the specified [transform], + * or the original string if it's empty. + * + * @param transform function that takes the first character and returns the result of the transform applied to the character. + * + * @sample samples.text.Strings.replaceFirstChar + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +@OptIn(kotlin.experimental.ExperimentalTypeInference::class) +@OverloadResolutionByLambdaReturnType +@JvmName("replaceFirstCharWithCharSequence") +@kotlin.internal.InlineOnly +public inline fun String.replaceFirstChar(transform: (Char) -> CharSequence): String { + return if (isNotEmpty()) transform(this[0]).toString() + substring(1) else this +} + /** * Returns `true` if this char sequence matches the given regular expression. diff --git a/libraries/stdlib/test/OrderingTest.kt b/libraries/stdlib/test/OrderingTest.kt index 727a16d2d11..48fa0a3af79 100644 --- a/libraries/stdlib/test/OrderingTest.kt +++ b/libraries/stdlib/test/OrderingTest.kt @@ -16,7 +16,7 @@ data class Item(val name: String, val rating: Int) : Comparable { @SharedImmutable val STRING_CASE_INSENSITIVE_ORDER: Comparator = - compareBy { it: String -> it.toUpperCase() }.thenBy { it.toLowerCase() }.thenBy { it } + compareBy { it: String -> it.uppercase() }.thenBy { it.lowercase() }.thenBy { it } class OrderingTest { val v1 = Item("wine", 9) diff --git a/libraries/stdlib/test/collections/ArraysTest.kt b/libraries/stdlib/test/collections/ArraysTest.kt index b65223050d3..2037f47b34c 100644 --- a/libraries/stdlib/test/collections/ArraysTest.kt +++ b/libraries/stdlib/test/collections/ArraysTest.kt @@ -1369,7 +1369,7 @@ class ArraysTest { assertEquals(mapOf("Alice" to 5, "Bob" to 3, "Carol" to 5), itemsWithTheirLength) val updatedLength = items.copyOfRange(1, 3) - .associateWithTo(itemsWithTheirLength.toMutableMap()) { name -> name.toLowerCase().count { it in "aeuio" } } + .associateWithTo(itemsWithTheirLength.toMutableMap()) { name -> name.lowercase().count { it in "aeuio" } } assertEquals(mapOf("Alice" to 5, "Bob" to 1, "Carol" to 2), updatedLength) } diff --git a/libraries/stdlib/test/collections/CollectionTest.kt b/libraries/stdlib/test/collections/CollectionTest.kt index d23e1a714fe..193ed2a8a0f 100644 --- a/libraries/stdlib/test/collections/CollectionTest.kt +++ b/libraries/stdlib/test/collections/CollectionTest.kt @@ -489,7 +489,7 @@ class CollectionTest { assertEquals(mapOf("Alice" to 5, "Bob" to 3, "Carol" to 5), itemsWithTheirLength) val updatedLength = - items.drop(1).associateWithTo(itemsWithTheirLength.toMutableMap()) { name -> name.toLowerCase().count { it in "aeuio" }} + items.drop(1).associateWithTo(itemsWithTheirLength.toMutableMap()) { name -> name.lowercase().count { it in "aeuio" }} assertEquals(mapOf("Alice" to 5, "Bob" to 1, "Carol" to 2), updatedLength) } @@ -1099,7 +1099,7 @@ class CollectionTest { } @Test fun sortedWith() { - val comparator = compareBy { it.toUpperCase().reversed() } + val comparator = compareBy { it.uppercase().reversed() } val data = listOf("cat", "dad", "BAD") expect(listOf("BAD", "dad", "cat")) { data.sortedWith(comparator) } diff --git a/libraries/stdlib/test/collections/IterableTests.kt b/libraries/stdlib/test/collections/IterableTests.kt index c0ab3cb0f85..5b215343c70 100644 --- a/libraries/stdlib/test/collections/IterableTests.kt +++ b/libraries/stdlib/test/collections/IterableTests.kt @@ -485,7 +485,7 @@ abstract class IterableTests>(val createFrom: (Array name.toLowerCase().count { it in "aeuio" }} + items.drop(1).associateWithTo(itemsWithTheirLength.toMutableMap()) { name -> name.lowercase().count { it in "aeuio" }} assertEquals(mapOf("Alice" to 5, "Bob" to 1, "Carol" to 2), updatedLength) } diff --git a/libraries/stdlib/test/text/RegexTest.kt b/libraries/stdlib/test/text/RegexTest.kt index 72b7ef919c8..523252b5f21 100644 --- a/libraries/stdlib/test/text/RegexTest.kt +++ b/libraries/stdlib/test/text/RegexTest.kt @@ -56,7 +56,7 @@ class RegexTest { @Test fun matchIgnoreCase() { for (input in listOf("ascii", "shrödinger")) - assertTrue(input.toUpperCase().matches(input.toLowerCase().toRegex(RegexOption.IGNORE_CASE))) + assertTrue(input.uppercase().matches(input.lowercase().toRegex(RegexOption.IGNORE_CASE))) } @Test fun matchSequence() { diff --git a/libraries/stdlib/test/text/StringNumberConversionTest.kt b/libraries/stdlib/test/text/StringNumberConversionTest.kt index adc6d60ff9b..a53206ac515 100644 --- a/libraries/stdlib/test/text/StringNumberConversionTest.kt +++ b/libraries/stdlib/test/text/StringNumberConversionTest.kt @@ -289,7 +289,7 @@ class StringNumberConversionTest { } @Test fun shortToStringWithRadix() { - assertEquals("7FFF", 0x7FFF.toShort().toString(radix = 16).toUpperCase()) + assertEquals("7FFF", 0x7FFF.toShort().toString(radix = 16).uppercase()) assertEquals("-8000", (-0x8000).toShort().toString(radix = 16)) assertEquals("-sfs", (-29180).toShort().toString(radix = 32)) @@ -328,7 +328,7 @@ class StringNumberConversionTest { } @Test fun ushortToStringWithRadix() { - assertEquals("7FFF", 0x7FFF.toUShort().toString(radix = 16).toUpperCase()) + assertEquals("7FFF", 0x7FFF.toUShort().toString(radix = 16).uppercase()) assertEquals("8000", 0x8000.toUShort().toString(radix = 16)) assertEquals("ffff", UShort.MAX_VALUE.toString(radix = 16)) diff --git a/libraries/stdlib/test/text/StringTest.kt b/libraries/stdlib/test/text/StringTest.kt index 5d0665a237c..ba26d28d94c 100644 --- a/libraries/stdlib/test/text/StringTest.kt +++ b/libraries/stdlib/test/text/StringTest.kt @@ -8,7 +8,6 @@ package test.text import kotlin.test.* import test.* import test.collections.behaviors.iteratorBehavior -import test.collections.behaviors.setBehavior import test.collections.compare import kotlin.math.sign import kotlin.native.concurrent.SharedImmutable @@ -290,18 +289,26 @@ class StringTest { } @Test fun capitalize() { - assertEquals("A", "A".capitalize()) - assertEquals("A", "a".capitalize()) - assertEquals("Abcd", "abcd".capitalize()) - assertEquals("Abcd", "Abcd".capitalize()) + fun testCapitalize(expected: String, string: String) { + assertEquals(expected, string.capitalize()) + assertEquals(expected, string.replaceFirstChar { it.uppercase() }) + } + testCapitalize("A", "A") + testCapitalize("A", "a") + testCapitalize("Abcd", "abcd") + testCapitalize("Abcd", "Abcd") } @Test fun decapitalize() { - assertEquals("a", "A".decapitalize()) - assertEquals("a", "a".decapitalize()) - assertEquals("abcd", "abcd".decapitalize()) - assertEquals("abcd", "Abcd".decapitalize()) - assertEquals("uRL", "URL".decapitalize()) + fun testDecapitalize(expected: String, string: String) { + assertEquals(expected, string.decapitalize()) + assertEquals(expected, string.replaceFirstChar { it.lowercase() }) + } + testDecapitalize("a", "A") + testDecapitalize("a", "a") + testDecapitalize("abcd", "abcd") + testDecapitalize("abcd", "Abcd") + testDecapitalize("uRL", "URL") } @Test fun slice() { @@ -1450,7 +1457,7 @@ class StringTest { assertEquals("[v-e-r-y-l-o-n-g-s-t-r-oops]", result2) val data3 = "a1/b".toList() - val result3 = data3.joinToString() { it.toUpperCase().toString() } + val result3 = data3.joinToString() { it.uppercase() } assertEquals("A, 1, /, B", result3) } diff --git a/libraries/stdlib/wasm/src/kotlin/Text.kt b/libraries/stdlib/wasm/src/kotlin/Text.kt index 9e2efe0528e..4d0c8fcc931 100644 --- a/libraries/stdlib/wasm/src/kotlin/Text.kt +++ b/libraries/stdlib/wasm/src/kotlin/Text.kt @@ -64,11 +64,73 @@ actual enum class RegexOption { // From char.kt actual fun Char.isWhitespace(): Boolean = TODO("Wasm stdlib: Text") -actual fun Char.toLowerCase(): Char = TODO("Wasm stdlib: Text") -actual fun Char.toUpperCase(): Char = TODO("Wasm stdlib: Text") actual fun Char.isHighSurrogate(): Boolean = TODO("Wasm stdlib: Text") actual fun Char.isLowSurrogate(): Boolean = TODO("Wasm stdlib: Text") +/** + * Converts this character to lower case using Unicode mapping rules of the invariant locale. + */ +public actual fun Char.toLowerCase(): Char = TODO("Wasm stdlib: Text") + +/** + * Converts this character to lower case using Unicode mapping rules of the invariant locale. + * + * This function performs one-to-one character mapping. + * To support one-to-many character mapping use the [lowercase] function. + * If this character has no mapping equivalent, the character itself is returned. + * + * @sample samples.text.Chars.lowercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +public actual fun Char.lowercaseChar(): Char = TODO("Wasm stdlib: Text") + +/** + * Converts this character to lower case using Unicode mapping rules of the invariant locale. + * + * This function supports one-to-many character mapping, thus the length of the returned string can be greater than one. + * For example, `'\u0130'.lowercase()` returns `"\u0069\u0307"`, + * where `'\u0130'` is the LATIN CAPITAL LETTER I WITH DOT ABOVE character (`İ`). + * If this character has no lower case mapping, the result of `toString()` of this char is returned. + * + * @sample samples.text.Chars.lowercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +public actual fun Char.lowercase(): String = TODO("Wasm stdlib: Text") + +/** + * Converts this character to upper case using Unicode mapping rules of the invariant locale. + */ +public actual fun Char.toUpperCase(): Char = TODO("Wasm stdlib: Text") + +/** + * Converts this character to upper case using Unicode mapping rules of the invariant locale. + * + * This function performs one-to-one character mapping. + * To support one-to-many character mapping use the [uppercase] function. + * If this character has no mapping equivalent, the character itself is returned. + * + * @sample samples.text.Chars.uppercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +public actual fun Char.uppercaseChar(): Char = TODO("Wasm stdlib: Text") + +/** + * Converts this character to upper case using Unicode mapping rules of the invariant locale. + * + * This function supports one-to-many character mapping, thus the length of the returned string can be greater than one. + * For example, `'\uFB00'.uppercase()` returns `"\u0046\u0046"`, + * where `'\uFB00'` is the LATIN SMALL LIGATURE FF character (`ff`). + * If this character has no upper case mapping, the result of `toString()` of this char is returned. + * + * @sample samples.text.Chars.uppercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +public actual fun Char.uppercase(): String = TODO("Wasm stdlib: Text") + // From string.kt @@ -193,17 +255,38 @@ public actual fun String.substring(startIndex: Int, endIndex: Int): String = TOD /** * Returns a copy of this string converted to upper case using the rules of the default locale. - * - * @sample samples.text.Strings.toUpperCase */ public actual fun String.toUpperCase(): String = TODO("Wasm stdlib: Text") /** - * Returns a copy of this string converted to lower case using the rules of the default locale. + * Returns a copy of this string converted to upper case using Unicode mapping rules of the invariant locale. * - * @sample samples.text.Strings.toLowerCase + * This function supports one-to-many and many-to-one character mapping, + * thus the length of the returned string can be different from the length of the original string. + * + * @sample samples.text.Strings.uppercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +public actual fun String.uppercase(): String = TODO("Wasm stdlib: Text") + +/** + * Returns a copy of this string converted to lower case using the rules of the default locale. */ public actual fun String.toLowerCase(): String = TODO("Wasm stdlib: Text") + +/** + * Returns a copy of this string converted to lower case using Unicode mapping rules of the invariant locale. + * + * This function supports one-to-many and many-to-one character mapping, + * thus the length of the returned string can be different from the length of the original string. + * + * @sample samples.text.Strings.lowercase + */ +@SinceKotlin("1.4") +@ExperimentalStdlibApi +public actual fun String.lowercase(): String = TODO("Wasm stdlib: Text") + public actual fun String.capitalize(): String = TODO("Wasm stdlib: Text") public actual fun String.decapitalize(): String = TODO("Wasm stdlib: Text") public actual fun CharSequence.repeat(n: Int): String = TODO("Wasm stdlib: Text") diff --git a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt index 8e87548bb66..e31d9550e55 100644 --- a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt +++ b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt @@ -5113,6 +5113,10 @@ public final class kotlin/text/CharsKt { public static final fun getDirectionality (C)Lkotlin/text/CharDirectionality; public static final fun isSurrogate (C)Z public static final fun isWhitespace (C)Z + public static final fun lowercase (CLjava/util/Locale;)Ljava/lang/String; + public static final fun titlecase (C)Ljava/lang/String; + public static final fun titlecase (CLjava/util/Locale;)Ljava/lang/String; + public static final fun uppercase (CLjava/util/Locale;)Ljava/lang/String; } public final class kotlin/text/Charsets { From 81e00ca371f460016d58ff8a8af45b7725247c3d Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Tue, 29 Dec 2020 16:27:04 +0300 Subject: [PATCH 31/71] JVM box tests for KT-30402 --- .../ir/FirBlackBoxCodegenTestGenerated.java | 5 +++++ .../testData/codegen/box/unsignedTypes/kt30402.kt | 14 ++++++++++++++ .../codegen/BlackBoxCodegenTestGenerated.java | 5 +++++ .../codegen/LightAnalysisModeTestGenerated.java | 5 +++++ .../codegen/ir/IrBlackBoxCodegenTestGenerated.java | 5 +++++ .../semantics/IrJsCodegenBoxES6TestGenerated.java | 5 +++++ .../ir/semantics/IrJsCodegenBoxTestGenerated.java | 5 +++++ .../test/semantics/JsCodegenBoxTestGenerated.java | 5 +++++ .../semantics/IrCodegenBoxWasmTestGenerated.java | 5 +++++ 9 files changed, 54 insertions(+) create mode 100644 compiler/testData/codegen/box/unsignedTypes/kt30402.kt diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java index 14cc6ac517f..f59fdbf70bb 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java @@ -32388,6 +32388,11 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/unsignedTypes/kt25784.kt"); } + @TestMetadata("kt30402.kt") + public void testKt30402() throws Exception { + runTest("compiler/testData/codegen/box/unsignedTypes/kt30402.kt"); + } + @TestMetadata("kt43286.kt") public void testKt43286() throws Exception { runTest("compiler/testData/codegen/box/unsignedTypes/kt43286.kt"); diff --git a/compiler/testData/codegen/box/unsignedTypes/kt30402.kt b/compiler/testData/codegen/box/unsignedTypes/kt30402.kt new file mode 100644 index 00000000000..8c2e612b4cb --- /dev/null +++ b/compiler/testData/codegen/box/unsignedTypes/kt30402.kt @@ -0,0 +1,14 @@ +// WITH_RUNTIME +// IGNORE_BACKEND: JVM +// IGNORE_BACKEND: JS_IR +// IGNORE_LIGHT_ANALYSIS + +val unsigned = 0x8fffffffU +val good = "123 " + unsigned +val bad = "123 " + 0x8fffffffU + +fun box(): String { + if (good != "123 2415919103") return "good: '$good'" + if (bad != "123 2415919103") return "bad: '$bad'" + return "OK" +} \ No newline at end of file diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index aa9727d8756..06d5a75b64f 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -32754,6 +32754,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/unsignedTypes/kt25784.kt"); } + @TestMetadata("kt30402.kt") + public void testKt30402() throws Exception { + runTest("compiler/testData/codegen/box/unsignedTypes/kt30402.kt"); + } + @TestMetadata("kt43286.kt") public void testKt43286() throws Exception { runTest("compiler/testData/codegen/box/unsignedTypes/kt43286.kt"); diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index d4afe6337ce..af75f58cbae 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -30280,6 +30280,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) public static class UnsignedTypes extends AbstractLightAnalysisModeTest { + @TestMetadata("kt30402.kt") + public void ignoreKt30402() throws Exception { + runTest("compiler/testData/codegen/box/unsignedTypes/kt30402.kt"); + } + private void runTest(String testDataFilePath) throws Exception { KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath); } diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index 637ce137d5b..973aed6b420 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -32388,6 +32388,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/unsignedTypes/kt25784.kt"); } + @TestMetadata("kt30402.kt") + public void testKt30402() throws Exception { + runTest("compiler/testData/codegen/box/unsignedTypes/kt30402.kt"); + } + @TestMetadata("kt43286.kt") public void testKt43286() throws Exception { runTest("compiler/testData/codegen/box/unsignedTypes/kt43286.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index 5e88c866dd6..2edd845b43e 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -26199,6 +26199,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes runTest("compiler/testData/codegen/box/unsignedTypes/kt25784.kt"); } + @TestMetadata("kt30402.kt") + public void testKt30402() throws Exception { + runTest("compiler/testData/codegen/box/unsignedTypes/kt30402.kt"); + } + @TestMetadata("kt43286.kt") public void testKt43286() throws Exception { runTest("compiler/testData/codegen/box/unsignedTypes/kt43286.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index 6bf98298989..c1f816bd5de 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -26199,6 +26199,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/unsignedTypes/kt25784.kt"); } + @TestMetadata("kt30402.kt") + public void testKt30402() throws Exception { + runTest("compiler/testData/codegen/box/unsignedTypes/kt30402.kt"); + } + @TestMetadata("kt43286.kt") public void testKt43286() throws Exception { runTest("compiler/testData/codegen/box/unsignedTypes/kt43286.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index fb64cbbe42e..70cc075d31d 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -26199,6 +26199,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/unsignedTypes/kt25784.kt"); } + @TestMetadata("kt30402.kt") + public void testKt30402() throws Exception { + runTest("compiler/testData/codegen/box/unsignedTypes/kt30402.kt"); + } + @TestMetadata("kt43286.kt") public void testKt43286() throws Exception { runTest("compiler/testData/codegen/box/unsignedTypes/kt43286.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java index 5f97f29546a..6bee512e911 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java @@ -14442,6 +14442,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest runTest("compiler/testData/codegen/box/unsignedTypes/iterateOverListOfBoxedUnsignedValues.kt"); } + @TestMetadata("kt30402.kt") + public void testKt30402() throws Exception { + runTest("compiler/testData/codegen/box/unsignedTypes/kt30402.kt"); + } + @TestMetadata("kt43286.kt") public void testKt43286() throws Exception { runTest("compiler/testData/codegen/box/unsignedTypes/kt43286.kt"); From 3e3ffee2a042329fbc7cfeb0f6f1a66953e01207 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Wed, 30 Dec 2020 11:37:37 +0300 Subject: [PATCH 32/71] Advance bootstrap to 1.5.0-dev-1141 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 34d85ab19c6..dbb2da7fa85 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,7 +17,7 @@ kotlin.build.useIR=true #maven.repository.mirror=http://repository.jetbrains.com/remote-repos/ #bootstrap.kotlin.repo=https://dl.bintray.com/kotlin/kotlin-dev #bootstrap.kotlin.version=1.1.50-dev-1451 -bootstrap.kotlin.default.version=1.5.0-dev-309 +bootstrap.kotlin.default.version=1.5.0-dev-1141 kotlin.build.publishing.attempts=20 #signingRequired=true From 7fa04afda2ad67b64fe221675e12f9fe683ac17f Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Wed, 30 Dec 2020 12:15:12 +0300 Subject: [PATCH 33/71] JVM_IR KT-32115 fix $$delegatedProperties initialization in enum --- .../ir/FirBlackBoxCodegenTestGenerated.java | 5 +++++ .../jvm/lower/StaticInitializersLowering.kt | 9 +++++---- .../delegatedProperty/delegatedPropertyInEnum.kt | 14 ++++++++++++++ .../codegen/BlackBoxCodegenTestGenerated.java | 5 +++++ .../codegen/LightAnalysisModeTestGenerated.java | 5 +++++ .../codegen/ir/IrBlackBoxCodegenTestGenerated.java | 5 +++++ .../semantics/IrJsCodegenBoxES6TestGenerated.java | 5 +++++ .../ir/semantics/IrJsCodegenBoxTestGenerated.java | 5 +++++ .../test/semantics/JsCodegenBoxTestGenerated.java | 5 +++++ 9 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 compiler/testData/codegen/box/delegatedProperty/delegatedPropertyInEnum.kt diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java index f59fdbf70bb..7cc6dc8c61c 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java @@ -10030,6 +10030,11 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/delegatedProperty/delegateWithPrivateSet.kt"); } + @TestMetadata("delegatedPropertyInEnum.kt") + public void testDelegatedPropertyInEnum() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegatedPropertyInEnum.kt"); + } + @TestMetadata("extensionDelegatesWithSameNames.kt") public void testExtensionDelegatesWithSameNames() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/extensionDelegatesWithSameNames.kt"); diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/StaticInitializersLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/StaticInitializersLowering.kt index fbd1bd292d9..8b081101072 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/StaticInitializersLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/StaticInitializersLowering.kt @@ -30,10 +30,11 @@ class StaticInitializersLowering(override val context: JvmBackendContext) : Init if (staticInitializerStatements.isNotEmpty()) { staticInitializerStatements.sortBy { when ((it as? IrSetField)?.symbol?.owner?.origin) { - IrDeclarationOrigin.FIELD_FOR_ENUM_ENTRY -> 1 - IrDeclarationOrigin.FIELD_FOR_ENUM_VALUES -> 2 - IrDeclarationOrigin.FIELD_FOR_OBJECT_INSTANCE -> 3 - else -> 4 + JvmLoweredDeclarationOrigin.GENERATED_PROPERTY_REFERENCE -> 1 + IrDeclarationOrigin.FIELD_FOR_ENUM_ENTRY -> 2 + IrDeclarationOrigin.FIELD_FOR_ENUM_VALUES -> 3 + IrDeclarationOrigin.FIELD_FOR_OBJECT_INSTANCE -> 4 + else -> 5 } } irClass.addFunction { diff --git a/compiler/testData/codegen/box/delegatedProperty/delegatedPropertyInEnum.kt b/compiler/testData/codegen/box/delegatedProperty/delegatedPropertyInEnum.kt new file mode 100644 index 00000000000..6b5e34adeb9 --- /dev/null +++ b/compiler/testData/codegen/box/delegatedProperty/delegatedPropertyInEnum.kt @@ -0,0 +1,14 @@ +// IGNORE_BACKEND: JVM +// IGNORE_LIGHT_ANALYSIS + +object D { + operator fun getValue(a: Any?, b: Any?): String = "OK" +} + +enum class A { + GOO; + val a by D + val b = a +} + +fun box() = A.GOO.b \ No newline at end of file diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index 06d5a75b64f..83b472c9b99 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -10030,6 +10030,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/delegatedProperty/delegateWithPrivateSet.kt"); } + @TestMetadata("delegatedPropertyInEnum.kt") + public void testDelegatedPropertyInEnum() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegatedPropertyInEnum.kt"); + } + @TestMetadata("extensionDelegatesWithSameNames.kt") public void testExtensionDelegatesWithSameNames() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/extensionDelegatesWithSameNames.kt"); diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index af75f58cbae..b3315eddeb7 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -9957,6 +9957,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) public static class DelegatedProperty extends AbstractLightAnalysisModeTest { + @TestMetadata("delegatedPropertyInEnum.kt") + public void ignoreDelegatedPropertyInEnum() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegatedPropertyInEnum.kt"); + } + @TestMetadata("genericDelegateUncheckedCast2.kt") public void ignoreGenericDelegateUncheckedCast2() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/genericDelegateUncheckedCast2.kt"); diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index 973aed6b420..7bb97b8905a 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -10030,6 +10030,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/delegatedProperty/delegateWithPrivateSet.kt"); } + @TestMetadata("delegatedPropertyInEnum.kt") + public void testDelegatedPropertyInEnum() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegatedPropertyInEnum.kt"); + } + @TestMetadata("extensionDelegatesWithSameNames.kt") public void testExtensionDelegatesWithSameNames() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/extensionDelegatesWithSameNames.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index 2edd845b43e..322ade64dc9 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -8515,6 +8515,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes runTest("compiler/testData/codegen/box/delegatedProperty/delegateWithPrivateSet.kt"); } + @TestMetadata("delegatedPropertyInEnum.kt") + public void testDelegatedPropertyInEnum() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegatedPropertyInEnum.kt"); + } + @TestMetadata("extensionDelegatesWithSameNames.kt") public void testExtensionDelegatesWithSameNames() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/extensionDelegatesWithSameNames.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index c1f816bd5de..8655e9f2544 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -8515,6 +8515,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/delegatedProperty/delegateWithPrivateSet.kt"); } + @TestMetadata("delegatedPropertyInEnum.kt") + public void testDelegatedPropertyInEnum() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegatedPropertyInEnum.kt"); + } + @TestMetadata("extensionDelegatesWithSameNames.kt") public void testExtensionDelegatesWithSameNames() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/extensionDelegatesWithSameNames.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index 70cc075d31d..c18863bd2ec 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -8515,6 +8515,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/delegatedProperty/delegateWithPrivateSet.kt"); } + @TestMetadata("delegatedPropertyInEnum.kt") + public void testDelegatedPropertyInEnum() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegatedPropertyInEnum.kt"); + } + @TestMetadata("extensionDelegatesWithSameNames.kt") public void testExtensionDelegatesWithSameNames() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/extensionDelegatesWithSameNames.kt"); From e7dc199ad726369e6f0f435f94138cca61d7a969 Mon Sep 17 00:00:00 2001 From: Shagen Ogandzhanian Date: Wed, 30 Dec 2020 14:52:21 +0100 Subject: [PATCH 34/71] Init enum entries whenever we access companion object or accessing valueOf Fixes https://youtrack.jetbrains.com/issue/KT-43987 Fixes https://youtrack.jetbrains.com/issue/KT-43989 --- .../ir/FirBlackBoxCodegenTestGenerated.java | 15 ++++++ .../kotlin/ir/backend/js/JsLoweringPhases.kt | 2 +- .../ir/backend/js/lower/EnumClassLowering.kt | 53 +++++++++++++------ .../kotlin/backend/wasm/WasmLoweringPhases.kt | 2 +- .../box/enum/initEntriesInCompanionObject.kt | 53 +++++++++++++++++++ .../codegen/box/enum/initEntriesInValueOf.kt | 53 +++++++++++++++++++ .../box/enum/initEnumAfterObjectAccess.kt | 19 +++++++ .../codegen/BlackBoxCodegenTestGenerated.java | 15 ++++++ .../LightAnalysisModeTestGenerated.java | 15 ++++++ .../ir/IrBlackBoxCodegenTestGenerated.java | 15 ++++++ .../IrJsCodegenBoxES6TestGenerated.java | 15 ++++++ .../IrJsCodegenBoxTestGenerated.java | 15 ++++++ .../semantics/JsCodegenBoxTestGenerated.java | 15 ++++++ .../IrCodegenBoxWasmTestGenerated.java | 15 ++++++ 14 files changed, 284 insertions(+), 18 deletions(-) create mode 100644 compiler/testData/codegen/box/enum/initEntriesInCompanionObject.kt create mode 100644 compiler/testData/codegen/box/enum/initEntriesInValueOf.kt create mode 100644 compiler/testData/codegen/box/enum/initEnumAfterObjectAccess.kt diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java index 7cc6dc8c61c..f0c6833e054 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java @@ -11182,6 +11182,21 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/enum/inclassobj.kt"); } + @TestMetadata("initEntriesInCompanionObject.kt") + public void testInitEntriesInCompanionObject() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEntriesInCompanionObject.kt"); + } + + @TestMetadata("initEntriesInValueOf.kt") + public void testInitEntriesInValueOf() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEntriesInValueOf.kt"); + } + + @TestMetadata("initEnumAfterObjectAccess.kt") + public void testInitEnumAfterObjectAccess() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEnumAfterObjectAccess.kt"); + } + @TestMetadata("inner.kt") public void testInner() throws Exception { runTest("compiler/testData/codegen/box/enum/inner.kt"); diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt index 871a74b222f..a237d12f282 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt @@ -304,7 +304,7 @@ private val enumSyntheticFunsLoweringPhase = makeDeclarationTransformerPhase( ::EnumSyntheticFunctionsLowering, name = "EnumSyntheticFunctionsLowering", description = "Implement `valueOf` and `values`", - prerequisite = setOf(enumClassConstructorLoweringPhase) + prerequisite = setOf(enumClassConstructorLoweringPhase, enumClassCreateInitializerLoweringPhase) ) private val enumUsageLoweringPhase = makeBodyLoweringPhase( diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/EnumClassLowering.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/EnumClassLowering.kt index 014d66d10c8..866c60545c1 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/EnumClassLowering.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/EnumClassLowering.kt @@ -410,7 +410,7 @@ class EnumEntryCreateGetInstancesFunsLowering(val context: JsCommonBackendContex val irClass = declaration.parentAsClass if (irClass.isInstantiableEnum) { // Create entry instance getters. These are used to lower `IrGetEnumValue`. - val entryGetInstanceFun = createGetEntryInstanceFun(irClass, declaration, irClass.initEntryInstancesFun!!) + val entryGetInstanceFun = createGetEntryInstanceFun(irClass, declaration) // TODO prettify entryGetInstanceFun.parent = irClass.parent @@ -426,7 +426,7 @@ class EnumEntryCreateGetInstancesFunsLowering(val context: JsCommonBackendContex } private fun createGetEntryInstanceFun( - irClass: IrClass, enumEntry: IrEnumEntry, initEntryInstancesFun: IrSimpleFunction + irClass: IrClass, enumEntry: IrEnumEntry ): IrSimpleFunction = context.mapping.enumEntryToGetInstanceFun.getOrPut(enumEntry) { context.irFactory.buildFun { @@ -439,7 +439,7 @@ class EnumEntryCreateGetInstancesFunsLowering(val context: JsCommonBackendContex }.also { it.body = context.irFactory.createBlockBody(UNDEFINED_OFFSET, UNDEFINED_OFFSET) { statements += context.createIrBuilder(it.symbol).irBlockBody(it) { - +irCall(initEntryInstancesFun) + +irCall(irClass.initEntryInstancesFun!!) +irReturn(irGetField(null, enumEntry.correspondingField!!)) }.statements } @@ -449,20 +449,40 @@ class EnumEntryCreateGetInstancesFunsLowering(val context: JsCommonBackendContex private val IrClass.isInstantiableEnum: Boolean get() = isEnumClass && !isExpect && !isEffectivelyExternal() +private val IrDeclaration.parentEnumClassOrNull: IrClass? + get() = parents.filterIsInstance().firstOrNull { it.isInstantiableEnum } + class EnumSyntheticFunctionsLowering(val context: JsCommonBackendContext) : DeclarationTransformer { - private var IrEnumEntry.getInstanceFun by context.mapping.enumEntryToGetInstanceFun + private val IrEnumEntry.getInstanceFun by context.mapping.enumEntryToGetInstanceFun + private val IrClass.initEntryInstancesFun: IrSimpleFunction? by context.mapping.enumClassToInitEntryInstancesFun override fun transformFlat(declaration: IrDeclaration): List? { + if (declaration is IrConstructor && declaration.isPrimary) { + declaration.parentEnumClassOrNull?.let { enumClass -> + if (declaration.parentClassOrNull?.isCompanion == true) { + (declaration.body as? IrSyntheticBody)?.let { originalBody -> + declaration.parentEnumClassOrNull?.let { enumClass -> + declaration.body = context.irFactory.createBlockBody(UNDEFINED_OFFSET, UNDEFINED_OFFSET) { + statements += context.createIrBuilder(declaration.symbol).irBlockBody { + +irCall(enumClass.initEntryInstancesFun!!.symbol) + }.statements + originalBody.statements + } + } + } + } + } + } + if (declaration is IrSimpleFunction) { (declaration.body as? IrSyntheticBody)?.let { body -> val kind = body.kind - declaration.parents.filterIsInstance().firstOrNull { it.isInstantiableEnum }?.let { irClass -> + declaration.parentEnumClassOrNull?.let { enumClass -> declaration.body = context.irFactory.createBlockBody(UNDEFINED_OFFSET, UNDEFINED_OFFSET) { statements += when (kind) { - IrSyntheticBodyKind.ENUM_VALUES -> createEnumValuesBody(declaration, irClass) - IrSyntheticBodyKind.ENUM_VALUEOF -> createEnumValueOfBody(declaration, irClass) + IrSyntheticBodyKind.ENUM_VALUES -> createEnumValuesBody(declaration, enumClass) + IrSyntheticBodyKind.ENUM_VALUEOF -> createEnumValueOfBody(declaration, enumClass) }.statements } } @@ -479,15 +499,16 @@ class EnumSyntheticFunctionsLowering(val context: JsCommonBackendContext) : Decl return context.createIrBuilder(valueOfFun.symbol).run { irBlockBody { - +irReturn( - irWhen( - irClass.defaultType, - irClass.enumEntries.map { - irBranch( - irEquals(irString(it.name.identifier), irGet(nameParameter)), irCall(it.getInstanceFun!!) - ) - } + irElseBranch(irCall(throwISESymbol)) - ) + +irWhen( + irClass.defaultType, + irClass.enumEntries.map { + irBranch( + irEquals(irString(it.name.identifier), irGet(nameParameter)), irReturn(irCall(it.getInstanceFun!!)) + ) + } + irElseBranch(irBlock { + +irCall(irClass.initEntryInstancesFun!!) + +irCall(throwISESymbol) + }) ) } } diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmLoweringPhases.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmLoweringPhases.kt index 68f2e0a271e..2cf8c5ba990 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmLoweringPhases.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmLoweringPhases.kt @@ -154,7 +154,7 @@ private val enumSyntheticFunsLoweringPhase = makeWasmModulePhase( ::EnumSyntheticFunctionsLowering, name = "EnumSyntheticFunctionsLowering", description = "Implement `valueOf` and `values`", - prerequisite = setOf(enumClassConstructorLoweringPhase) + prerequisite = setOf(enumClassConstructorLoweringPhase, enumClassCreateInitializerLoweringPhase) ) private val enumUsageLoweringPhase = makeWasmModulePhase( diff --git a/compiler/testData/codegen/box/enum/initEntriesInCompanionObject.kt b/compiler/testData/codegen/box/enum/initEntriesInCompanionObject.kt new file mode 100644 index 00000000000..cab7240130a --- /dev/null +++ b/compiler/testData/codegen/box/enum/initEntriesInCompanionObject.kt @@ -0,0 +1,53 @@ +// IGNORE_BACKEND: JS +// IGNORE_BACKEND: WASM + +var l = "" + +enum class Foo { + FOO, + BAR; + init { + l += "Foo.$name;" + } + + companion object { + init { + l += "Foo.CO;" + } + + val boo = 22 + } +} + +enum class Foo2 { + FOO, + BAR; + + init { + l += "Foo2.$name;" + } + + companion object { + init { + l += "Foo2.CO;" + } + + val boo = 22 + } +} + +fun box(): String { + try { + Foo.valueOf("NO") + } catch (e: Throwable) { + l += "caught;" + } + + if (l != "Foo.FOO;Foo.BAR;Foo.CO;caught;") return "Failure 0: l = $l" + + l = "" + Foo2.valueOf("BAR") + if (l != "Foo2.FOO;Foo2.BAR;Foo2.CO;") return "Failure 1: l = $l" + + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/enum/initEntriesInValueOf.kt b/compiler/testData/codegen/box/enum/initEntriesInValueOf.kt new file mode 100644 index 00000000000..cab7240130a --- /dev/null +++ b/compiler/testData/codegen/box/enum/initEntriesInValueOf.kt @@ -0,0 +1,53 @@ +// IGNORE_BACKEND: JS +// IGNORE_BACKEND: WASM + +var l = "" + +enum class Foo { + FOO, + BAR; + init { + l += "Foo.$name;" + } + + companion object { + init { + l += "Foo.CO;" + } + + val boo = 22 + } +} + +enum class Foo2 { + FOO, + BAR; + + init { + l += "Foo2.$name;" + } + + companion object { + init { + l += "Foo2.CO;" + } + + val boo = 22 + } +} + +fun box(): String { + try { + Foo.valueOf("NO") + } catch (e: Throwable) { + l += "caught;" + } + + if (l != "Foo.FOO;Foo.BAR;Foo.CO;caught;") return "Failure 0: l = $l" + + l = "" + Foo2.valueOf("BAR") + if (l != "Foo2.FOO;Foo2.BAR;Foo2.CO;") return "Failure 1: l = $l" + + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/enum/initEnumAfterObjectAccess.kt b/compiler/testData/codegen/box/enum/initEnumAfterObjectAccess.kt new file mode 100644 index 00000000000..6f9304c62e5 --- /dev/null +++ b/compiler/testData/codegen/box/enum/initEnumAfterObjectAccess.kt @@ -0,0 +1,19 @@ +// IGNORE_BACKEND: JS + +var l = "" +enum class Foo { + F; + init { + l += "Foo;" + } + object L { + init { + l += "Foo.CO;" + } + } +} + +fun box(): String { + Foo.L + return if (l != "Foo.CO;") "FAIL: ${l}" else "OK" +} \ No newline at end of file diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index 83b472c9b99..2c81873af7f 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -11182,6 +11182,21 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/enum/inclassobj.kt"); } + @TestMetadata("initEntriesInCompanionObject.kt") + public void testInitEntriesInCompanionObject() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEntriesInCompanionObject.kt"); + } + + @TestMetadata("initEntriesInValueOf.kt") + public void testInitEntriesInValueOf() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEntriesInValueOf.kt"); + } + + @TestMetadata("initEnumAfterObjectAccess.kt") + public void testInitEnumAfterObjectAccess() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEnumAfterObjectAccess.kt"); + } + @TestMetadata("inner.kt") public void testInner() throws Exception { runTest("compiler/testData/codegen/box/enum/inner.kt"); diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index b3315eddeb7..ddee5d1ad73 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -11182,6 +11182,21 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/enum/inclassobj.kt"); } + @TestMetadata("initEntriesInCompanionObject.kt") + public void testInitEntriesInCompanionObject() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEntriesInCompanionObject.kt"); + } + + @TestMetadata("initEntriesInValueOf.kt") + public void testInitEntriesInValueOf() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEntriesInValueOf.kt"); + } + + @TestMetadata("initEnumAfterObjectAccess.kt") + public void testInitEnumAfterObjectAccess() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEnumAfterObjectAccess.kt"); + } + @TestMetadata("inner.kt") public void testInner() throws Exception { runTest("compiler/testData/codegen/box/enum/inner.kt"); diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index 7bb97b8905a..d014cd742ab 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -11182,6 +11182,21 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/enum/inclassobj.kt"); } + @TestMetadata("initEntriesInCompanionObject.kt") + public void testInitEntriesInCompanionObject() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEntriesInCompanionObject.kt"); + } + + @TestMetadata("initEntriesInValueOf.kt") + public void testInitEntriesInValueOf() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEntriesInValueOf.kt"); + } + + @TestMetadata("initEnumAfterObjectAccess.kt") + public void testInitEnumAfterObjectAccess() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEnumAfterObjectAccess.kt"); + } + @TestMetadata("inner.kt") public void testInner() throws Exception { runTest("compiler/testData/codegen/box/enum/inner.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index 322ade64dc9..8f1efbc235b 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -9567,6 +9567,21 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes runTest("compiler/testData/codegen/box/enum/inclassobj.kt"); } + @TestMetadata("initEntriesInCompanionObject.kt") + public void testInitEntriesInCompanionObject() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEntriesInCompanionObject.kt"); + } + + @TestMetadata("initEntriesInValueOf.kt") + public void testInitEntriesInValueOf() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEntriesInValueOf.kt"); + } + + @TestMetadata("initEnumAfterObjectAccess.kt") + public void testInitEnumAfterObjectAccess() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEnumAfterObjectAccess.kt"); + } + @TestMetadata("inner.kt") public void testInner() throws Exception { runTest("compiler/testData/codegen/box/enum/inner.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index 8655e9f2544..663f2595cbf 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -9567,6 +9567,21 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/enum/inclassobj.kt"); } + @TestMetadata("initEntriesInCompanionObject.kt") + public void testInitEntriesInCompanionObject() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEntriesInCompanionObject.kt"); + } + + @TestMetadata("initEntriesInValueOf.kt") + public void testInitEntriesInValueOf() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEntriesInValueOf.kt"); + } + + @TestMetadata("initEnumAfterObjectAccess.kt") + public void testInitEnumAfterObjectAccess() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEnumAfterObjectAccess.kt"); + } + @TestMetadata("inner.kt") public void testInner() throws Exception { runTest("compiler/testData/codegen/box/enum/inner.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index c18863bd2ec..edef42e9e5b 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -9567,6 +9567,21 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/enum/inclassobj.kt"); } + @TestMetadata("initEntriesInCompanionObject.kt") + public void testInitEntriesInCompanionObject() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEntriesInCompanionObject.kt"); + } + + @TestMetadata("initEntriesInValueOf.kt") + public void testInitEntriesInValueOf() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEntriesInValueOf.kt"); + } + + @TestMetadata("initEnumAfterObjectAccess.kt") + public void testInitEnumAfterObjectAccess() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEnumAfterObjectAccess.kt"); + } + @TestMetadata("inner.kt") public void testInner() throws Exception { runTest("compiler/testData/codegen/box/enum/inner.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java index 6bee512e911..9ee5e2ec75f 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java @@ -4651,6 +4651,21 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest runTest("compiler/testData/codegen/box/enum/inclassobj.kt"); } + @TestMetadata("initEntriesInCompanionObject.kt") + public void testInitEntriesInCompanionObject() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEntriesInCompanionObject.kt"); + } + + @TestMetadata("initEntriesInValueOf.kt") + public void testInitEntriesInValueOf() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEntriesInValueOf.kt"); + } + + @TestMetadata("initEnumAfterObjectAccess.kt") + public void testInitEnumAfterObjectAccess() throws Exception { + runTest("compiler/testData/codegen/box/enum/initEnumAfterObjectAccess.kt"); + } + @TestMetadata("inner.kt") public void testInner() throws Exception { runTest("compiler/testData/codegen/box/enum/inner.kt"); From b6ad1584c9776816ee3eecc22dfba5815882adc1 Mon Sep 17 00:00:00 2001 From: Svyatoslav Kuzmich Date: Sun, 13 Dec 2020 20:55:40 +0300 Subject: [PATCH 35/71] [Wasm] Improve interface method dispatch - Use typed Wasm tables for each interface method to avoid runtime function type check - Use linear search by implemented interface rather than by individual virtual function signature --- .../kotlin/backend/wasm/WasmSymbols.kt | 2 +- .../backend/wasm/ir2wasm/BodyGenerator.kt | 16 +-- .../kotlin/backend/wasm/ir2wasm/ClassInfo.kt | 19 +++ .../wasm/ir2wasm/DeclarationGenerator.kt | 86 ++++++++++---- .../wasm/ir2wasm/WasmBaseCodegenContext.kt | 4 +- .../ir2wasm/WasmCompiledModuleFragment.kt | 110 +++++++++++++++--- .../wasm/ir2wasm/WasmModuleCodegenContext.kt | 14 ++- .../ir2wasm/WasmModuleCodegenContextImpl.kt | 33 +++++- .../function/local/enumExtendsTrait.kt | 3 + .../basicFunInterfaceConversion.kt | 2 + .../box/funInterface/funConversionInVararg.kt | 2 + .../noOptimizedCallableReferences.kt | 2 + .../codegen/box/funInterface/partialSam.kt | 2 + .../box/funInterface/primitiveConversions.kt | 2 + .../box/funInterface/receiverEvaluatedOnce.kt | 2 + .../samConstructorExplicitInvocation.kt | 2 + ...onversionToGenericInterfaceInGenericFun.kt | 3 + .../unboxGenericParameter/funInterface/any.kt | 2 + .../funInterface/anyN.kt | 2 + .../funInterface/iface.kt | 2 + .../funInterface/ifaceChild.kt | 2 + .../funInterface/primitive.kt | 2 + .../funInterface/result.kt | 2 + .../funInterface/string.kt | 2 + .../codegen/box/regressions/kt4142.kt | 3 + .../IrCodegenBoxWasmTestGenerated.java | 85 -------------- .../internal/kotlin/wasm/internal/TypeInfo.kt | 52 ++++----- .../jetbrains/kotlin/wasm/ir/Declarations.kt | 2 +- .../org/jetbrains/kotlin/wasm/ir/Operators.kt | 4 +- .../org/jetbrains/kotlin/wasm/ir/Symbol.kt | 7 ++ .../kotlin/wasm/ir/WasmExpressionBuilder.kt | 7 +- .../kotlin/wasm/ir/WasmIrExpressionBuilder.kt | 6 + .../wasm/ir/convertors/WasmIrToBinary.kt | 6 +- 33 files changed, 318 insertions(+), 172 deletions(-) diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmSymbols.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmSymbols.kt index 9c7d24dc128..7835c7ef9b4 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmSymbols.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmSymbols.kt @@ -126,7 +126,7 @@ class WasmSymbols( val wasmInterfaceId = getInternalFunction("wasmInterfaceId") val getVirtualMethodId = getInternalFunction("getVirtualMethodId") - val getInterfaceMethodId = getInternalFunction("getInterfaceMethodId") + val getInterfaceImplId = getInternalFunction("getInterfaceImplId") val isSubClass = getInternalFunction("isSubClass") val isInterface = getInternalFunction("isInterface") diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/BodyGenerator.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/BodyGenerator.kt index fb7f0837b60..03fd2fbbb1c 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/BodyGenerator.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/BodyGenerator.kt @@ -12,7 +12,6 @@ import org.jetbrains.kotlin.backend.common.ir.isOverridable import org.jetbrains.kotlin.backend.common.ir.returnType import org.jetbrains.kotlin.backend.wasm.WasmBackendContext import org.jetbrains.kotlin.backend.wasm.WasmSymbols -import org.jetbrains.kotlin.backend.wasm.lower.wasmSignature import org.jetbrains.kotlin.backend.wasm.utils.* import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrStatement @@ -219,16 +218,19 @@ class BodyGenerator(val context: WasmFunctionCodegenContext) : IrElementVisitorV generateExpression(call.dispatchReceiver!!) body.buildConstI32(vfSlot) body.buildCall(context.referenceFunction(wasmSymbols.getVirtualMethodId)) + body.buildCallIndirect( + symbol = context.referenceFunctionType(function.symbol) + ) } else { - val signatureId = context.referenceSignatureId(function.wasmSignature(backendContext.irBuiltIns)) generateExpression(call.dispatchReceiver!!) - body.buildConstI32Symbol(signatureId) - body.buildCall(context.referenceFunction(wasmSymbols.getInterfaceMethodId)) + body.buildConstI32Symbol(context.referenceInterfaceId(klass.symbol)) + body.buildCall(context.referenceFunction(wasmSymbols.getInterfaceImplId)) + body.buildCallIndirect( + tableIdx = WasmSymbolIntWrapper(context.referenceInterfaceTable(function.symbol)), + symbol = context.referenceFunctionType(function.symbol) + ) } - body.buildCallIndirect( - symbol = context.referenceFunctionType(function.symbol) - ) } else { // Static function call body.buildCall(context.referenceFunction(function.symbol)) diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/ClassInfo.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/ClassInfo.kt index 32f55adec0d..380f36af892 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/ClassInfo.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/ClassInfo.kt @@ -8,6 +8,8 @@ package org.jetbrains.kotlin.backend.wasm.ir2wasm import org.jetbrains.kotlin.backend.common.ir.isOverridableOrOverrides import org.jetbrains.kotlin.backend.wasm.lower.WasmSignature import org.jetbrains.kotlin.backend.wasm.lower.wasmSignature +import org.jetbrains.kotlin.descriptors.DescriptorVisibilities +import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.ir.backend.js.utils.realOverrideTarget import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrDeclaration @@ -78,6 +80,23 @@ class ClassMetadata( virtualMethods.map { it.signature }.toSet() } +class InterfaceMetadata( + val iface: IrClass, + irBuiltIns: IrBuiltIns +) { + val methods: List = + iface.declarations + .filterIsInstance() + .filter { !it.isFakeOverride && it.visibility != DescriptorVisibilities.PRIVATE && it.modality != Modality.FINAL } + .map { + VirtualMethodMetadata( + it, + it.wasmSignature(irBuiltIns) + ) + } +} + + class VirtualMethodMetadata( val function: IrSimpleFunction, val signature: WasmSignature diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/DeclarationGenerator.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/DeclarationGenerator.kt index e673b667423..6c05aa78c94 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/DeclarationGenerator.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/DeclarationGenerator.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns import org.jetbrains.kotlin.ir.expressions.IrBlockBody import org.jetbrains.kotlin.ir.expressions.IrExpressionBody +import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol import org.jetbrains.kotlin.ir.util.* import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid import org.jetbrains.kotlin.ir.visitors.acceptVoid @@ -186,6 +187,14 @@ class DeclarationGenerator(val context: WasmModuleCodegenContext) : IrElementVis } if (declaration.isInterface) { + val metadata = InterfaceMetadata(declaration, irBuiltIns) + for (method in metadata.methods) { + val methodSymbol = method.function.symbol + val table = WasmTable( + elementType = WasmRefNullType(WasmHeapType.Type(context.referenceFunctionType(methodSymbol))) + ) + context.defineInterfaceMethodTable(methodSymbol, table) + } context.registerInterface(symbol) } else { val nameStr = declaration.fqNameWhenAvailable.toString() @@ -235,6 +244,28 @@ class DeclarationGenerator(val context: WasmModuleCodegenContext) : IrElementVis context.defineRTT(symbol, rtt) context.registerClass(symbol) context.generateTypeInfo(symbol, binaryDataStruct(metadata)) + + // New type info model + if (declaration.modality != Modality.ABSTRACT) { + context.generateInterfaceTable(symbol, interfaceTable(metadata)) + for (i in metadata.interfaces) { + val interfaceImplementation = InterfaceImplementation(i.symbol, declaration.symbol) + // TODO: Cache it + val interfaceMetadata = InterfaceMetadata(i, irBuiltIns) + val table = interfaceMetadata.methods.associate { method -> + val classMethod: VirtualMethodMetadata = + metadata.virtualMethods + .find { it.signature == method.signature } // TODO: Use map + ?: error("Cannot find class implementation of method ${method.signature} in class ${declaration.fqNameWhenAvailable}") + + method.function.symbol as IrFunctionSymbol to context.referenceFunction(classMethod.function.symbol) + } + context.registerInterfaceImplementationMethod( + interfaceImplementation, + table + ) + } + } } for (member in declaration.declarations) { @@ -252,20 +283,6 @@ class DeclarationGenerator(val context: WasmModuleCodegenContext) : IrElementVis val superTypeField = ConstantDataIntField("Super class", superClassSymbol) - val interfacesArray = ConstantDataIntArray( - "data", - classMetadata.interfaces.map { context.referenceInterfaceId(it.symbol) } - ) - val interfacesArraySize = ConstantDataIntField( - "size", - interfacesArray.value.size - ) - - val implementedInterfacesArrayWithSize = ConstantDataStruct( - "Implemented interfaces array", - listOf(interfacesArraySize, interfacesArray) - ) - val vtableSizeField = ConstantDataIntField( "V-table length", classMetadata.virtualMethods.size @@ -282,29 +299,48 @@ class DeclarationGenerator(val context: WasmModuleCodegenContext) : IrElementVis } ) - val signaturesArray = ConstantDataIntArray( - "Signatures", - classMetadata.virtualMethods.map { - if (it.function.modality == Modality.ABSTRACT) { - WasmSymbol(invalidIndex) - } else { - context.referenceSignatureId(it.signature) - } - } + val interfaceTablePtr = ConstantDataIntField( + "interfaceTablePtr", + context.referenceInterfaceTableAddress(classMetadata.klass.symbol) ) return ConstantDataStruct( "Class TypeInfo: ${classMetadata.klass.fqNameWhenAvailable} ", listOf( superTypeField, + interfaceTablePtr, vtableSizeField, vtableArray, - signaturesArray, - implementedInterfacesArrayWithSize, ) ) } + + private fun interfaceTable(classMetadata: ClassMetadata): ConstantDataStruct { + val interfaces = classMetadata.interfaces + val size = ConstantDataIntField("size", interfaces.size) + val interfaceIds = ConstantDataIntArray( + "interfaceIds", + interfaces.map { context.referenceInterfaceId(it.symbol) }, + ) + val interfaceImplementationIds = ConstantDataIntArray( + "interfaceImplementationId", + interfaces.map { + context.referenceInterfaceImplementationId(InterfaceImplementation(it.symbol, classMetadata.klass.symbol)) + }, + ) + + return ConstantDataStruct( + "Class interface table: ${classMetadata.klass.fqNameWhenAvailable} ", + listOf( + size, + interfaceIds, + interfaceImplementationIds, + ) + ) + } + + override fun visitField(declaration: IrField) { // Member fields are generated as part of struct type if (!declaration.isStatic) return diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmBaseCodegenContext.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmBaseCodegenContext.kt index 7ee75aa1182..2cd7d108e8b 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmBaseCodegenContext.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmBaseCodegenContext.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.backend.wasm.ir2wasm import org.jetbrains.kotlin.backend.wasm.WasmBackendContext -import org.jetbrains.kotlin.wasm.ir.* import org.jetbrains.kotlin.backend.wasm.lower.WasmSignature import org.jetbrains.kotlin.ir.declarations.IrField import org.jetbrains.kotlin.ir.declarations.IrValueParameter @@ -15,6 +14,7 @@ import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.wasm.ir.* interface WasmBaseCodegenContext { val backendContext: WasmBackendContext @@ -31,6 +31,8 @@ interface WasmBaseCodegenContext { fun referenceSignatureId(signature: WasmSignature): WasmSymbol + fun referenceInterfaceTable(irFunction: IrFunctionSymbol): WasmSymbol + fun referenceStringLiteral(string: String): WasmSymbol fun transformType(irType: IrType): WasmType diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmCompiledModuleFragment.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmCompiledModuleFragment.kt index e5f40324807..4b68bebfb14 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmCompiledModuleFragment.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmCompiledModuleFragment.kt @@ -5,13 +5,13 @@ package org.jetbrains.kotlin.backend.wasm.ir2wasm -import org.jetbrains.kotlin.wasm.ir.* import org.jetbrains.kotlin.backend.wasm.lower.WasmSignature import org.jetbrains.kotlin.ir.declarations.IrDeclarationWithName import org.jetbrains.kotlin.ir.declarations.IrExternalPackageFragment import org.jetbrains.kotlin.ir.symbols.* import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable import org.jetbrains.kotlin.ir.util.getPackageFragment +import org.jetbrains.kotlin.wasm.ir.* class WasmCompiledModuleFragment { val functions = @@ -44,6 +44,27 @@ class WasmCompiledModuleFragment { val typeInfo = ReferencableAndDefinable() + + // Wasm table for each method of each interface. + val interfaceMethodTables = + ReferencableAndDefinable() + + // Defined class interface tables + val definedClassITableData = + ReferencableAndDefinable() + + // Address of class interface table in linear memory + val referencedClassITableAddresses = + ReferencableElements() + + // Sequential number of an implementation (class, object, etc.) for a particular interface + // Used as index in table for interface method dispatch + val referencedInterfaceImplementationId = + ReferencableElements() + + val interfaceImplementationsMethods = + LinkedHashMap>>() + val exports = mutableListOf>() class JsCodeSnippet(val importName: String, val jsCode: String) @@ -92,27 +113,42 @@ class WasmCompiledModuleFragment { bind(runtimeTypes.unbound, runtimeTypes.defined) val klassIds = mutableMapOf() - var classId = 0 + var currentDataSectionAddress = 0 for (typeInfoElement in typeInfo.elements) { val ir = typeInfo.wasmToIr.getValue(typeInfoElement) - klassIds[ir] = classId - classId += typeInfoElement.sizeInBytes + klassIds[ir] = currentDataSectionAddress + currentDataSectionAddress += typeInfoElement.sizeInBytes + } + + val interfaceTableAddresses = mutableMapOf() + for (typeInfoElement in definedClassITableData.elements) { + val ir = definedClassITableData.wasmToIr.getValue(typeInfoElement) + interfaceTableAddresses[ir] = currentDataSectionAddress + currentDataSectionAddress += typeInfoElement.sizeInBytes } bind(classIds.unbound, klassIds) + bind(referencedClassITableAddresses.unbound, interfaceTableAddresses) bindIndices(virtualFunctionId.unbound, virtualFunctions) bindIndices(signatureId.unbound, signatures.toList()) bindIndices(interfaceId.unbound, interfaces) bindIndices(stringLiteralId.unbound, stringLiterals) - val data = typeInfo.elements.map { - val ir = typeInfo.wasmToIr.getValue(it) - val id = klassIds.getValue(ir) - val offset = mutableListOf() - WasmIrExpressionBuilder(offset).buildConstI32(id) - WasmData(WasmDataMode.Active(0, offset), it.toBytes()) + val interfaceImplementationIds = mutableMapOf() + val numberOfInterfaceImpls = mutableMapOf() + for (interfaceImplementation in interfaceImplementationsMethods.keys) { + val prev = numberOfInterfaceImpls.getOrPut(interfaceImplementation.irInterface) { 0 } + interfaceImplementationIds[interfaceImplementation] = prev + numberOfInterfaceImpls[interfaceImplementation.irInterface] = prev + 1 } + bind(referencedInterfaceImplementationId.unbound, interfaceImplementationIds) + bind(interfaceMethodTables.unbound, interfaceMethodTables.defined) + + val data = + typeInfo.buildData(address = { klassIds.getValue(it) }) + + definedClassITableData.buildData(address = { interfaceTableAddresses.getValue(it) }) + val logTypeInfo = false if (logTypeInfo) { println("Signatures: ") @@ -151,7 +187,38 @@ class WasmCompiledModuleFragment { WasmElement.Mode.Active(table, offsetExpr) ) - val typeInfoSize = classId + val interfaceTableElementsLists = interfaceMethodTables.defined.keys.associateWith { + mutableMapOf>() + } + + interfaceImplementationIds.forEach { ii: InterfaceImplementation, implId: Int -> + for ((interfaceFunction: IrFunctionSymbol, wasmFunction: WasmSymbol) in interfaceImplementationsMethods[ii]!!) { + interfaceTableElementsLists[interfaceFunction]!![implId] = wasmFunction + } + } + + val interfaceTableElements = interfaceTableElementsLists.map { (interfaceFunction, methods) -> + val type = interfaceMethodTables.defined[interfaceFunction]!!.elementType + val functions = MutableList(methods.size) { idx -> + val wasmFunc = methods[idx]!! + val expression = buildWasmExpression { + buildInstr(WasmOp.REF_FUNC, WasmImmediate.FuncIdx(wasmFunc)) + } + WasmTable.Value.Expression(expression) + } + WasmElement( + type, + values = functions, + WasmElement.Mode.Active(interfaceMethodTables.defined[interfaceFunction]!!, offsetExpr) + ) + } + + interfaceMethodTables.defined.forEach { (function, table) -> + val size = interfaceTableElementsLists[function]!!.size.toUInt() + table.limits = WasmLimits(size, size) + } + + val typeInfoSize = currentDataSectionAddress val memorySizeInPages = (typeInfoSize / 65_536) + 1 val memory = WasmMemory(WasmLimits(memorySizeInPages.toUInt(), memorySizeInPages.toUInt())) @@ -166,12 +233,12 @@ class WasmCompiledModuleFragment { importsInOrder = importedFunctions, importedFunctions = importedFunctions, definedFunctions = functions.elements.filterIsInstance(), - tables = listOf(table), + tables = listOf(table) + interfaceMethodTables.elements, memories = listOf(memory), globals = globals.elements + sortedRttGlobals, exports = exports, startFunction = startFunction!!, - elements = listOf(elements), + elements = listOf(elements) + interfaceTableElements, data = data ) module.calculateIds() @@ -207,4 +274,19 @@ fun bindIndices( error("Can't link symbol with indices ${irSymbolDebugDump(irSymbol)}") wasmSymbol.bind(index) } -} \ No newline at end of file +} + +inline fun WasmCompiledModuleFragment.ReferencableAndDefinable.buildData(address: (IrClassSymbol) -> Int): List { + return elements.map { + val id = address(wasmToIr.getValue(it)) + val offset = mutableListOf() + WasmIrExpressionBuilder(offset).buildConstI32(id) + WasmData(WasmDataMode.Active(0, offset), it.toBytes()) + } +} + + +data class InterfaceImplementation( + val irInterface: IrClassSymbol, + val irClass: IrClassSymbol +) \ No newline at end of file diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmModuleCodegenContext.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmModuleCodegenContext.kt index f8e2b7f1d83..9e7b0c174a5 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmModuleCodegenContext.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmModuleCodegenContext.kt @@ -5,13 +5,11 @@ package org.jetbrains.kotlin.backend.wasm.ir2wasm -import org.jetbrains.kotlin.wasm.ir.* -import org.jetbrains.kotlin.backend.wasm.ir2wasm.ConstantDataElement -import org.jetbrains.kotlin.backend.wasm.ir2wasm.WasmBaseCodegenContext import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol +import org.jetbrains.kotlin.wasm.ir.* /** * Interface for generating WebAssembly module. @@ -22,6 +20,7 @@ interface WasmModuleCodegenContext : WasmBaseCodegenContext { fun defineGcType(irClass: IrClassSymbol, wasmType: WasmTypeDeclaration) fun defineRTT(irClass: IrClassSymbol, wasmGlobal: WasmGlobal) fun defineFunctionType(irFunction: IrFunctionSymbol, wasmFunctionType: WasmFunctionType) + fun defineInterfaceMethodTable(irFunction: IrFunctionSymbol, wasmTable: WasmTable) fun addJsFun(importName: String, jsCode: String) fun setStartFunction(wasmFunction: WasmFunction) @@ -32,4 +31,13 @@ interface WasmModuleCodegenContext : WasmBaseCodegenContext { fun registerClass(irClass: IrClassSymbol) fun generateTypeInfo(irClass: IrClassSymbol, typeInfo: ConstantDataElement) + fun generateInterfaceTable(irClass: IrClassSymbol, table: ConstantDataElement) + + fun registerInterfaceImplementationMethod( + interfaceImplementation: InterfaceImplementation, + table: Map>, + ) + + fun referenceInterfaceImplementationId(interfaceImplementation: InterfaceImplementation): WasmSymbol + fun referenceInterfaceTableAddress(irClass: IrClassSymbol): WasmSymbol } \ No newline at end of file diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmModuleCodegenContextImpl.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmModuleCodegenContextImpl.kt index 33ab9a8b5b3..eba6a962b34 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmModuleCodegenContextImpl.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/WasmModuleCodegenContextImpl.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.backend.wasm.ir2wasm import org.jetbrains.kotlin.backend.wasm.WasmBackendContext -import org.jetbrains.kotlin.wasm.ir.* import org.jetbrains.kotlin.backend.wasm.lower.WasmSignature import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.ir.declarations.IrField @@ -20,6 +19,7 @@ import org.jetbrains.kotlin.ir.types.defaultType import org.jetbrains.kotlin.ir.types.isNothing import org.jetbrains.kotlin.ir.util.isFunction import org.jetbrains.kotlin.ir.util.parentAsClass +import org.jetbrains.kotlin.wasm.ir.* class WasmModuleCodegenContextImpl( @@ -68,6 +68,10 @@ class WasmModuleCodegenContextImpl( wasmFragment.typeInfo.define(irClass, typeInfo) } + override fun generateInterfaceTable(irClass: IrClassSymbol, table: ConstantDataElement) { + wasmFragment.definedClassITableData.define(irClass, table) + } + override fun setStartFunction(wasmFunction: WasmFunction) { wasmFragment.startFunction = wasmFunction } @@ -108,6 +112,23 @@ class WasmModuleCodegenContextImpl( wasmFragment.functionTypes.define(irFunction, wasmFunctionType) } + override fun defineInterfaceMethodTable(irFunction: IrFunctionSymbol, wasmTable: WasmTable) { + wasmFragment.interfaceMethodTables.define(irFunction, wasmTable) + } + + override fun referenceInterfaceImplementationId( + interfaceImplementation: InterfaceImplementation + ): WasmSymbol = + wasmFragment.referencedInterfaceImplementationId.reference(interfaceImplementation) + + + override fun registerInterfaceImplementationMethod( + interfaceImplementation: InterfaceImplementation, + table: Map> + ) { + wasmFragment.interfaceImplementationsMethods[interfaceImplementation] = table + } + private val classMetadataCache = mutableMapOf() override fun getClassMetadata(irClass: IrClassSymbol): ClassMetadata = classMetadataCache.getOrPut(irClass) { @@ -143,6 +164,12 @@ class WasmModuleCodegenContextImpl( override fun referenceClassId(irClass: IrClassSymbol): WasmSymbol = wasmFragment.classIds.reference(irClass) + override fun referenceInterfaceTableAddress(irClass: IrClassSymbol): WasmSymbol { + if (irClass.owner.modality == Modality.ABSTRACT) return WasmSymbol(-1) + return wasmFragment.referencedClassITableAddresses.reference(irClass) + } + + override fun referenceInterfaceId(irInterface: IrClassSymbol): WasmSymbol { // HACK to substitute kotlin.Function5 with kotlin.wasm.internal.Function5 val defaultType = irInterface.defaultType @@ -164,6 +191,10 @@ class WasmModuleCodegenContextImpl( return wasmFragment.signatureId.reference(signature) } + override fun referenceInterfaceTable(irFunction: IrFunctionSymbol): WasmSymbol { + return wasmFragment.interfaceMethodTables.reference(irFunction) + } + override fun getStructFieldRef(field: IrField): WasmSymbol { val klass = field.parentAsClass val metadata = getClassMetadata(klass.symbol) diff --git a/compiler/testData/codegen/box/callableReference/function/local/enumExtendsTrait.kt b/compiler/testData/codegen/box/callableReference/function/local/enumExtendsTrait.kt index 5ae74283aee..30d87bd148f 100644 --- a/compiler/testData/codegen/box/callableReference/function/local/enumExtendsTrait.kt +++ b/compiler/testData/codegen/box/callableReference/function/local/enumExtendsTrait.kt @@ -1,3 +1,6 @@ +// DONT_TARGET_EXACT_BACKEND: WASM +// WASM_MUTE_REASON: IMPLICIT_INTERFACE_METHOD_IMPL + interface Named { val name: String } diff --git a/compiler/testData/codegen/box/funInterface/basicFunInterfaceConversion.kt b/compiler/testData/codegen/box/funInterface/basicFunInterfaceConversion.kt index b13d2bb2e25..efaa976c997 100644 --- a/compiler/testData/codegen/box/funInterface/basicFunInterfaceConversion.kt +++ b/compiler/testData/codegen/box/funInterface/basicFunInterfaceConversion.kt @@ -1,3 +1,5 @@ +// DONT_TARGET_EXACT_BACKEND: WASM +// WASM_MUTE_REASON: SAM_CONVERSIONS // !LANGUAGE: +NewInference +FunctionalInterfaceConversion +SamConversionPerArgument +SamConversionForKotlinFunctions fun interface Foo { diff --git a/compiler/testData/codegen/box/funInterface/funConversionInVararg.kt b/compiler/testData/codegen/box/funInterface/funConversionInVararg.kt index 5dc007dbd2b..b4ec7ec8ea5 100644 --- a/compiler/testData/codegen/box/funInterface/funConversionInVararg.kt +++ b/compiler/testData/codegen/box/funInterface/funConversionInVararg.kt @@ -1,3 +1,5 @@ +// DONT_TARGET_EXACT_BACKEND: WASM +// WASM_MUTE_REASON: SAM_CONVERSIONS // !LANGUAGE: +NewInference +FunctionalInterfaceConversion +SamConversionPerArgument fun interface MyRunnable { diff --git a/compiler/testData/codegen/box/funInterface/noOptimizedCallableReferences.kt b/compiler/testData/codegen/box/funInterface/noOptimizedCallableReferences.kt index e68d85f0124..91f6cd5af8f 100644 --- a/compiler/testData/codegen/box/funInterface/noOptimizedCallableReferences.kt +++ b/compiler/testData/codegen/box/funInterface/noOptimizedCallableReferences.kt @@ -1,3 +1,5 @@ +// DONT_TARGET_EXACT_BACKEND: WASM +// WASM_MUTE_REASON: SAM_CONVERSIONS // KOTLIN_CONFIGURATION_FLAGS: +JVM.NO_OPTIMIZED_CALLABLE_REFERENCES fun interface P { diff --git a/compiler/testData/codegen/box/funInterface/partialSam.kt b/compiler/testData/codegen/box/funInterface/partialSam.kt index f33c10526c2..b6517721187 100644 --- a/compiler/testData/codegen/box/funInterface/partialSam.kt +++ b/compiler/testData/codegen/box/funInterface/partialSam.kt @@ -1,3 +1,5 @@ +// DONT_TARGET_EXACT_BACKEND: WASM +// WASM_MUTE_REASON: SAM_CONVERSIONS // !LANGUAGE: +NewInference +FunctionalInterfaceConversion +SamConversionPerArgument +SamConversionForKotlinFunctions // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/funInterface/primitiveConversions.kt b/compiler/testData/codegen/box/funInterface/primitiveConversions.kt index 5ef596ad9d8..95b588dd73a 100644 --- a/compiler/testData/codegen/box/funInterface/primitiveConversions.kt +++ b/compiler/testData/codegen/box/funInterface/primitiveConversions.kt @@ -1,3 +1,5 @@ +// DONT_TARGET_EXACT_BACKEND: WASM +// WASM_MUTE_REASON: SAM_CONVERSIONS // !LANGUAGE: +NewInference +FunctionalInterfaceConversion +SamConversionPerArgument +SamConversionForKotlinFunctions // This test should check argument coercion between the SAM and the lambda. diff --git a/compiler/testData/codegen/box/funInterface/receiverEvaluatedOnce.kt b/compiler/testData/codegen/box/funInterface/receiverEvaluatedOnce.kt index d23a0636950..045155312e3 100644 --- a/compiler/testData/codegen/box/funInterface/receiverEvaluatedOnce.kt +++ b/compiler/testData/codegen/box/funInterface/receiverEvaluatedOnce.kt @@ -1,3 +1,5 @@ +// DONT_TARGET_EXACT_BACKEND: WASM +// WASM_MUTE_REASON: SAM_CONVERSIONS // !LANGUAGE: +NewInference +FunctionalInterfaceConversion +SamConversionPerArgument +SamConversionForKotlinFunctions // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/funInterface/samConstructorExplicitInvocation.kt b/compiler/testData/codegen/box/funInterface/samConstructorExplicitInvocation.kt index 03b20212dd4..ee49a6531bd 100644 --- a/compiler/testData/codegen/box/funInterface/samConstructorExplicitInvocation.kt +++ b/compiler/testData/codegen/box/funInterface/samConstructorExplicitInvocation.kt @@ -1,3 +1,5 @@ +// DONT_TARGET_EXACT_BACKEND: WASM +// WASM_MUTE_REASON: SAM_CONVERSIONS // !LANGUAGE: +FunctionalInterfaceConversion fun interface S { diff --git a/compiler/testData/codegen/box/funInterface/samConversionToGenericInterfaceInGenericFun.kt b/compiler/testData/codegen/box/funInterface/samConversionToGenericInterfaceInGenericFun.kt index 4d07619d049..89268f7dc9a 100644 --- a/compiler/testData/codegen/box/funInterface/samConversionToGenericInterfaceInGenericFun.kt +++ b/compiler/testData/codegen/box/funInterface/samConversionToGenericInterfaceInGenericFun.kt @@ -1,3 +1,6 @@ +// DONT_TARGET_EXACT_BACKEND: WASM +// WASM_MUTE_REASON: SAM_CONVERSIONS + fun interface FunIFace { fun call(ic: T): R } diff --git a/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/any.kt b/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/any.kt index 555df6d08ae..dd3b3853492 100644 --- a/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/any.kt +++ b/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/any.kt @@ -1,3 +1,5 @@ +// DONT_TARGET_EXACT_BACKEND: WASM +// WASM_MUTE_REASON: SAM_CONVERSIONS // !LANGUAGE: +InlineClasses fun underlying(a: IC): T = bar(a) { diff --git a/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/anyN.kt b/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/anyN.kt index a13cbf30be8..7c2761417fc 100644 --- a/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/anyN.kt +++ b/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/anyN.kt @@ -1,3 +1,5 @@ +// DONT_TARGET_EXACT_BACKEND: WASM +// WASM_MUTE_REASON: SAM_CONVERSIONS // !LANGUAGE: +InlineClasses fun underlying(a: IC): T = bar(a) { diff --git a/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/iface.kt b/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/iface.kt index 97146b302bf..8969261a7c4 100644 --- a/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/iface.kt +++ b/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/iface.kt @@ -1,3 +1,5 @@ +// DONT_TARGET_EXACT_BACKEND: WASM +// WASM_MUTE_REASON: SAM_CONVERSIONS // !LANGUAGE: +InlineClasses fun underlying(a: IC): T = bar(a) { diff --git a/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/ifaceChild.kt b/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/ifaceChild.kt index a2368761b61..e82937a5602 100644 --- a/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/ifaceChild.kt +++ b/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/ifaceChild.kt @@ -1,3 +1,5 @@ +// DONT_TARGET_EXACT_BACKEND: WASM +// WASM_MUTE_REASON: SAM_CONVERSIONS // !LANGUAGE: +InlineClasses fun underlying(a: IC): T = bar(a) { diff --git a/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/primitive.kt b/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/primitive.kt index 64605198b73..bb0666f4444 100644 --- a/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/primitive.kt +++ b/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/primitive.kt @@ -1,3 +1,5 @@ +// DONT_TARGET_EXACT_BACKEND: WASM +// WASM_MUTE_REASON: SAM_CONVERSIONS // !LANGUAGE: +InlineClasses fun underlying(a: IC): T = bar(a) { diff --git a/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/result.kt b/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/result.kt index 4537fa84cf7..2b038af83a2 100644 --- a/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/result.kt +++ b/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/result.kt @@ -1,3 +1,5 @@ +// DONT_TARGET_EXACT_BACKEND: WASM +// WASM_MUTE_REASON: SAM_CONVERSIONS // !LANGUAGE: +InlineClasses // WITH_RUNTIME diff --git a/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/string.kt b/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/string.kt index 9d84cf1a01c..0c68a9ea28a 100644 --- a/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/string.kt +++ b/compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/string.kt @@ -1,3 +1,5 @@ +// DONT_TARGET_EXACT_BACKEND: WASM +// WASM_MUTE_REASON: SAM_CONVERSIONS // !LANGUAGE: +InlineClasses fun underlying(a: IC): T = bar(a) { diff --git a/compiler/testData/codegen/box/regressions/kt4142.kt b/compiler/testData/codegen/box/regressions/kt4142.kt index d7fe122fda7..6c61934c750 100644 --- a/compiler/testData/codegen/box/regressions/kt4142.kt +++ b/compiler/testData/codegen/box/regressions/kt4142.kt @@ -1,3 +1,6 @@ +// DONT_TARGET_EXACT_BACKEND: WASM +// WASM_MUTE_REASON: IMPLICIT_INTERFACE_METHOD_IMPL + open class B { val name: String get() = "OK" diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java index 9ee5e2ec75f..94203a9f9f9 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java @@ -1631,11 +1631,6 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest runTest("compiler/testData/codegen/box/callableReference/function/local/constructorWithInitializer.kt"); } - @TestMetadata("enumExtendsTrait.kt") - public void testEnumExtendsTrait() throws Exception { - runTest("compiler/testData/codegen/box/callableReference/function/local/enumExtendsTrait.kt"); - } - @TestMetadata("extension.kt") public void testExtension() throws Exception { runTest("compiler/testData/codegen/box/callableReference/function/local/extension.kt"); @@ -5217,46 +5212,6 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest runTest("compiler/testData/codegen/box/funInterface/basicFunInterface.kt"); } - @TestMetadata("basicFunInterfaceConversion.kt") - public void testBasicFunInterfaceConversion() throws Exception { - runTest("compiler/testData/codegen/box/funInterface/basicFunInterfaceConversion.kt"); - } - - @TestMetadata("funConversionInVararg.kt") - public void testFunConversionInVararg() throws Exception { - runTest("compiler/testData/codegen/box/funInterface/funConversionInVararg.kt"); - } - - @TestMetadata("noOptimizedCallableReferences.kt") - public void testNoOptimizedCallableReferences() throws Exception { - runTest("compiler/testData/codegen/box/funInterface/noOptimizedCallableReferences.kt"); - } - - @TestMetadata("partialSam.kt") - public void testPartialSam() throws Exception { - runTest("compiler/testData/codegen/box/funInterface/partialSam.kt"); - } - - @TestMetadata("primitiveConversions.kt") - public void testPrimitiveConversions() throws Exception { - runTest("compiler/testData/codegen/box/funInterface/primitiveConversions.kt"); - } - - @TestMetadata("receiverEvaluatedOnce.kt") - public void testReceiverEvaluatedOnce() throws Exception { - runTest("compiler/testData/codegen/box/funInterface/receiverEvaluatedOnce.kt"); - } - - @TestMetadata("samConstructorExplicitInvocation.kt") - public void testSamConstructorExplicitInvocation() throws Exception { - runTest("compiler/testData/codegen/box/funInterface/samConstructorExplicitInvocation.kt"); - } - - @TestMetadata("samConversionToGenericInterfaceInGenericFun.kt") - public void testSamConversionToGenericInterfaceInGenericFun() throws Exception { - runTest("compiler/testData/codegen/box/funInterface/samConversionToGenericInterfaceInGenericFun.kt"); - } - @TestMetadata("compiler/testData/codegen/box/funInterface/equality") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) @@ -7562,41 +7517,6 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest public void testAllFilesPresentInFunInterface() throws Exception { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.WASM, true); } - - @TestMetadata("any.kt") - public void testAny() throws Exception { - runTest("compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/any.kt"); - } - - @TestMetadata("anyN.kt") - public void testAnyN() throws Exception { - runTest("compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/anyN.kt"); - } - - @TestMetadata("iface.kt") - public void testIface() throws Exception { - runTest("compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/iface.kt"); - } - - @TestMetadata("ifaceChild.kt") - public void testIfaceChild() throws Exception { - runTest("compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/ifaceChild.kt"); - } - - @TestMetadata("primitive.kt") - public void testPrimitive() throws Exception { - runTest("compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/primitive.kt"); - } - - @TestMetadata("result.kt") - public void testResult() throws Exception { - runTest("compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/result.kt"); - } - - @TestMetadata("string.kt") - public void testString() throws Exception { - runTest("compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/funInterface/string.kt"); - } } @TestMetadata("compiler/testData/codegen/box/inlineClasses/unboxGenericParameter/lambda") @@ -12815,11 +12735,6 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest runTest("compiler/testData/codegen/box/regressions/kt39088.kt"); } - @TestMetadata("kt4142.kt") - public void testKt4142() throws Exception { - runTest("compiler/testData/codegen/box/regressions/kt4142.kt"); - } - @TestMetadata("kt4281.kt") public void testKt4281() throws Exception { runTest("compiler/testData/codegen/box/regressions/kt4281.kt"); diff --git a/libraries/stdlib/wasm/internal/kotlin/wasm/internal/TypeInfo.kt b/libraries/stdlib/wasm/internal/kotlin/wasm/internal/TypeInfo.kt index 86f80ef7607..4888382339f 100644 --- a/libraries/stdlib/wasm/internal/kotlin/wasm/internal/TypeInfo.kt +++ b/libraries/stdlib/wasm/internal/kotlin/wasm/internal/TypeInfo.kt @@ -9,9 +9,11 @@ package kotlin.wasm.internal internal const val TYPE_INFO_ELEMENT_SIZE = 4 -internal const val TYPE_INFO_VTABLE_OFFSET = 2 * TYPE_INFO_ELEMENT_SIZE -internal const val TYPE_INFO_VTABLE_LENGTH_OFFSET = TYPE_INFO_ELEMENT_SIZE + internal const val SUPER_CLASS_ID_OFFSET = 0 +internal const val TYPE_INFO_ITABLE_PTR_OFFSET = SUPER_CLASS_ID_OFFSET + TYPE_INFO_ELEMENT_SIZE +internal const val TYPE_INFO_VTABLE_LENGTH_OFFSET = TYPE_INFO_ITABLE_PTR_OFFSET + TYPE_INFO_ELEMENT_SIZE +internal const val TYPE_INFO_VTABLE_OFFSET = TYPE_INFO_VTABLE_LENGTH_OFFSET + TYPE_INFO_ELEMENT_SIZE internal fun getVtablePtr(obj: Any): Int = obj.typeInfo + TYPE_INFO_VTABLE_OFFSET @@ -19,8 +21,11 @@ internal fun getVtablePtr(obj: Any): Int = internal fun getVtableLength(obj: Any): Int = wasm_i32_load(obj.typeInfo + TYPE_INFO_VTABLE_LENGTH_OFFSET) -internal fun getInterfaceListLength(obj: Any): Int = - wasm_i32_load(obj.typeInfo + TYPE_INFO_VTABLE_LENGTH_OFFSET) +internal fun getItablePtr(obj: Any): Int = + wasm_i32_load(obj.typeInfo + TYPE_INFO_ITABLE_PTR_OFFSET) + +internal fun getInterfaceListLength(itablePtr: Int): Int = + wasm_i32_load(itablePtr + TYPE_INFO_VTABLE_LENGTH_OFFSET) internal fun getSuperClassId(obj: Any): Int = wasm_i32_load(obj.typeInfo + SUPER_CLASS_ID_OFFSET) @@ -31,17 +36,22 @@ internal fun getVirtualMethodId(obj: Any, virtualFunctionSlot: Int): Int { return wasm_i32_load(methodIdPtr) } -internal fun getInterfaceMethodId(obj: Any, methodSignatureId: Int): Int { - val vtableLength = getVtableLength(obj) - val vtableSignatures = getVtablePtr(obj) + vtableLength * TYPE_INFO_ELEMENT_SIZE - var virtualFunctionSlot = 0 - while (virtualFunctionSlot < vtableLength) { - if (wasm_i32_load(vtableSignatures + virtualFunctionSlot * TYPE_INFO_ELEMENT_SIZE) == methodSignatureId) { - return getVirtualMethodId(obj, virtualFunctionSlot) +// Returns -1 if obj does not implement interface +internal fun getInterfaceImplId(obj: Any, interfaceId: Int): Int { + val interfaceListSizePtr = getItablePtr(obj) + val interfaceListPtr = interfaceListSizePtr + TYPE_INFO_ELEMENT_SIZE + val interfaceListSize = wasm_i32_load(interfaceListSizePtr) + + var interfaceSlot = 0 + while (interfaceSlot < interfaceListSize) { + val supportedInterface = wasm_i32_load(interfaceListPtr + interfaceSlot * TYPE_INFO_ELEMENT_SIZE) + if (supportedInterface == interfaceId) { + return wasm_i32_load(interfaceListPtr + interfaceListSize * TYPE_INFO_ELEMENT_SIZE + interfaceSlot * TYPE_INFO_ELEMENT_SIZE) } - virtualFunctionSlot++ + interfaceSlot++ } - wasm_unreachable() + + return -1 } @@ -57,21 +67,7 @@ internal fun isSubClass(obj: Any, classId: Int): Boolean { } internal fun isInterface(obj: Any, interfaceId: Int): Boolean { - val vtableLength = getVtableLength(obj) - val interfaceListSizePtr = getVtablePtr(obj) + 2 * vtableLength * TYPE_INFO_ELEMENT_SIZE - val interfaceListPtr = interfaceListSizePtr + TYPE_INFO_ELEMENT_SIZE - val interfaceListSize = wasm_i32_load(interfaceListSizePtr) - - var interfaceSlot = 0 - while (interfaceSlot < interfaceListSize) { - val supportedInterface = wasm_i32_load(interfaceListPtr + interfaceSlot * TYPE_INFO_ELEMENT_SIZE) - if (supportedInterface == interfaceId) { - return true - } - interfaceSlot++ - } - - return false + return getInterfaceImplId(obj, interfaceId) != -1 } @ExcludedFromCodegen diff --git a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/Declarations.kt b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/Declarations.kt index 83e48b3dc39..3e995eead1c 100644 --- a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/Declarations.kt +++ b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/Declarations.kt @@ -76,7 +76,7 @@ class WasmData( ) : WasmNamedModuleField() class WasmTable( - val limits: WasmLimits = WasmLimits(1u, null), + var limits: WasmLimits = WasmLimits(1u, null), val elementType: WasmType, val importPair: WasmImportPair? = null ) : WasmNamedModuleField() { diff --git a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/Operators.kt b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/Operators.kt index bfc57698742..0026b7f250b 100644 --- a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/Operators.kt +++ b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/Operators.kt @@ -73,7 +73,9 @@ sealed class WasmImmediate { } class DataIdx(val value: Int) : WasmImmediate() - class TableIdx(val value: Int) : WasmImmediate() + class TableIdx(val value: WasmSymbolReadOnly) : WasmImmediate() { + constructor(value: Int) : this(WasmSymbol(value)) + } class LabelIdx(val value: Int) : WasmImmediate() class LabelIdxVector(val value: List) : WasmImmediate() diff --git a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/Symbol.kt b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/Symbol.kt index e5278554b8f..9495c13203d 100644 --- a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/Symbol.kt +++ b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/Symbol.kt @@ -33,3 +33,10 @@ class WasmSymbol(owner: T? = null) : WasmSymbolReadOnly { override fun toString(): String = _owner?.toString() ?: "UNBOUND-WASM-SYMBOL" } + +class WasmSymbolIntWrapper(val symbol: WasmSymbol) : WasmSymbolReadOnly { + override val owner: Int + get() = symbol.owner.id!! + + override fun toString() = owner.toString() +} diff --git a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/WasmExpressionBuilder.kt b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/WasmExpressionBuilder.kt index 5244bfaa151..1d7e689b884 100644 --- a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/WasmExpressionBuilder.kt +++ b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/WasmExpressionBuilder.kt @@ -82,11 +82,14 @@ abstract class WasmExpressionBuilder { buildInstr(WasmOp.CALL, WasmImmediate.FuncIdx(symbol)) } - fun buildCallIndirect(symbol: WasmSymbol) { + fun buildCallIndirect( + symbol: WasmSymbol, + tableIdx: WasmSymbolReadOnly = WasmSymbol(0), + ) { buildInstr( WasmOp.CALL_INDIRECT, WasmImmediate.TypeIdx(symbol), - WasmImmediate.TableIdx(0) + WasmImmediate.TableIdx(tableIdx) ) } diff --git a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/WasmIrExpressionBuilder.kt b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/WasmIrExpressionBuilder.kt index 54bc7eaf983..56ac1c9a674 100644 --- a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/WasmIrExpressionBuilder.kt +++ b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/WasmIrExpressionBuilder.kt @@ -23,3 +23,9 @@ class WasmIrExpressionBuilder( override val lastInstr: WasmOp? get() = expression.lastOrNull()?.operator } + +inline fun buildWasmExpression(body: WasmExpressionBuilder.() -> Unit): MutableList { + val res = mutableListOf() + WasmIrExpressionBuilder(res).body() + return res +} diff --git a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/convertors/WasmIrToBinary.kt b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/convertors/WasmIrToBinary.kt index 0ed326c03fb..c1feaf15c8f 100644 --- a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/convertors/WasmIrToBinary.kt +++ b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/convertors/WasmIrToBinary.kt @@ -138,7 +138,7 @@ class WasmIrToBinary(outputStream: OutputStream, val module: WasmModule) { is WasmImmediate.TypeIdx -> appendModuleFieldReference(x.value.owner) is WasmImmediate.MemoryIdx -> appendModuleFieldReference(x.value.owner) is WasmImmediate.DataIdx -> b.writeVarUInt32(x.value) - is WasmImmediate.TableIdx -> b.writeVarUInt32(x.value) + is WasmImmediate.TableIdx -> b.writeVarUInt32(x.value.owner) is WasmImmediate.LabelIdx -> b.writeVarUInt32(x.value) is WasmImmediate.LabelIdxVector -> { b.writeVarUInt32(x.value.size) @@ -243,7 +243,7 @@ class WasmIrToBinary(outputStream: OutputStream, val module: WasmModule) { b.writeByte(1) } - b.writeVarInt7(table.elementType.code) + appendType(table.elementType) appendLimits(table.limits) } @@ -286,7 +286,7 @@ class WasmIrToBinary(outputStream: OutputStream, val module: WasmModule) { } private fun appendElement(element: WasmElement) { - val isFuncIndices = element.values.all { it is WasmTable.Value.Function } + val isFuncIndices = element.values.all { it is WasmTable.Value.Function } && element.type == WasmFuncRef val funcIndices = if (isFuncIndices) { element.values.map { (it as WasmTable.Value.Function).function.owner.id!! } From 785c947782659432adf373ebe2c1347bac528184 Mon Sep 17 00:00:00 2001 From: Svyatoslav Kuzmich Date: Sun, 13 Dec 2020 23:38:33 +0300 Subject: [PATCH 36/71] [Wasm] Improve class type checks Use wasm ref.test instad of manual type info linked list traversal --- .../kotlin/backend/wasm/WasmSymbols.kt | 1 + .../backend/wasm/ir2wasm/BodyGenerator.kt | 23 +++++++++++++++++-- .../wasm/lower/WasmTypeOperatorLowering.kt | 22 ++++++++++++++---- .../kotlin/wasm/internal/WasmInstructions.kt | 2 ++ 4 files changed, 41 insertions(+), 7 deletions(-) diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmSymbols.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmSymbols.kt index 7835c7ef9b4..ba08495ca97 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmSymbols.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmSymbols.kt @@ -113,6 +113,7 @@ class WasmSymbols( val booleanAnd = getInternalFunction("wasm_i32_and") val refEq = getInternalFunction("wasm_ref_eq") val refIsNull = getInternalFunction("wasm_ref_is_null") + val refTest = getInternalFunction("wasm_ref_test") val intToLong = getInternalFunction("wasm_i64_extend_i32_s") val wasmRefCast = getInternalFunction("wasm_ref_cast") diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/BodyGenerator.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/BodyGenerator.kt index 03fd2fbbb1c..99b520f3996 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/BodyGenerator.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/BodyGenerator.kt @@ -258,7 +258,7 @@ class BodyGenerator(val context: WasmFunctionCodegenContext) : IrElementVisitorV call: IrFunctionAccessExpression, function: IrFunction ): Boolean { - if (tryToGenerateWasmOpIntrinsicCall(function)) { + if (tryToGenerateWasmOpIntrinsicCall(call, function)) { return true } @@ -489,7 +489,7 @@ class BodyGenerator(val context: WasmFunctionCodegenContext) : IrElementVisitorV } // Return true if function is recognized as intrinsic. - fun tryToGenerateWasmOpIntrinsicCall(function: IrFunction): Boolean { + fun tryToGenerateWasmOpIntrinsicCall(call: IrFunctionAccessExpression, function: IrFunction): Boolean { if (function.hasWasmReinterpretAnnotation()) { return true } @@ -513,6 +513,25 @@ class BodyGenerator(val context: WasmFunctionCodegenContext) : IrElementVisitorV } ) } + 2 -> { + when (op) { + WasmOp.REF_TEST -> { + val fromIrType = call.getValueArgument(0)!!.type + val fromWasmType = context.transformBoxedType(fromIrType) + val toIrType = call.getTypeArgument(0)!! + val toWasmType = context.transformBoxedType(toIrType) + immediates = arrayOf( + WasmImmediate.HeapType(fromWasmType), + WasmImmediate.HeapType(toWasmType), + ) + + // ref.test takes RTT as a second operand + generateTypeRTT(toIrType) + } + else -> + error("Op $opString is unsupported") + } + } else -> error("Op $opString is unsupported") } diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/WasmTypeOperatorLowering.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/WasmTypeOperatorLowering.kt index d050028358f..715d25e3aea 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/WasmTypeOperatorLowering.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/lower/WasmTypeOperatorLowering.kt @@ -13,7 +13,6 @@ import org.jetbrains.kotlin.backend.common.lower.createIrBuilder import org.jetbrains.kotlin.backend.common.lower.irNot import org.jetbrains.kotlin.backend.wasm.WasmBackendContext import org.jetbrains.kotlin.backend.wasm.ir2wasm.erasedUpperBound -import org.jetbrains.kotlin.ir.util.isPure import org.jetbrains.kotlin.ir.builders.* import org.jetbrains.kotlin.ir.declarations.IrFile import org.jetbrains.kotlin.ir.declarations.IrTypeParameter @@ -276,12 +275,25 @@ class WasmBaseTypeOperatorTransformer(val context: WasmBackendContext) : IrEleme } private fun generateIsSubClass(argument: IrExpression, toType: IrType): IrExpression { - val classId = builder.irCall(symbols.wasmClassId).apply { - putTypeArgument(0, toType) + val fromType = argument.type + val fromTypeErased = fromType.erasedType + val toTypeErased = toType.erasedType + if (fromTypeErased.isSubtypeOfClass(toTypeErased.classOrNull!!)) { + return builder.irComposite { + +argument + +builder.irTrue() + } } - return builder.irCall(symbols.isSubClass).apply { + if (!toTypeErased.isSubtypeOfClass(fromTypeErased.classOrNull!!)) { + return builder.irComposite { + +argument + +builder.irFalse() + } + } + + return builder.irCall(symbols.refTest).apply { putValueArgument(0, argument) - putValueArgument(1, classId) + putTypeArgument(0, toType) } } } diff --git a/libraries/stdlib/wasm/internal/kotlin/wasm/internal/WasmInstructions.kt b/libraries/stdlib/wasm/internal/kotlin/wasm/internal/WasmInstructions.kt index f19537293c1..3d5a5a1102a 100644 --- a/libraries/stdlib/wasm/internal/kotlin/wasm/internal/WasmInstructions.kt +++ b/libraries/stdlib/wasm/internal/kotlin/wasm/internal/WasmInstructions.kt @@ -254,6 +254,8 @@ public external fun wasm_ref_is_null(a: Any?): Boolean @WasmOp(WasmOp.REF_EQ) public external fun wasm_ref_eq(a: Any?, b: Any?): Boolean +@WasmOp(WasmOp.REF_TEST) +public external fun wasm_ref_test(a: Any?): Boolean // --- From 22239e273301a97540330badea97c8b6783dcd8a Mon Sep 17 00:00:00 2001 From: Svyatoslav Kuzmich Date: Mon, 14 Dec 2020 09:45:01 +0300 Subject: [PATCH 37/71] [Wasm] Remove unused super class field in type info --- .../kotlin/backend/wasm/WasmSymbols.kt | 1 - .../wasm/ir2wasm/DeclarationGenerator.kt | 9 --------- .../internal/kotlin/wasm/internal/TypeInfo.kt | 18 +----------------- 3 files changed, 1 insertion(+), 27 deletions(-) diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmSymbols.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmSymbols.kt index ba08495ca97..69d6bb793c9 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmSymbols.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmSymbols.kt @@ -129,7 +129,6 @@ class WasmSymbols( val getVirtualMethodId = getInternalFunction("getVirtualMethodId") val getInterfaceImplId = getInternalFunction("getInterfaceImplId") - val isSubClass = getInternalFunction("isSubClass") val isInterface = getInternalFunction("isInterface") val nullableEquals = getInternalFunction("nullableEquals") diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/DeclarationGenerator.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/DeclarationGenerator.kt index 6c05aa78c94..f68923a6ca5 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/DeclarationGenerator.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/DeclarationGenerator.kt @@ -275,14 +275,6 @@ class DeclarationGenerator(val context: WasmModuleCodegenContext) : IrElementVis private fun binaryDataStruct(classMetadata: ClassMetadata): ConstantDataStruct { val invalidIndex = -1 - val superClass = classMetadata.superClass?.klass - - val superClassSymbol: WasmSymbol = - superClass?.let { context.referenceClassId(it.symbol) } ?: WasmSymbol(invalidIndex) - - val superTypeField = - ConstantDataIntField("Super class", superClassSymbol) - val vtableSizeField = ConstantDataIntField( "V-table length", classMetadata.virtualMethods.size @@ -307,7 +299,6 @@ class DeclarationGenerator(val context: WasmModuleCodegenContext) : IrElementVis return ConstantDataStruct( "Class TypeInfo: ${classMetadata.klass.fqNameWhenAvailable} ", listOf( - superTypeField, interfaceTablePtr, vtableSizeField, vtableArray, diff --git a/libraries/stdlib/wasm/internal/kotlin/wasm/internal/TypeInfo.kt b/libraries/stdlib/wasm/internal/kotlin/wasm/internal/TypeInfo.kt index 4888382339f..1e0102e95f3 100644 --- a/libraries/stdlib/wasm/internal/kotlin/wasm/internal/TypeInfo.kt +++ b/libraries/stdlib/wasm/internal/kotlin/wasm/internal/TypeInfo.kt @@ -10,8 +10,7 @@ package kotlin.wasm.internal internal const val TYPE_INFO_ELEMENT_SIZE = 4 -internal const val SUPER_CLASS_ID_OFFSET = 0 -internal const val TYPE_INFO_ITABLE_PTR_OFFSET = SUPER_CLASS_ID_OFFSET + TYPE_INFO_ELEMENT_SIZE +internal const val TYPE_INFO_ITABLE_PTR_OFFSET = 0 internal const val TYPE_INFO_VTABLE_LENGTH_OFFSET = TYPE_INFO_ITABLE_PTR_OFFSET + TYPE_INFO_ELEMENT_SIZE internal const val TYPE_INFO_VTABLE_OFFSET = TYPE_INFO_VTABLE_LENGTH_OFFSET + TYPE_INFO_ELEMENT_SIZE @@ -27,9 +26,6 @@ internal fun getItablePtr(obj: Any): Int = internal fun getInterfaceListLength(itablePtr: Int): Int = wasm_i32_load(itablePtr + TYPE_INFO_VTABLE_LENGTH_OFFSET) -internal fun getSuperClassId(obj: Any): Int = - wasm_i32_load(obj.typeInfo + SUPER_CLASS_ID_OFFSET) - internal fun getVirtualMethodId(obj: Any, virtualFunctionSlot: Int): Int { val vtablePtr = getVtablePtr(obj) val methodIdPtr = vtablePtr + virtualFunctionSlot * TYPE_INFO_ELEMENT_SIZE @@ -54,18 +50,6 @@ internal fun getInterfaceImplId(obj: Any, interfaceId: Int): Int { return -1 } - -internal fun isSubClassOfImpl(currentClassId: Int, otherClassId: Int): Boolean { - if (currentClassId == otherClassId) return true - val anyClassId = wasmClassId() - if (currentClassId == anyClassId && otherClassId != anyClassId) return false - return isSubClassOfImpl(wasm_i32_load(currentClassId + SUPER_CLASS_ID_OFFSET), otherClassId) -} - -internal fun isSubClass(obj: Any, classId: Int): Boolean { - return isSubClassOfImpl(obj.typeInfo, classId) -} - internal fun isInterface(obj: Any, interfaceId: Int): Boolean { return getInterfaceImplId(obj, interfaceId) != -1 } From 38967f208ea63efde146769259c3524f888f3b85 Mon Sep 17 00:00:00 2001 From: Svyatoslav Kuzmich Date: Mon, 14 Dec 2020 14:50:15 +0300 Subject: [PATCH 38/71] [Wasm] Remove unused WasmI1 type --- .../kotlin/backend/wasm/ir2wasm/DeclarationGenerator.kt | 1 - wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/Types.kt | 1 - 2 files changed, 2 deletions(-) diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/DeclarationGenerator.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/DeclarationGenerator.kt index f68923a6ca5..a364ab77afe 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/DeclarationGenerator.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/ir2wasm/DeclarationGenerator.kt @@ -357,7 +357,6 @@ class DeclarationGenerator(val context: WasmModuleCodegenContext) : IrElementVis fun generateDefaultInitializerForType(type: WasmType, g: WasmExpressionBuilder) = when (type) { WasmI32 -> g.buildConstI32(0) - WasmI1 -> g.buildConstI32(0) WasmI64 -> g.buildConstI64(0) WasmF32 -> g.buildConstF32(0f) WasmF64 -> g.buildConstF64(0.0) diff --git a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/Types.kt b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/Types.kt index 02e5a5277d2..1a4d18296dd 100644 --- a/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/Types.kt +++ b/wasm/wasm.ir/src/org/jetbrains/kotlin/wasm/ir/Types.kt @@ -15,7 +15,6 @@ sealed class WasmType( // TODO: Remove this type. object WasmUnreachableType : WasmType("unreachable", -0x40) object WasmI32 : WasmType("i32", -0x1) -object WasmI1 : WasmType("i32", -0x1) object WasmI64 : WasmType("i64", -0x2) object WasmF32 : WasmType("f32", -0x3) object WasmF64 : WasmType("f64", -0x4) From 00506a75d35dc09572ade25c533c7d124a698108 Mon Sep 17 00:00:00 2001 From: Iaroslav Postovalov <38042667+CommanderTvis@users.noreply.github.com> Date: Thu, 31 Dec 2020 08:10:28 +0700 Subject: [PATCH 39/71] Make Random implementations serializable (KT-25571) Make Random.Default, XorWowRandom, and wrapper classes for JDK Random implement Serializable interface. Co-authored-by: Ilya Gorbunov --- libraries/stdlib/api/js-v1/kotlin.random.kt | 2 +- libraries/stdlib/api/js/kotlin.random.kt | 2 +- .../jvm/src/kotlin/random/PlatformRandom.kt | 20 +++-- .../test/random/RandomSerializationTest.kt | 82 +++++++++++++++++++ libraries/stdlib/src/kotlin/random/Random.kt | 15 +++- .../stdlib/src/kotlin/random/XorWowRandom.kt | 9 +- .../kotlin-stdlib-runtime-merged.txt | 2 +- 7 files changed, 116 insertions(+), 16 deletions(-) create mode 100644 libraries/stdlib/jvm/test/random/RandomSerializationTest.kt diff --git a/libraries/stdlib/api/js-v1/kotlin.random.kt b/libraries/stdlib/api/js-v1/kotlin.random.kt index d5c24341773..2a2d05a2de9 100644 --- a/libraries/stdlib/api/js-v1/kotlin.random.kt +++ b/libraries/stdlib/api/js-v1/kotlin.random.kt @@ -88,7 +88,7 @@ public abstract class Random { public open fun nextLong(from: kotlin.Long, until: kotlin.Long): kotlin.Long - public companion object of Random Default : kotlin.random.Random { + public companion object of Random Default : kotlin.random.Random, kotlin.io.Serializable { public open override fun nextBits(bitCount: kotlin.Int): kotlin.Int public open override fun nextBoolean(): kotlin.Boolean diff --git a/libraries/stdlib/api/js/kotlin.random.kt b/libraries/stdlib/api/js/kotlin.random.kt index d5c24341773..2a2d05a2de9 100644 --- a/libraries/stdlib/api/js/kotlin.random.kt +++ b/libraries/stdlib/api/js/kotlin.random.kt @@ -88,7 +88,7 @@ public abstract class Random { public open fun nextLong(from: kotlin.Long, until: kotlin.Long): kotlin.Long - public companion object of Random Default : kotlin.random.Random { + public companion object of Random Default : kotlin.random.Random, kotlin.io.Serializable { public open override fun nextBits(bitCount: kotlin.Int): kotlin.Int public open override fun nextBoolean(): kotlin.Boolean diff --git a/libraries/stdlib/jvm/src/kotlin/random/PlatformRandom.kt b/libraries/stdlib/jvm/src/kotlin/random/PlatformRandom.kt index fcdf9455f3a..c9cb14f6a96 100644 --- a/libraries/stdlib/jvm/src/kotlin/random/PlatformRandom.kt +++ b/libraries/stdlib/jvm/src/kotlin/random/PlatformRandom.kt @@ -5,8 +5,8 @@ package kotlin.random -import kotlin.UnsupportedOperationException -import kotlin.internal.* +import kotlin.internal.IMPLEMENTATIONS +import kotlin.internal.InlineOnly /** * Creates a [java.util.Random][java.util.Random] instance that uses the specified Kotlin [Random] generator as a randomness source. @@ -49,15 +49,18 @@ internal abstract class AbstractPlatformRandom : Random() { internal class FallbackThreadLocalRandom : AbstractPlatformRandom() { private val implStorage = object : ThreadLocal() { - override fun initialValue(): java.util.Random { - return java.util.Random() - } + override fun initialValue(): java.util.Random = java.util.Random() } + override val impl: java.util.Random get() = implStorage.get() } -private class PlatformRandom(override val impl: java.util.Random) : AbstractPlatformRandom() +private class PlatformRandom(override val impl: java.util.Random) : AbstractPlatformRandom(), Serializable { + private companion object { + private const val serialVersionUID: Long = 0L + } +} private class KotlinRandom(val impl: Random) : java.util.Random() { override fun next(bits: Int): Int = impl.nextBits(bits) @@ -73,6 +76,7 @@ private class KotlinRandom(val impl: Random) : java.util.Random() { } private var seedInitialized: Boolean = false + override fun setSeed(seed: Long) { if (!seedInitialized) { // ignore seed value from constructor @@ -81,4 +85,8 @@ private class KotlinRandom(val impl: Random) : java.util.Random() { throw UnsupportedOperationException("Setting seed is not supported.") } } + + private companion object { + private const val serialVersionUID: Long = 0L + } } diff --git a/libraries/stdlib/jvm/test/random/RandomSerializationTest.kt b/libraries/stdlib/jvm/test/random/RandomSerializationTest.kt new file mode 100644 index 00000000000..ec848727555 --- /dev/null +++ b/libraries/stdlib/jvm/test/random/RandomSerializationTest.kt @@ -0,0 +1,82 @@ +/* + * 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 random + +import test.io.deserializeFromHex +import test.io.serializeAndDeserialize +import kotlin.random.Random +import kotlin.random.asJavaRandom +import kotlin.random.asKotlinRandom +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertSame +import kotlin.test.assertTrue + +class RandomSerializationTest { + @Test + fun defaultIsSerializable() { + val instance = Random + discardSomeValues(instance) + assertSame(instance, serializeAndDeserialize(instance)) + } + + private fun discardSomeValues(instance: Random) { + instance.nextInt() + instance.nextDouble() + instance.nextLong() + instance.nextBytes(64) + } + + private fun testRandomsHaveSameState(first: Random, second: Random) { + assertEquals(first.nextInt(), second.nextInt()) + assertEquals(first.nextDouble(), second.nextDouble()) + assertEquals(first.nextLong(), second.nextLong()) + assertTrue(first.nextBytes(64).contentEquals(second.nextBytes(64))) + } + + @Test + fun deserializeDefault() = assertSame( + expected = Random, + actual = deserializeFromHex("ac ed 00 05 73 72 00 22 6b 6f 74 6c 69 6e 2e 72 61 6e 64 6f 6d 2e 52 61 6e 64 6f 6d 24 44 65 66 61 75 6c 74 24 44 75 6d 6d 79 00 00 00 00 00 00 00 00 02 00 00 78 70"), + ) + + @Test + fun deserializeXorWow() { + val instance = Random(0) + + val deserialized = + deserializeFromHex("ac ed 00 05 73 72 00 1a 6b 6f 74 6c 69 6e 2e 72 61 6e 64 6f 6d 2e 58 6f 72 57 6f 77 52 61 6e 64 6f 6d 00 00 00 00 00 00 00 00 02 00 06 49 00 06 61 64 64 65 6e 64 49 00 01 76 49 00 01 77 49 00 01 78 49 00 01 79 49 00 01 7a 78 70 01 61 f1 40 23 9d 3d b3 c9 07 82 1d 6a 67 48 b0 e3 f9 bd 0c b6 5b de 32") + + testRandomsHaveSameState(instance, deserialized) + } + + @Test + fun xorwowIsSerializable() { + val instance = Random(0) + discardSomeValues(instance) + val deserialized = serializeAndDeserialize(instance) + testRandomsHaveSameState(instance, deserialized) + } + + @Test + fun wrapperOfKotlinRandomIsSerializable() { + val java = Random(0).asJavaRandom() + java.nextInt() + java.nextDouble() + java.nextLong() + java.nextBytes(ByteArray(64) { 0 }) + val deserialized = serializeAndDeserialize(java) + testRandomsHaveSameState(java.asKotlinRandom(), deserialized.asKotlinRandom()) + } + + @Test + fun wrapperOfJavaRandomIsSerializable() { + val kotlin = java.util.Random(0).asKotlinRandom() + discardSomeValues(kotlin) + val deserialized = serializeAndDeserialize(kotlin) + testRandomsHaveSameState(kotlin, deserialized) + } +} diff --git a/libraries/stdlib/src/kotlin/random/Random.kt b/libraries/stdlib/src/kotlin/random/Random.kt index 2532e2fd8f4..78c9ad50f27 100644 --- a/libraries/stdlib/src/kotlin/random/Random.kt +++ b/libraries/stdlib/src/kotlin/random/Random.kt @@ -267,10 +267,17 @@ public abstract class Random { * * @sample samples.random.Randoms.defaultRandom */ - companion object Default : Random() { - + companion object Default : Random(), Serializable { private val defaultRandom: Random = defaultPlatformRandom() + private object Dummy : Serializable { + private const val serialVersionUID = 0L + + private fun readResolve(): Any = Random + } + + private fun writeReplace(): Any = Dummy + override fun nextBits(bitCount: Int): Int = defaultRandom.nextBits(bitCount) override fun nextInt(): Int = defaultRandom.nextInt() override fun nextInt(until: Int): Int = defaultRandom.nextInt(until) @@ -290,7 +297,8 @@ public abstract class Random { override fun nextBytes(array: ByteArray): ByteArray = defaultRandom.nextBytes(array) override fun nextBytes(size: Int): ByteArray = defaultRandom.nextBytes(size) - override fun nextBytes(array: ByteArray, fromIndex: Int, toIndex: Int): ByteArray = defaultRandom.nextBytes(array, fromIndex, toIndex) + override fun nextBytes(array: ByteArray, fromIndex: Int, toIndex: Int): ByteArray = + defaultRandom.nextBytes(array, fromIndex, toIndex) } } @@ -325,7 +333,6 @@ public fun Random(seed: Int): Random = XorWowRandom(seed, seed.shr(31)) public fun Random(seed: Long): Random = XorWowRandom(seed.toInt(), seed.shr(32).toInt()) - /** * Gets the next random `Int` from the random number generator in the specified [range]. * diff --git a/libraries/stdlib/src/kotlin/random/XorWowRandom.kt b/libraries/stdlib/src/kotlin/random/XorWowRandom.kt index 592745ebb71..d70a3c73914 100644 --- a/libraries/stdlib/src/kotlin/random/XorWowRandom.kt +++ b/libraries/stdlib/src/kotlin/random/XorWowRandom.kt @@ -15,15 +15,14 @@ package kotlin.random * Available at https://www.jstatsoft.org/v08/i14/paper * */ -internal class XorWowRandom -internal constructor( +internal class XorWowRandom internal constructor( private var x: Int, private var y: Int, private var z: Int, private var w: Int, private var v: Int, private var addend: Int -) : Random() { +) : Random(), Serializable { internal constructor(seed1: Int, seed2: Int) : this(seed1, seed2, 0, 0, seed1.inv(), (seed1 shl 10) xor (seed2 ushr 4)) @@ -53,4 +52,8 @@ internal constructor( override fun nextBits(bitCount: Int): Int = nextInt().takeUpperBits(bitCount) + + private companion object { + private const val serialVersionUID: Long = 0L + } } diff --git a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt index e31d9550e55..ea7934ff5cb 100644 --- a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt +++ b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt @@ -4232,7 +4232,7 @@ public abstract class kotlin/random/Random { public fun nextLong (JJ)J } -public final class kotlin/random/Random$Default : kotlin/random/Random { +public final class kotlin/random/Random$Default : kotlin/random/Random, java/io/Serializable { public fun nextBits (I)I public fun nextBoolean ()Z public fun nextBytes (I)[B From 79e426270cb6e2700bf227ee44b9eaca2c3d1eb4 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Thu, 31 Dec 2020 04:21:40 +0300 Subject: [PATCH 40/71] Rename Random.Default serialization surrogate object (KT-25571) --- .../test/random/RandomSerializationTest.kt | 49 ++++++++++++------- libraries/stdlib/src/kotlin/random/Random.kt | 4 +- 2 files changed, 34 insertions(+), 19 deletions(-) diff --git a/libraries/stdlib/jvm/test/random/RandomSerializationTest.kt b/libraries/stdlib/jvm/test/random/RandomSerializationTest.kt index ec848727555..c5193e7c58d 100644 --- a/libraries/stdlib/jvm/test/random/RandomSerializationTest.kt +++ b/libraries/stdlib/jvm/test/random/RandomSerializationTest.kt @@ -5,15 +5,9 @@ package random -import test.io.deserializeFromHex -import test.io.serializeAndDeserialize -import kotlin.random.Random -import kotlin.random.asJavaRandom -import kotlin.random.asKotlinRandom -import kotlin.test.Test -import kotlin.test.assertEquals -import kotlin.test.assertSame -import kotlin.test.assertTrue +import test.io.* +import kotlin.random.* +import kotlin.test.* class RandomSerializationTest { @Test @@ -38,19 +32,40 @@ class RandomSerializationTest { } @Test - fun deserializeDefault() = assertSame( - expected = Random, - actual = deserializeFromHex("ac ed 00 05 73 72 00 22 6b 6f 74 6c 69 6e 2e 72 61 6e 64 6f 6d 2e 52 61 6e 64 6f 6d 24 44 65 66 61 75 6c 74 24 44 75 6d 6d 79 00 00 00 00 00 00 00 00 02 00 00 78 70"), - ) + fun deserializeDefault() { + val randomSerialized = serializeToHex(Random) + try { + assertSame( + expected = Random, + actual = deserializeFromHex("ac ed 00 05 73 72 00 27 6b 6f 74 6c 69 6e 2e 72 61 6e 64 6f 6d 2e 52 61 6e 64 6f 6d 24 44 65 66 61 75 6c 74 24 53 65 72 69 61 6c 69 7a 65 64 00 00 00 00 00 00 00 00 02 00 00 78 70") + ) + } catch (e: Throwable) { + fail("Actual serialized form: $randomSerialized", e) + } + } @Test fun deserializeXorWow() { - val instance = Random(0) + fun checkEquivalentToSerialized(instance: Random, serializedHex: String) { + val serialized = serializeToHex(instance) - val deserialized = - deserializeFromHex("ac ed 00 05 73 72 00 1a 6b 6f 74 6c 69 6e 2e 72 61 6e 64 6f 6d 2e 58 6f 72 57 6f 77 52 61 6e 64 6f 6d 00 00 00 00 00 00 00 00 02 00 06 49 00 06 61 64 64 65 6e 64 49 00 01 76 49 00 01 77 49 00 01 78 49 00 01 79 49 00 01 7a 78 70 01 61 f1 40 23 9d 3d b3 c9 07 82 1d 6a 67 48 b0 e3 f9 bd 0c b6 5b de 32") + try { + val deserialized = deserializeFromHex(serializedHex) + testRandomsHaveSameState(instance, deserialized) + } catch (e: Throwable) { + fail("Actual serialized from: $serialized", e) + } + } - testRandomsHaveSameState(instance, deserialized) + checkEquivalentToSerialized( + instance = Random(0), + serializedHex = "ac ed 00 05 73 72 00 1a 6b 6f 74 6c 69 6e 2e 72 61 6e 64 6f 6d 2e 58 6f 72 57 6f 77 52 61 6e 64 6f 6d 00 00 00 00 00 00 00 00 02 00 06 49 00 06 61 64 64 65 6e 64 49 00 01 76 49 00 01 77 49 00 01 78 49 00 01 79 49 00 01 7a 78 70 01 61 f1 40 23 9d 3d b3 c9 07 82 1d 6a 67 48 b0 e3 f9 bd 0c b6 5b de 32" + ) + + checkEquivalentToSerialized( + instance = Random(0).apply { repeat(64) { nextLong() } }, // advance state by discarding values + serializedHex = "ac ed 00 05 73 72 00 1a 6b 6f 74 6c 69 6e 2e 72 61 6e 64 6f 6d 2e 58 6f 72 57 6f 77 52 61 6e 64 6f 6d 00 00 00 00 00 00 00 00 02 00 06 49 00 06 61 64 64 65 6e 64 49 00 01 76 49 00 01 77 49 00 01 78 49 00 01 79 49 00 01 7a 78 70 04 25 d3 c0 be 0e 05 94 fd be 13 de a4 17 b2 90 b0 de a4 64 9c 72 81 64" + ) } @Test diff --git a/libraries/stdlib/src/kotlin/random/Random.kt b/libraries/stdlib/src/kotlin/random/Random.kt index 78c9ad50f27..903bc3528d9 100644 --- a/libraries/stdlib/src/kotlin/random/Random.kt +++ b/libraries/stdlib/src/kotlin/random/Random.kt @@ -270,13 +270,13 @@ public abstract class Random { companion object Default : Random(), Serializable { private val defaultRandom: Random = defaultPlatformRandom() - private object Dummy : Serializable { + private object Serialized : Serializable { private const val serialVersionUID = 0L private fun readResolve(): Any = Random } - private fun writeReplace(): Any = Dummy + private fun writeReplace(): Any = Serialized override fun nextBits(bitCount: Int): Int = defaultRandom.nextBits(bitCount) override fun nextInt(): Int = defaultRandom.nextInt() From 662787b12bbdbc6945db059f567f2a26745d6276 Mon Sep 17 00:00:00 2001 From: Abduqodiri Qurbonzoda Date: Tue, 8 Dec 2020 11:51:16 +0300 Subject: [PATCH 41/71] Straighten Char-to-code and Char-to-digit conversions out #KT-23451 --- libraries/stdlib/api/js-v1/kotlin.kt | 15 ++ libraries/stdlib/api/js-v1/kotlin.text.kt | 24 +++ libraries/stdlib/api/js/kotlin.kt | 14 ++ libraries/stdlib/api/js/kotlin.text.kt | 24 +++ .../js-ir-minimal-for-test/build.gradle.kts | 9 +- .../src/smallRuntimeMissingDeclarations.kt | 21 ++- libraries/stdlib/js-ir/builtins/Char.kt | 7 +- .../stdlib/js-v1/src/kotlin/charCode_js-v1.kt | 19 +++ .../stdlib/jvm/src/kotlin/CharCodeJVM.kt | 19 +++ .../stdlib/samples/test/samples/text/char.kt | 75 +++++++++ libraries/stdlib/src/kotlin/CharCode.kt | 50 ++++++ libraries/stdlib/src/kotlin/text/Char.kt | 121 ++++++++++++++ libraries/stdlib/test/text/CharTest.kt | 149 ++++++++++++++++++ libraries/stdlib/test/text/StringTest.kt | 18 +-- libraries/stdlib/wasm/src/kotlin/CharCode.kt | 16 ++ .../kotlin-stdlib-runtime-merged.txt | 6 + nj2k/testData/newJ2k/issues/kt-836.kt | 2 +- 17 files changed, 575 insertions(+), 14 deletions(-) create mode 100644 libraries/stdlib/js-v1/src/kotlin/charCode_js-v1.kt create mode 100644 libraries/stdlib/jvm/src/kotlin/CharCodeJVM.kt create mode 100644 libraries/stdlib/src/kotlin/CharCode.kt create mode 100644 libraries/stdlib/test/text/CharTest.kt create mode 100644 libraries/stdlib/wasm/src/kotlin/CharCode.kt diff --git a/libraries/stdlib/api/js-v1/kotlin.kt b/libraries/stdlib/api/js-v1/kotlin.kt index 81cbf3de16f..8590a2ab5bc 100644 --- a/libraries/stdlib/api/js-v1/kotlin.kt +++ b/libraries/stdlib/api/js-v1/kotlin.kt @@ -1,3 +1,8 @@ +@kotlin.ExperimentalStdlibApi +@kotlin.SinceKotlin(version = "1.4") +@kotlin.internal.InlineOnly +public val kotlin.Char.code: kotlin.Int { get; } + @kotlin.SinceKotlin(version = "1.2") @kotlin.internal.InlineOnly public val kotlin.reflect.KProperty0<*>.isInitialized: kotlin.Boolean { get; } @@ -5,7 +10,17 @@ public val kotlin.reflect.KProperty0<*>.isInitialized: kotlin.Boolean { get; } @kotlin.SinceKotlin(version = "1.4") public val kotlin.Throwable.suppressedExceptions: kotlin.collections.List { get; } +@kotlin.ExperimentalStdlibApi +@kotlin.SinceKotlin(version = "1.4") @kotlin.internal.InlineOnly +public inline fun Char(code: kotlin.Int): kotlin.Char + +/*∆*/ @kotlin.ExperimentalStdlibApi +/*∆*/ @kotlin.SinceKotlin(version = "1.4") +@kotlin.internal.InlineOnly +/*∆*/ public inline fun Char(code: kotlin.UShort): kotlin.Char +/*∆*/ +/*∆*/ @kotlin.internal.InlineOnly public inline fun TODO(): kotlin.Nothing @kotlin.internal.InlineOnly diff --git a/libraries/stdlib/api/js-v1/kotlin.text.kt b/libraries/stdlib/api/js-v1/kotlin.text.kt index dd3c70a7674..902a3261170 100644 --- a/libraries/stdlib/api/js-v1/kotlin.text.kt +++ b/libraries/stdlib/api/js-v1/kotlin.text.kt @@ -183,6 +183,30 @@ public inline fun kotlin.text.StringBuilder.deleteAt(index: kotlin.Int): kotlin. @kotlin.WasExperimental(markerClass = {kotlin.ExperimentalStdlibApi::class}) public inline fun kotlin.text.StringBuilder.deleteRange(startIndex: kotlin.Int, endIndex: kotlin.Int): kotlin.text.StringBuilder +@kotlin.ExperimentalStdlibApi +@kotlin.SinceKotlin(version = "1.4") +public fun kotlin.Int.digitToChar(): kotlin.Char + +@kotlin.ExperimentalStdlibApi +@kotlin.SinceKotlin(version = "1.4") +public fun kotlin.Int.digitToChar(radix: kotlin.Int): kotlin.Char + +@kotlin.ExperimentalStdlibApi +@kotlin.SinceKotlin(version = "1.4") +public fun kotlin.Char.digitToInt(): kotlin.Int + +@kotlin.ExperimentalStdlibApi +@kotlin.SinceKotlin(version = "1.4") +public fun kotlin.Char.digitToInt(radix: kotlin.Int): kotlin.Int + +@kotlin.ExperimentalStdlibApi +@kotlin.SinceKotlin(version = "1.4") +public fun kotlin.Char.digitToIntOrNull(): kotlin.Int? + +@kotlin.ExperimentalStdlibApi +@kotlin.SinceKotlin(version = "1.4") +public fun kotlin.Char.digitToIntOrNull(radix: kotlin.Int): kotlin.Int? + public fun kotlin.CharSequence.drop(n: kotlin.Int): kotlin.CharSequence public fun kotlin.String.drop(n: kotlin.Int): kotlin.String diff --git a/libraries/stdlib/api/js/kotlin.kt b/libraries/stdlib/api/js/kotlin.kt index 3c0cc877ba5..bf897984b45 100644 --- a/libraries/stdlib/api/js/kotlin.kt +++ b/libraries/stdlib/api/js/kotlin.kt @@ -1,3 +1,8 @@ +@kotlin.ExperimentalStdlibApi +@kotlin.SinceKotlin(version = "1.4") +@kotlin.internal.InlineOnly +public val kotlin.Char.code: kotlin.Int { get; } + @kotlin.SinceKotlin(version = "1.2") @kotlin.internal.InlineOnly public val kotlin.reflect.KProperty0<*>.isInitialized: kotlin.Boolean { get; } @@ -5,6 +10,11 @@ public val kotlin.reflect.KProperty0<*>.isInitialized: kotlin.Boolean { get; } @kotlin.SinceKotlin(version = "1.4") public val kotlin.Throwable.suppressedExceptions: kotlin.collections.List { get; } +@kotlin.ExperimentalStdlibApi +@kotlin.SinceKotlin(version = "1.4") +@kotlin.internal.InlineOnly +public inline fun Char(code: kotlin.Int): kotlin.Char + @kotlin.internal.InlineOnly public inline fun TODO(): kotlin.Nothing @@ -899,6 +909,10 @@ public final class ByteArray { } public final class Char : kotlin.Comparable { +/*∆*/ @kotlin.ExperimentalStdlibApi +/*∆*/ @kotlin.SinceKotlin(version = "1.4") +/*∆*/ public constructor Char(code: kotlin.UShort) +/*∆*/ public open override operator fun compareTo(other: kotlin.Char): kotlin.Int public final operator fun dec(): kotlin.Char diff --git a/libraries/stdlib/api/js/kotlin.text.kt b/libraries/stdlib/api/js/kotlin.text.kt index dd3c70a7674..902a3261170 100644 --- a/libraries/stdlib/api/js/kotlin.text.kt +++ b/libraries/stdlib/api/js/kotlin.text.kt @@ -183,6 +183,30 @@ public inline fun kotlin.text.StringBuilder.deleteAt(index: kotlin.Int): kotlin. @kotlin.WasExperimental(markerClass = {kotlin.ExperimentalStdlibApi::class}) public inline fun kotlin.text.StringBuilder.deleteRange(startIndex: kotlin.Int, endIndex: kotlin.Int): kotlin.text.StringBuilder +@kotlin.ExperimentalStdlibApi +@kotlin.SinceKotlin(version = "1.4") +public fun kotlin.Int.digitToChar(): kotlin.Char + +@kotlin.ExperimentalStdlibApi +@kotlin.SinceKotlin(version = "1.4") +public fun kotlin.Int.digitToChar(radix: kotlin.Int): kotlin.Char + +@kotlin.ExperimentalStdlibApi +@kotlin.SinceKotlin(version = "1.4") +public fun kotlin.Char.digitToInt(): kotlin.Int + +@kotlin.ExperimentalStdlibApi +@kotlin.SinceKotlin(version = "1.4") +public fun kotlin.Char.digitToInt(radix: kotlin.Int): kotlin.Int + +@kotlin.ExperimentalStdlibApi +@kotlin.SinceKotlin(version = "1.4") +public fun kotlin.Char.digitToIntOrNull(): kotlin.Int? + +@kotlin.ExperimentalStdlibApi +@kotlin.SinceKotlin(version = "1.4") +public fun kotlin.Char.digitToIntOrNull(radix: kotlin.Int): kotlin.Int? + public fun kotlin.CharSequence.drop(n: kotlin.Int): kotlin.CharSequence public fun kotlin.String.drop(n: kotlin.Int): kotlin.String diff --git a/libraries/stdlib/js-ir-minimal-for-test/build.gradle.kts b/libraries/stdlib/js-ir-minimal-for-test/build.gradle.kts index 62fc169279d..9084fcb3aee 100644 --- a/libraries/stdlib/js-ir-minimal-for-test/build.gradle.kts +++ b/libraries/stdlib/js-ir-minimal-for-test/build.gradle.kts @@ -16,7 +16,13 @@ val commonMainSources by task { val fullCommonMainSources = tasks.getByPath(":kotlin-stdlib-js-ir:commonMainSources") exclude( listOf( - "libraries/stdlib/unsigned/**", + "libraries/stdlib/unsigned/src/kotlin/UByteArray.kt", + "libraries/stdlib/unsigned/src/kotlin/UIntArray.kt", + "libraries/stdlib/unsigned/src/kotlin/ULongArray.kt", + "libraries/stdlib/unsigned/src/kotlin/UMath.kt", + "libraries/stdlib/unsigned/src/kotlin/UNumbers.kt", + "libraries/stdlib/unsigned/src/kotlin/UShortArray.kt", + "libraries/stdlib/unsigned/src/kotlin/UStrings.kt", "libraries/stdlib/common/src/generated/_Arrays.kt", "libraries/stdlib/common/src/generated/_Collections.kt", "libraries/stdlib/common/src/generated/_Comparisons.kt", @@ -35,7 +41,6 @@ val commonMainSources by task { "libraries/stdlib/common/src/kotlin/collections/**", "libraries/stdlib/common/src/kotlin/ioH.kt", "libraries/stdlib/src/kotlin/collections/**", - "libraries/stdlib/src/kotlin/experimental/bitwiseOperations.kt", "libraries/stdlib/src/kotlin/properties/Delegates.kt", "libraries/stdlib/src/kotlin/random/URandom.kt", "libraries/stdlib/src/kotlin/text/**", diff --git a/libraries/stdlib/js-ir-minimal-for-test/src/smallRuntimeMissingDeclarations.kt b/libraries/stdlib/js-ir-minimal-for-test/src/smallRuntimeMissingDeclarations.kt index da299aa19bc..dc796d2dc96 100644 --- a/libraries/stdlib/js-ir-minimal-for-test/src/smallRuntimeMissingDeclarations.kt +++ b/libraries/stdlib/js-ir-minimal-for-test/src/smallRuntimeMissingDeclarations.kt @@ -32,4 +32,23 @@ public actual fun Throwable.addSuppressed(exception: Throwable) { } public actual val Throwable.suppressedExceptions: List - get() = TODO("Not implemented in reduced runtime") \ No newline at end of file + get() = TODO("Not implemented in reduced runtime") + +/** + * Returns a string representation of this [Long] value in the specified [radix]. + * + * @throws IllegalArgumentException when [radix] is not a valid radix for number to string conversion. + */ +@SinceKotlin("1.2") +public fun Long.toString(radix: Int): String = + this.toStringImpl(checkRadix(radix)) + +/** + * Checks whether the given [radix] is valid radix for string to number and number to string conversion. + */ +internal fun checkRadix(radix: Int): Int { + if (radix !in 2..36) { + throw IllegalArgumentException("radix $radix was not in valid range 2..36") + } + return radix +} \ No newline at end of file diff --git a/libraries/stdlib/js-ir/builtins/Char.kt b/libraries/stdlib/js-ir/builtins/Char.kt index cadd8e8ddbb..73681f6eadc 100644 --- a/libraries/stdlib/js-ir/builtins/Char.kt +++ b/libraries/stdlib/js-ir/builtins/Char.kt @@ -12,7 +12,12 @@ package kotlin // TODO: KT-35100 //@Suppress("NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS") //public inline class Char internal constructor (val value: Int) : Comparable { -public class Char internal constructor(private val value: Int) : Comparable { +public class Char +@OptIn(ExperimentalUnsignedTypes::class) +@ExperimentalStdlibApi +@SinceKotlin("1.4") +constructor(code: UShort) : Comparable { + private val value: Int = code.toInt() /** * Compares this value with the specified value for order. diff --git a/libraries/stdlib/js-v1/src/kotlin/charCode_js-v1.kt b/libraries/stdlib/js-v1/src/kotlin/charCode_js-v1.kt new file mode 100644 index 00000000000..fbd42636080 --- /dev/null +++ b/libraries/stdlib/js-v1/src/kotlin/charCode_js-v1.kt @@ -0,0 +1,19 @@ +/* + * 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 kotlin + +/** + * Creates a Char with the specified [code]. + * + * @sample samples.text.Chars.charFromCode + */ +@OptIn(ExperimentalUnsignedTypes::class) +@ExperimentalStdlibApi +@SinceKotlin("1.4") +@kotlin.internal.InlineOnly +public actual inline fun Char(code: UShort): Char { + return code.toInt().toChar() +} diff --git a/libraries/stdlib/jvm/src/kotlin/CharCodeJVM.kt b/libraries/stdlib/jvm/src/kotlin/CharCodeJVM.kt new file mode 100644 index 00000000000..fbd42636080 --- /dev/null +++ b/libraries/stdlib/jvm/src/kotlin/CharCodeJVM.kt @@ -0,0 +1,19 @@ +/* + * 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 kotlin + +/** + * Creates a Char with the specified [code]. + * + * @sample samples.text.Chars.charFromCode + */ +@OptIn(ExperimentalUnsignedTypes::class) +@ExperimentalStdlibApi +@SinceKotlin("1.4") +@kotlin.internal.InlineOnly +public actual inline fun Char(code: UShort): Char { + return code.toInt().toChar() +} diff --git a/libraries/stdlib/samples/test/samples/text/char.kt b/libraries/stdlib/samples/test/samples/text/char.kt index 493cf8815a6..777c320858f 100644 --- a/libraries/stdlib/samples/test/samples/text/char.kt +++ b/libraries/stdlib/samples/test/samples/text/char.kt @@ -160,4 +160,79 @@ class Chars { assertTrue('a'.equals('A', true)) } + @Sample + fun charFromCode() { + val codes = listOf(48, 65, 122, 946) + assertPrints(codes.map { Char(it) }, "[0, A, z, β]") + assertPrints(codes.map { Char(it.toUShort()) }, "[0, A, z, β]") + + assertFails { Char(-1) } + assertPrints(Char(UShort.MIN_VALUE), "\u0000") + assertFails { Char(1_000_000) } + assertPrints(Char(UShort.MAX_VALUE), "\uFFFF") + } + + @Sample + fun code() { + val string = "0Azβ" + assertPrints(string.map { it.code }, "[48, 65, 122, 946]") + } + + @Sample + fun digitToInt() { + assertPrints('5'.digitToInt(), "5") + assertPrints('3'.digitToInt(radix = 8), "3") + assertPrints('A'.digitToInt(radix = 16), "10") + assertPrints('k'.digitToInt(radix = 36), "20") + + // radix argument should be in 2..36 + assertFails { '0'.digitToInt(radix = 1) } + assertFails { '1'.digitToInt(radix = 100) } + // only 0 and 1 digits are valid for binary numbers + assertFails { '5'.digitToInt(radix = 2) } + // radix = 10 is used by default + assertFails { 'A'.digitToInt() } + // symbol '+' is not a digit in any radix + assertFails { '+'.digitToInt() } + // Only Latin letters are valid for digits greater than 9. + assertFails { 'β'.digitToInt(radix = 36) } + } + + @Sample + fun digitToIntOrNull() { + assertPrints('5'.digitToIntOrNull(), "5") + assertPrints('3'.digitToIntOrNull(radix = 8), "3") + assertPrints('A'.digitToIntOrNull(radix = 16), "10") + assertPrints('K'.digitToIntOrNull(radix = 36), "20") + + // radix argument should be in 2..36 + assertFails { '0'.digitToIntOrNull(radix = 1) } + assertFails { '1'.digitToIntOrNull(radix = 100) } + // only 0 and 1 digits are valid for binary numbers + assertPrints('5'.digitToIntOrNull(radix = 2), "null") + // radix = 10 is used by default + assertPrints('A'.digitToIntOrNull(), "null") + // symbol '+' is not a digit in any radix + assertPrints('+'.digitToIntOrNull(), "null") + // Only Latin letters are valid for digits greater than 9. + assertPrints('β'.digitToIntOrNull(radix = 36), "null") + } + + @Sample + fun digitToChar() { + assertPrints(5.digitToChar(), "5") + assertPrints(3.digitToChar(radix = 8), "3") + assertPrints(10.digitToChar(radix = 16), "A") + assertPrints(20.digitToChar(radix = 36), "K") + + // radix argument should be in 2..36 + assertFails { 0.digitToChar(radix = 1) } + assertFails { 1.digitToChar(radix = 100) } + // only 0 and 1 digits are valid for binary numbers + assertFails { 5.digitToChar(radix = 2) } + // radix = 10 is used by default + assertFails { 10.digitToChar() } + // a negative integer is not a digit in any radix + assertFails { (-1).digitToChar() } + } } \ No newline at end of file diff --git a/libraries/stdlib/src/kotlin/CharCode.kt b/libraries/stdlib/src/kotlin/CharCode.kt new file mode 100644 index 00000000000..71370cc05b3 --- /dev/null +++ b/libraries/stdlib/src/kotlin/CharCode.kt @@ -0,0 +1,50 @@ +/* + * 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 kotlin + + +/** + * Creates a Char with the specified [code], or throws an exception if the [code] is out of `Char.MIN_VALUE.code..Char.MAX_VALUE.code`. + * + * If the program that calls this function is written in a way that only valid [code] is passed as the argument, + * using the overload that takes a [UShort] argument is preferable (`Char(intValue.toUShort())`). + * That overload doesn't check validity of the argument, and may improve program performance when the function is called routinely inside a loop. + * + * @sample samples.text.Chars.charFromCode + */ +@OptIn(ExperimentalUnsignedTypes::class) +@ExperimentalStdlibApi +@SinceKotlin("1.4") +@kotlin.internal.InlineOnly +public inline fun Char(code: Int): Char { + if (code < Char.MIN_VALUE.code || code > Char.MAX_VALUE.code) { + throw IllegalArgumentException("Invalid Char code: $code") + } + return Char(code.toUShort()) +} + +/** + * Creates a Char with the specified [code]. + * + * @sample samples.text.Chars.charFromCode + */ +@OptIn(ExperimentalUnsignedTypes::class) +@ExperimentalStdlibApi +@SinceKotlin("1.4") +@Suppress("NO_ACTUAL_FOR_EXPECT") +public expect fun Char(code: UShort): Char + +/** + * Returns the code of this Char. + * + * Code of a Char is the value it was constructed with, and the UTF-16 code unit corresponding to this Char. + * + * @sample samples.text.Chars.code + */ +@ExperimentalStdlibApi +@SinceKotlin("1.4") +@kotlin.internal.InlineOnly +public inline val Char.code: Int get() = this.toInt() diff --git a/libraries/stdlib/src/kotlin/text/Char.kt b/libraries/stdlib/src/kotlin/text/Char.kt index e8de0008915..a71cf8999f2 100644 --- a/libraries/stdlib/src/kotlin/text/Char.kt +++ b/libraries/stdlib/src/kotlin/text/Char.kt @@ -8,6 +8,127 @@ package kotlin.text +/** + * Returns the numeric value of the decimal digit that this Char represents. + * Throws an exception if this Char is not a valid decimal digit. + * + * A Char is considered to represent a decimal digit if the Char is one of the ASCII decimal digits '0' through '9'. + * In this case, `this.code - '0'.code` is returned. + * + * @sample samples.text.Chars.digitToInt + */ +@ExperimentalStdlibApi +@SinceKotlin("1.4") +public fun Char.digitToInt(): Int { + if (this in '0'..'9') { + return this - '0' + } + throw IllegalArgumentException("Char $this is not a decimal digit") +} + +/** + * Returns the numeric value of the digit that this Char represents in the specified [radix]. + * Throws an exception if the [radix] is not in the range `2..36` or if this Char is not a valid digit in the specified [radix]. + * + * A Char is considered to represent a digit in the specified [radix] if at least one of the following is true: + * - The Char is one of the ASCII decimal digits '0' through '9' and its [code] is less than `radix + '0'.code`. In this case, `this.code - '0'.code` is returned. + * - The Char is one of the uppercase Latin letters 'A' through 'Z' and its [code] is less than `radix + 'A'.code - 10`. In this case, `this.code - 'A'.code + 10` is returned. + * - The Char is one of the lowercase Latin letters 'a' through 'z' and its [code] is less than `radix + 'a'.code - 10`. In this case, `this.code - 'a'.code + 10` is returned. + * + * @sample samples.text.Chars.digitToInt + */ +@ExperimentalStdlibApi +@SinceKotlin("1.4") +public fun Char.digitToInt(radix: Int): Int { + return digitToIntOrNull(radix) ?: throw IllegalArgumentException("Char $this is not a digit in the given radix=$radix") +} + +/** + * + * Returns the numeric value of the decimal digit that this Char represents, or `null` if this Char is not a valid decimal digit. + * + * A Char is considered to represent a decimal digit if the Char is one of the ASCII decimal digits '0' through '9'. + * In this case, `this.code - '0'.code` is returned. + * + * @sample samples.text.Chars.digitToIntOrNull + */ +@ExperimentalStdlibApi +@SinceKotlin("1.4") +public fun Char.digitToIntOrNull(): Int? { + if (this in '0'..'9') { + return this - '0' + } + return null +} + +/** + * Returns the numeric value of the digit that this Char represents in the specified [radix], or `null` if this Char is not a valid digit in the specified [radix]. + * Throws an exception if the [radix] is not in the range `2..36`. + * + * A Char is considered to represent a digit in the specified [radix] if at least one of the following is true: + * - The Char is one of the ASCII decimal digits '0' through '9' and its [code] is less than `radix + '0'.code`. In this case, `this.code - '0'.code` is returned. + * - The Char is one of the uppercase Latin letters 'A' through 'Z' and its [code] is less than `radix + 'A'.code - 10`. In this case, `this.code - 'A'.code + 10` is returned. + * - The Char is one of the lowercase Latin letters 'a' through 'z' and its [code] is less than `radix + 'a'.code - 10`. In this case, `this.code - 'a'.code + 10` is returned. + * + * @sample samples.text.Chars.digitToIntOrNull + */ +@ExperimentalStdlibApi +@SinceKotlin("1.4") +public fun Char.digitToIntOrNull(radix: Int): Int? { + if (radix !in 2..36) { + throw IllegalArgumentException("Invalid radix: $radix. Valid radix values are in range 2..36") + } + if (this in '0'..'9') { + val digit = this - '0' + return if (digit < radix) digit else null + } + val a = if (this <= 'Z') 'A' else 'a' + val digit = 10 + (this - a) + return if (digit in 10 until radix) digit else null +} + +/** + * Returns the Char that represents this decimal digit. + * Throws an exception if this value is not in the range `0..9`. + * + * If this value is in `0..9`, the decimal digit Char with code `'0'.code + this` is returned. + * + * @sample samples.text.Chars.digitToChar + */ +@ExperimentalStdlibApi +@SinceKotlin("1.4") +public fun Int.digitToChar(): Char { + if (this in 0..9) { + return '0' + this + } + throw IllegalArgumentException("Int $this is not a decimal digit") +} + +/** + * Returns the Char that represents this numeric digit value in the specified [radix]. + * Throws an exception if the [radix] is not in the range `2..36` or if this value is not in the range `0 until radix`. + * + * If this value is less than `10`, the decimal digit Char with code `'0'.code + this` is returned. + * Otherwise, the uppercase Latin letter with code `'A'.code + this - 10` is returned. + * + * @sample samples.text.Chars.digitToChar + */ +@ExperimentalStdlibApi +@SinceKotlin("1.4") +public fun Int.digitToChar(radix: Int): Char { + if (radix !in 2..36) { + throw IllegalArgumentException("Invalid radix: $radix. Valid radix values are in range 2..36") + } + if (this < 0 || this >= radix) { + throw IllegalArgumentException("Digit $this does not represent a valid digit in radix $radix") + } + return if (this < 10) { + '0' + this + } else { + 'A' + this - 10 + } +} + /** * Converts this character to lower case using Unicode mapping rules of the invariant locale. */ diff --git a/libraries/stdlib/test/text/CharTest.kt b/libraries/stdlib/test/text/CharTest.kt new file mode 100644 index 00000000000..d3c4cfe9765 --- /dev/null +++ b/libraries/stdlib/test/text/CharTest.kt @@ -0,0 +1,149 @@ +/* + * 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 test.text + +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertFails + +class CharTest { + + @Test + fun charFromIntCode() { + val codes = listOf(48, 65, 122, 946, '+'.code, 'Ö'.code, 0xFFFC) + assertEquals("0Azβ+Ö\uFFFC", codes.map { Char(it) }.joinToString(separator = "")) + + assertFails { Char(-1) } + assertFails { Char(0x1_0000) } + assertFails { Char(1_000_000) } + } + + @Test + fun charFromUShortCode() { + val codes = listOf(48, 65, 122, 946, '+'.code, 'Ö'.code, 0xFFFC) + assertEquals("0Azβ+Ö\uFFFC", codes.map { Char(it.toUShort()) }.joinToString(separator = "")) + + assertEquals('\u0000', Char(UShort.MIN_VALUE)) + assertEquals('\uFFFF', Char(UShort.MAX_VALUE)) + assertEquals('\uFFFF', Char((-1).toUShort())) + assertEquals('\u0000', Char(0x1_0000.toUShort())) + } + + @Test + fun code() { + val codes = listOf(48, 65, 122, 946, '+'.code, 'Ö'.code, 0xFFFC) + val chars = "0Azβ+Ö\uFFFC" + assertEquals(codes, chars.map { it.code }) + assertEquals(0, Char.MIN_VALUE.code) + assertEquals(0xFFFF, Char.MAX_VALUE.code) + } + + @Test + fun digitToInt() { + fun testEquals(expected: Int, receiver: Char, radix: Int) { + if (radix == 10) { + assertEquals(expected, receiver.digitToInt()) + assertEquals(expected, receiver.digitToIntOrNull()) + } + assertEquals(expected, receiver.digitToInt(radix)) + assertEquals(expected, receiver.digitToIntOrNull(radix)) + } + + fun testFails(receiver: Char, radix: Int) { + if (radix == 10) { + assertFails { receiver.digitToInt() } + assertEquals(null, receiver.digitToIntOrNull()) + } + assertFails { receiver.digitToInt(radix) } + assertEquals(null, receiver.digitToIntOrNull(radix)) + } + + for (char in '0'..'9') { + val digit = char - '0' + + for (radix in (digit + 1).coerceAtLeast(2)..36) { + testEquals(digit, char, radix) + } + for (radix in 2..digit) { + testFails(char, radix) + } + } + + for (char in 'A'..'Z') { + val digit = 10 + (char - 'A') + val lower = char.toLowerCase() + + for (radix in digit + 1..36) { + testEquals(digit, char, radix) + testEquals(digit, lower, radix) + } + for (radix in 2..digit) { + testFails(char, radix) + testFails(lower, radix) + } + } + + assertFails { '0'.digitToInt(radix = 37) } + assertFails { '0'.digitToIntOrNull(radix = 37) } + assertFails { '0'.digitToInt(radix = 1) } + assertFails { '0'.digitToIntOrNull(radix = 1) } + + testFails('0' - 1, radix = 10) + testFails('9' + 1, radix = 10) + testFails('β', radix = 36) + testFails('+', radix = 36) + } + + @Test + fun digitToChar() { + fun testEquals(expected: Char, receiver: Int, radix: Int) { + if (radix == 10) { + assertEquals(expected, receiver.digitToChar()) + } + assertEquals(expected, receiver.digitToChar(radix)) + } + + fun testFails(receiver: Int, radix: Int) { + if (radix == 10) { + assertFails { receiver.digitToChar() } + } + assertFails { receiver.digitToChar(radix) } + } + + for (int in 0..9) { + val digit = '0' + int + + for (radix in (int + 1).coerceAtLeast(2)..36) { + testEquals(digit, int, radix) + } + for (radix in 2..int) { + testFails(int, radix) + } + + testFails(int, radix = 37) + } + + for (int in 10..35) { + val digit = 'A' + (int - 10) + + for (radix in int + 1..36) { + testEquals(digit, int, radix) + } + for (radix in 2..int) { + testFails(int, radix) + } + + testFails(int, radix = 37) + } + + assertFails { 0.digitToChar(radix = 37) } + assertFails { 0.digitToChar(radix = 1) } + + testFails(-1, radix = 10) + testFails(100, radix = 36) + testFails(100, radix = 110) + } +} diff --git a/libraries/stdlib/test/text/StringTest.kt b/libraries/stdlib/test/text/StringTest.kt index ba26d28d94c..9c828503da1 100644 --- a/libraries/stdlib/test/text/StringTest.kt +++ b/libraries/stdlib/test/text/StringTest.kt @@ -908,7 +908,7 @@ class StringTest { fun testIgnoreCase(chars: String) { for ((i, c) in chars.withIndex()) { - val message = "Char: $c (${c.toInt()})" + val message = "Char: $c (${c.code})" val expectOneReplaced = chars.replaceRange(i..i, "_") val expectAllReplaced = "_".repeat(chars.length) assertEquals(expectOneReplaced, chars.replace(c, '_'), message) @@ -1238,7 +1238,7 @@ class StringTest { assertEquals(listOf(), arg1("").map { it.isAsciiUpperCase() }) - assertEquals(listOf(97, 98, 99), arg1("abc").map { it.toInt() }) + assertEquals(listOf(97, 98, 99), arg1("abc").map { it.code }) } @Test fun mapTo() = withOneCharSequenceArg { arg1 -> @@ -1258,7 +1258,7 @@ class StringTest { assertEquals(arrayListOf(), result3) val result4 = arrayListOf() - val return4 = arg1("abc").mapTo(result4, { it.toInt() }) + val return4 = arg1("abc").mapTo(result4, { it.code }) assertEquals(result4, return4) assertEquals(arrayListOf(97, 98, 99), result4) } @@ -1416,18 +1416,18 @@ class StringTest { @Test fun runningReduce() = withOneCharSequenceArg { arg1 -> for (size in 0 until 4) { - val expected = listOf(0, 1, 3, 6).take(size).map { it.toChar() } - val source = arg1((0.toChar() until size.toChar()).joinToString(separator = "")) - assertEquals(expected, source.runningReduce { acc, e -> acc + e.toInt() }) + val expected = listOf(0, 1, 3, 6).take(size).map { Char(it) } + val source = arg1((Char(0) until Char(size)).joinToString(separator = "")) + assertEquals(expected, source.runningReduce { acc, e -> acc + e.code }) } } @Test fun runningReduceIndexed() = withOneCharSequenceArg { arg1 -> for (size in 0 until 4) { - val expected = listOf(0, 1, 6, 27).take(size).map { it.toChar() } - val source = arg1((0.toChar() until size.toChar()).joinToString(separator = "")) - assertEquals(expected, source.runningReduceIndexed { index, acc, e -> (index * (acc.toInt() + e.toInt())).toChar() }) + val expected = listOf(0, 1, 6, 27).take(size).map { Char(it) } + val source = arg1((Char(0) until Char(size)).joinToString(separator = "")) + assertEquals(expected, source.runningReduceIndexed { index, acc, e -> Char(index * (acc.code + e.code)) }) } } diff --git a/libraries/stdlib/wasm/src/kotlin/CharCode.kt b/libraries/stdlib/wasm/src/kotlin/CharCode.kt new file mode 100644 index 00000000000..4ab00680387 --- /dev/null +++ b/libraries/stdlib/wasm/src/kotlin/CharCode.kt @@ -0,0 +1,16 @@ +/* + * 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 kotlin + +/** + * Creates a Char with the specified [code]. + * + * @sample samples.text.Chars.charFromCode + */ +@OptIn(ExperimentalUnsignedTypes::class) +@ExperimentalStdlibApi +@SinceKotlin("1.4") +public actual fun Char(code: UShort): Char = TODO("Wasm stdlib: CharCode") diff --git a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt index ea7934ff5cb..2499ffd1cc3 100644 --- a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt +++ b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib-runtime-merged.txt @@ -5107,6 +5107,12 @@ public final class kotlin/text/CharDirectionality$Companion { public final class kotlin/text/CharsKt { public static final fun checkRadix (I)I + public static final fun digitToChar (I)C + public static final fun digitToChar (II)C + public static final fun digitToInt (C)I + public static final fun digitToInt (CI)I + public static final fun digitToIntOrNull (C)Ljava/lang/Integer; + public static final fun digitToIntOrNull (CI)Ljava/lang/Integer; public static final fun equals (CCZ)Z public static synthetic fun equals$default (CCZILjava/lang/Object;)Z public static final fun getCategory (C)Lkotlin/text/CharCategory; diff --git a/nj2k/testData/newJ2k/issues/kt-836.kt b/nj2k/testData/newJ2k/issues/kt-836.kt index bf68d38f78d..f0403447028 100644 --- a/nj2k/testData/newJ2k/issues/kt-836.kt +++ b/nj2k/testData/newJ2k/issues/kt-836.kt @@ -4,7 +4,7 @@ import java.io.Serializable class Language(protected var code: String) : Serializable { override fun toString(): String { - return code + return this.code } } From 133e39b78377eb2b4cebced9eb38bc67cc3037c0 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Wed, 23 Dec 2020 19:59:52 +0300 Subject: [PATCH 42/71] Advance snapshot version 1.4.255 -> 1.5.255 (KTI-421) #KTI-421 Fixed --- gradle.properties | 2 +- .../gradle/MultiplePluginVersionGradleImportingTestCase.kt | 2 +- .../kotlin/idea/configuration/ConfigureKotlinInProjectUtils.kt | 2 +- libraries/examples/browser-example-with-library/pom.xml | 2 +- libraries/examples/browser-example/pom.xml | 2 +- libraries/examples/js-example/pom.xml | 2 +- libraries/examples/kotlin-java-example/pom.xml | 2 +- libraries/examples/kotlin-js-library-example/pom.xml | 2 +- libraries/pom.xml | 2 +- libraries/tools/kotlin-annotation-processing-maven/pom.xml | 2 +- libraries/tools/kotlin-bom/pom.xml | 2 +- libraries/tools/kotlin-maven-allopen/pom.xml | 2 +- libraries/tools/kotlin-maven-noarg/pom.xml | 2 +- libraries/tools/kotlin-maven-plugin-test/pom.xml | 2 +- libraries/tools/kotlin-maven-plugin/pom.xml | 2 +- libraries/tools/kotlin-maven-sam-with-receiver/pom.xml | 2 +- libraries/tools/kotlin-maven-serialization/pom.xml | 2 +- libraries/tools/kotlin-osgi-bundle/pom.xml | 2 +- libraries/tools/maven-archetypes/kotlin-archetype-js/pom.xml | 2 +- libraries/tools/maven-archetypes/kotlin-archetype-jvm/pom.xml | 2 +- libraries/tools/maven-archetypes/pom.xml | 2 +- .../kotlin/fir/plugin/AbstractFirAllOpenDiagnosticTest.kt | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/gradle.properties b/gradle.properties index dbb2da7fa85..3c804e7e43a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ org.gradle.parallel=true org.gradle.caching=true cacheRedirectorEnabled=true -defaultSnapshotVersion=1.4.255-SNAPSHOT +defaultSnapshotVersion=1.5.255-SNAPSHOT kotlin.compiler.effectSystemEnabled=true kotlin.compiler.newInferenceEnabled=true diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/MultiplePluginVersionGradleImportingTestCase.kt b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/MultiplePluginVersionGradleImportingTestCase.kt index ebabb3c78a2..614d1bcd6fa 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/MultiplePluginVersionGradleImportingTestCase.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/MultiplePluginVersionGradleImportingTestCase.kt @@ -64,7 +64,7 @@ abstract class MultiplePluginVersionGradleImportingTestCase : GradleImportingTes ?.firstOrNull { it.contains("-original.jar") }?.replace( "kotlin-gradle-plugin-", "" - )?.replace("-original.jar", "") ?: "1.4.255-SNAPSHOT" + )?.replace("-original.jar", "") ?: "1.5.255-SNAPSHOT" @JvmStatic @Parameterized.Parameters(name = "{index}: Gradle-{0}, KotlinGradlePlugin-{1}") diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinInProjectUtils.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinInProjectUtils.kt index e3e14621492..06de3012bea 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinInProjectUtils.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/configuration/ConfigureKotlinInProjectUtils.kt @@ -49,7 +49,7 @@ private val LOG = Logger.getInstance("#org.jetbrains.kotlin.idea.configuration.C data class RepositoryDescription(val id: String, val name: String, val url: String, val bintrayUrl: String?, val isSnapshot: Boolean) -const val LAST_SNAPSHOT_VERSION = "1.4.255-SNAPSHOT" +const val LAST_SNAPSHOT_VERSION = "1.5.255-SNAPSHOT" val SNAPSHOT_REPOSITORY = RepositoryDescription( "sonatype.oss.snapshots", diff --git a/libraries/examples/browser-example-with-library/pom.xml b/libraries/examples/browser-example-with-library/pom.xml index d9658e48db4..9102ff63085 100644 --- a/libraries/examples/browser-example-with-library/pom.xml +++ b/libraries/examples/browser-example-with-library/pom.xml @@ -8,7 +8,7 @@ org.jetbrains.kotlin kotlin-project - 1.4.255-SNAPSHOT + 1.5.255-SNAPSHOT ../../pom.xml diff --git a/libraries/examples/browser-example/pom.xml b/libraries/examples/browser-example/pom.xml index 455b71074a5..ccb06af7f30 100644 --- a/libraries/examples/browser-example/pom.xml +++ b/libraries/examples/browser-example/pom.xml @@ -8,7 +8,7 @@ org.jetbrains.kotlin kotlin-project - 1.4.255-SNAPSHOT + 1.5.255-SNAPSHOT ../../pom.xml diff --git a/libraries/examples/js-example/pom.xml b/libraries/examples/js-example/pom.xml index 961111f5b12..13476016d18 100644 --- a/libraries/examples/js-example/pom.xml +++ b/libraries/examples/js-example/pom.xml @@ -8,7 +8,7 @@ org.jetbrains.kotlin kotlin-project - 1.4.255-SNAPSHOT + 1.5.255-SNAPSHOT ../../pom.xml diff --git a/libraries/examples/kotlin-java-example/pom.xml b/libraries/examples/kotlin-java-example/pom.xml index 10a0e5b8f31..faa2ede8e26 100644 --- a/libraries/examples/kotlin-java-example/pom.xml +++ b/libraries/examples/kotlin-java-example/pom.xml @@ -8,7 +8,7 @@ org.jetbrains.kotlin kotlin-project - 1.4.255-SNAPSHOT + 1.5.255-SNAPSHOT ../../pom.xml diff --git a/libraries/examples/kotlin-js-library-example/pom.xml b/libraries/examples/kotlin-js-library-example/pom.xml index cfef7a7122e..cc3cde713c7 100644 --- a/libraries/examples/kotlin-js-library-example/pom.xml +++ b/libraries/examples/kotlin-js-library-example/pom.xml @@ -8,7 +8,7 @@ org.jetbrains.kotlin kotlin-project - 1.4.255-SNAPSHOT + 1.5.255-SNAPSHOT ../../pom.xml diff --git a/libraries/pom.xml b/libraries/pom.xml index 542995e8cba..16602a6edf0 100644 --- a/libraries/pom.xml +++ b/libraries/pom.xml @@ -7,7 +7,7 @@ org.jetbrains.kotlin kotlin-project - 1.4.255-SNAPSHOT + 1.5.255-SNAPSHOT pom Kotlin diff --git a/libraries/tools/kotlin-annotation-processing-maven/pom.xml b/libraries/tools/kotlin-annotation-processing-maven/pom.xml index 1868beb593e..4c2d2a1b8ac 100755 --- a/libraries/tools/kotlin-annotation-processing-maven/pom.xml +++ b/libraries/tools/kotlin-annotation-processing-maven/pom.xml @@ -16,7 +16,7 @@ org.jetbrains.kotlin kotlin-project - 1.4.255-SNAPSHOT + 1.5.255-SNAPSHOT ../../pom.xml diff --git a/libraries/tools/kotlin-bom/pom.xml b/libraries/tools/kotlin-bom/pom.xml index 8b8900bd18f..7e1863f7e61 100644 --- a/libraries/tools/kotlin-bom/pom.xml +++ b/libraries/tools/kotlin-bom/pom.xml @@ -7,7 +7,7 @@ org.jetbrains.kotlin kotlin-bom - 1.4.255-SNAPSHOT + 1.5.255-SNAPSHOT pom diff --git a/libraries/tools/kotlin-maven-allopen/pom.xml b/libraries/tools/kotlin-maven-allopen/pom.xml index 17ae4b78e6d..53b98c078b1 100755 --- a/libraries/tools/kotlin-maven-allopen/pom.xml +++ b/libraries/tools/kotlin-maven-allopen/pom.xml @@ -14,7 +14,7 @@ org.jetbrains.kotlin kotlin-project - 1.4.255-SNAPSHOT + 1.5.255-SNAPSHOT ../../pom.xml diff --git a/libraries/tools/kotlin-maven-noarg/pom.xml b/libraries/tools/kotlin-maven-noarg/pom.xml index 0a90a533b46..b32c3ccfcd4 100755 --- a/libraries/tools/kotlin-maven-noarg/pom.xml +++ b/libraries/tools/kotlin-maven-noarg/pom.xml @@ -14,7 +14,7 @@ org.jetbrains.kotlin kotlin-project - 1.4.255-SNAPSHOT + 1.5.255-SNAPSHOT ../../pom.xml diff --git a/libraries/tools/kotlin-maven-plugin-test/pom.xml b/libraries/tools/kotlin-maven-plugin-test/pom.xml index 48fcc8b6fec..c584c0f5117 100644 --- a/libraries/tools/kotlin-maven-plugin-test/pom.xml +++ b/libraries/tools/kotlin-maven-plugin-test/pom.xml @@ -5,7 +5,7 @@ kotlin-project org.jetbrains.kotlin - 1.4.255-SNAPSHOT + 1.5.255-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/libraries/tools/kotlin-maven-plugin/pom.xml b/libraries/tools/kotlin-maven-plugin/pom.xml index 299ecf4d3a7..85e1d0be2a0 100644 --- a/libraries/tools/kotlin-maven-plugin/pom.xml +++ b/libraries/tools/kotlin-maven-plugin/pom.xml @@ -12,7 +12,7 @@ org.jetbrains.kotlin kotlin-project - 1.4.255-SNAPSHOT + 1.5.255-SNAPSHOT ../../pom.xml diff --git a/libraries/tools/kotlin-maven-sam-with-receiver/pom.xml b/libraries/tools/kotlin-maven-sam-with-receiver/pom.xml index 7210d0807e2..ac785b99ead 100755 --- a/libraries/tools/kotlin-maven-sam-with-receiver/pom.xml +++ b/libraries/tools/kotlin-maven-sam-with-receiver/pom.xml @@ -14,7 +14,7 @@ org.jetbrains.kotlin kotlin-project - 1.4.255-SNAPSHOT + 1.5.255-SNAPSHOT ../../pom.xml diff --git a/libraries/tools/kotlin-maven-serialization/pom.xml b/libraries/tools/kotlin-maven-serialization/pom.xml index 8acfef86320..4a8cbd297e9 100755 --- a/libraries/tools/kotlin-maven-serialization/pom.xml +++ b/libraries/tools/kotlin-maven-serialization/pom.xml @@ -14,7 +14,7 @@ org.jetbrains.kotlin kotlin-project - 1.4.255-SNAPSHOT + 1.5.255-SNAPSHOT ../../pom.xml diff --git a/libraries/tools/kotlin-osgi-bundle/pom.xml b/libraries/tools/kotlin-osgi-bundle/pom.xml index 57c9c2029f0..0bb52cae82a 100644 --- a/libraries/tools/kotlin-osgi-bundle/pom.xml +++ b/libraries/tools/kotlin-osgi-bundle/pom.xml @@ -5,7 +5,7 @@ kotlin-project org.jetbrains.kotlin - 1.4.255-SNAPSHOT + 1.5.255-SNAPSHOT ../../pom.xml 4.0.0 diff --git a/libraries/tools/maven-archetypes/kotlin-archetype-js/pom.xml b/libraries/tools/maven-archetypes/kotlin-archetype-js/pom.xml index 9232dd61fec..38c2b3eb277 100644 --- a/libraries/tools/maven-archetypes/kotlin-archetype-js/pom.xml +++ b/libraries/tools/maven-archetypes/kotlin-archetype-js/pom.xml @@ -6,7 +6,7 @@ org.jetbrains.kotlin kotlin-archetypes-parent - 1.4.255-SNAPSHOT + 1.5.255-SNAPSHOT ../pom.xml diff --git a/libraries/tools/maven-archetypes/kotlin-archetype-jvm/pom.xml b/libraries/tools/maven-archetypes/kotlin-archetype-jvm/pom.xml index 2adc81d4d19..a4720a26c0a 100644 --- a/libraries/tools/maven-archetypes/kotlin-archetype-jvm/pom.xml +++ b/libraries/tools/maven-archetypes/kotlin-archetype-jvm/pom.xml @@ -6,7 +6,7 @@ org.jetbrains.kotlin kotlin-archetypes-parent - 1.4.255-SNAPSHOT + 1.5.255-SNAPSHOT ../pom.xml diff --git a/libraries/tools/maven-archetypes/pom.xml b/libraries/tools/maven-archetypes/pom.xml index 97d0d361f3f..e701f3686e6 100644 --- a/libraries/tools/maven-archetypes/pom.xml +++ b/libraries/tools/maven-archetypes/pom.xml @@ -6,7 +6,7 @@ org.jetbrains.kotlin kotlin-project - 1.4.255-SNAPSHOT + 1.5.255-SNAPSHOT ../../pom.xml diff --git a/plugins/fir/fir-plugin-prototype/tests/org/jetbrains/kotlin/fir/plugin/AbstractFirAllOpenDiagnosticTest.kt b/plugins/fir/fir-plugin-prototype/tests/org/jetbrains/kotlin/fir/plugin/AbstractFirAllOpenDiagnosticTest.kt index ee7451086d3..b2a1793f90a 100644 --- a/plugins/fir/fir-plugin-prototype/tests/org/jetbrains/kotlin/fir/plugin/AbstractFirAllOpenDiagnosticTest.kt +++ b/plugins/fir/fir-plugin-prototype/tests/org/jetbrains/kotlin/fir/plugin/AbstractFirAllOpenDiagnosticTest.kt @@ -21,7 +21,7 @@ abstract class AbstractFirAllOpenDiagnosticTest : AbstractFirDiagnosticsTest() { override fun updateConfiguration(configuration: CompilerConfiguration) { super.updateConfiguration(configuration) - val jar = File("plugins/fir/fir-plugin-prototype/plugin-annotations/build/libs/plugin-annotations-1.4.255-SNAPSHOT.jar") + val jar = File("plugins/fir/fir-plugin-prototype/plugin-annotations/build/libs/plugin-annotations-1.5.255-SNAPSHOT.jar") if (!jar.exists()) { throw AssertionError("Jar with annotations does not exist. Please run :plugins:fir:fir-plugin-prototype:plugin-annotations:jar") } From 1d40ed39d03905009ce2bd2eb417b13b9c33f426 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Thu, 31 Dec 2020 19:20:29 +0300 Subject: [PATCH 43/71] KotlinVersion: Advance snapshot version 1.4.255 -> 1.5.255 KTI-421 --- libraries/stdlib/src/kotlin/util/KotlinVersion.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/stdlib/src/kotlin/util/KotlinVersion.kt b/libraries/stdlib/src/kotlin/util/KotlinVersion.kt index 2395a01198b..320eaf67373 100644 --- a/libraries/stdlib/src/kotlin/util/KotlinVersion.kt +++ b/libraries/stdlib/src/kotlin/util/KotlinVersion.kt @@ -79,5 +79,5 @@ public class KotlinVersion(val major: Int, val minor: Int, val patch: Int) : Com // this class is ignored during classpath normalization when considering whether to recompile dependencies in Kotlin build private object KotlinVersionCurrentValue { @kotlin.jvm.JvmStatic - fun get(): KotlinVersion = KotlinVersion(1, 4, 255) // value is written here automatically during build + fun get(): KotlinVersion = KotlinVersion(1, 5, 255) // value is written here automatically during build } \ No newline at end of file From ae6f10df3beaac1e578c7860cc492107011eab19 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Thu, 24 Dec 2020 02:04:09 +0300 Subject: [PATCH 44/71] Duration: reject NaN duration values (KT-44168) --- libraries/stdlib/src/kotlin/time/Duration.kt | 99 +++++++++++++++----- libraries/stdlib/test/time/DurationTest.kt | 22 ++++- 2 files changed, 96 insertions(+), 25 deletions(-) diff --git a/libraries/stdlib/src/kotlin/time/Duration.kt b/libraries/stdlib/src/kotlin/time/Duration.kt index a1aef5ac8dc..a8bbdccd708 100644 --- a/libraries/stdlib/src/kotlin/time/Duration.kt +++ b/libraries/stdlib/src/kotlin/time/Duration.kt @@ -27,13 +27,10 @@ private inline val storageUnit get() = DurationUnit.NANOSECONDS */ @SinceKotlin("1.3") @ExperimentalTime -@Suppress("NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS") public inline class Duration internal constructor(internal val value: Double) : Comparable { -// TODO: backend fails on init block, wait for KT-28055 - -// init { -// require(_value.isNaN().not()) -// } + init { + require(!value.isNaN()) { "Duration value cannot be NaN." } + } companion object { /** The duration equal to exactly 0 seconds. */ @@ -52,22 +49,46 @@ public inline class Duration internal constructor(internal val value: Double) : /** Returns the negative of this value. */ public operator fun unaryMinus(): Duration = Duration(-value) - /** Returns a duration whose value is the sum of this and [other] duration values. */ + /** + * Returns a duration whose value is the sum of this and [other] duration values. + * + * @throws IllegalArgumentException if the operation results in a `NaN` value. + */ public operator fun plus(other: Duration): Duration = Duration(value + other.value) - /** Returns a duration whose value is the difference between this and [other] duration values. */ + /** + * Returns a duration whose value is the difference between this and [other] duration values. + * + * @throws IllegalArgumentException if the operation results in a `NaN` value. + */ public operator fun minus(other: Duration): Duration = Duration(value - other.value) - /** Returns a duration whose value is this duration value multiplied by the given [scale] number. */ + /** + * Returns a duration whose value is this duration value multiplied by the given [scale] number. + * + * @throws IllegalArgumentException if the operation results in a `NaN` value. + */ public operator fun times(scale: Int): Duration = Duration(value * scale) - /** Returns a duration whose value is this duration value multiplied by the given [scale] number. */ + /** + * Returns a duration whose value is this duration value multiplied by the given [scale] number. + * + * @throws IllegalArgumentException if the operation results in a `NaN` value. + */ public operator fun times(scale: Double): Duration = Duration(value * scale) - /** Returns a duration whose value is this duration value divided by the given [scale] number. */ + /** + * Returns a duration whose value is this duration value divided by the given [scale] number. + * + * @throws IllegalArgumentException if the operation results in a `NaN` value. + */ public operator fun div(scale: Int): Duration = Duration(value / scale) - /** Returns a duration whose value is this duration value divided by the given [scale] number. */ + /** + * Returns a duration whose value is this duration value divided by the given [scale] number. + * + * @throws IllegalArgumentException if the operation results in a `NaN` value. + */ public operator fun div(scale: Double): Duration = Duration(value / scale) /** Returns a number that is the ratio of this and [other] duration values. */ @@ -356,7 +377,11 @@ public fun Int.toDuration(unit: DurationUnit): Duration = toDouble().toDuration( @ExperimentalTime public fun Long.toDuration(unit: DurationUnit): Duration = toDouble().toDuration(unit) -/** Returns a [Duration] equal to this [Double] number of the specified [unit]. */ +/** + * Returns a [Duration] equal to this [Double] number of the specified [unit]. + * + * @throws IllegalArgumentException if this `Double` value is `NaN`. + */ @SinceKotlin("1.3") @ExperimentalTime public fun Double.toDuration(unit: DurationUnit): Duration = Duration(convertDurationUnit(this, unit, storageUnit)) @@ -374,7 +399,11 @@ public val Int.nanoseconds get() = toDuration(DurationUnit.NANOSECONDS) @ExperimentalTime public val Long.nanoseconds get() = toDuration(DurationUnit.NANOSECONDS) -/** Returns a [Duration] equal to this [Double] number of nanoseconds. */ +/** + * Returns a [Duration] equal to this [Double] number of nanoseconds. + * + * @throws IllegalArgumentException if this `Double` value is `NaN`. + */ @SinceKotlin("1.3") @ExperimentalTime public val Double.nanoseconds get() = toDuration(DurationUnit.NANOSECONDS) @@ -389,7 +418,11 @@ public val Int.microseconds get() = toDuration(DurationUnit.MICROSECONDS) @ExperimentalTime public val Long.microseconds get() = toDuration(DurationUnit.MICROSECONDS) -/** Returns a [Duration] equal to this [Double] number of microseconds. */ +/** + * Returns a [Duration] equal to this [Double] number of microseconds. + * + * @throws IllegalArgumentException if this `Double` value is `NaN`. + */ @SinceKotlin("1.3") @ExperimentalTime public val Double.microseconds get() = toDuration(DurationUnit.MICROSECONDS) @@ -404,7 +437,11 @@ public val Int.milliseconds get() = toDuration(DurationUnit.MILLISECONDS) @ExperimentalTime public val Long.milliseconds get() = toDuration(DurationUnit.MILLISECONDS) -/** Returns a [Duration] equal to this [Double] number of milliseconds. */ +/** + * Returns a [Duration] equal to this [Double] number of milliseconds. + * + * @throws IllegalArgumentException if this `Double` value is `NaN`. + */ @SinceKotlin("1.3") @ExperimentalTime public val Double.milliseconds get() = toDuration(DurationUnit.MILLISECONDS) @@ -419,7 +456,11 @@ public val Int.seconds get() = toDuration(DurationUnit.SECONDS) @ExperimentalTime public val Long.seconds get() = toDuration(DurationUnit.SECONDS) -/** Returns a [Duration] equal to this [Double] number of seconds. */ +/** + * Returns a [Duration] equal to this [Double] number of seconds. + * + * @throws IllegalArgumentException if this `Double` value is `NaN`. + */ @SinceKotlin("1.3") @ExperimentalTime public val Double.seconds get() = toDuration(DurationUnit.SECONDS) @@ -434,7 +475,11 @@ public val Int.minutes get() = toDuration(DurationUnit.MINUTES) @ExperimentalTime public val Long.minutes get() = toDuration(DurationUnit.MINUTES) -/** Returns a [Duration] equal to this [Double] number of minutes. */ +/** + * Returns a [Duration] equal to this [Double] number of minutes. + * + * @throws IllegalArgumentException if this `Double` value is `NaN`. + */ @SinceKotlin("1.3") @ExperimentalTime public val Double.minutes get() = toDuration(DurationUnit.MINUTES) @@ -449,7 +494,11 @@ public val Int.hours get() = toDuration(DurationUnit.HOURS) @ExperimentalTime public val Long.hours get() = toDuration(DurationUnit.HOURS) -/** Returns a [Duration] equal to this [Double] number of hours. */ +/** + * Returns a [Duration] equal to this [Double] number of hours. + * + * @throws IllegalArgumentException if this `Double` value is `NaN`. + */ @SinceKotlin("1.3") @ExperimentalTime public val Double.hours get() = toDuration(DurationUnit.HOURS) @@ -464,7 +513,11 @@ public val Int.days get() = toDuration(DurationUnit.DAYS) @ExperimentalTime public val Long.days get() = toDuration(DurationUnit.DAYS) -/** Returns a [Duration] equal to this [Double] number of days. */ +/** + * Returns a [Duration] equal to this [Double] number of days. + * + * @throws IllegalArgumentException if this `Double` value is `NaN`. + */ @SinceKotlin("1.3") @ExperimentalTime public val Double.days get() = toDuration(DurationUnit.DAYS) @@ -476,7 +529,11 @@ public val Double.days get() = toDuration(DurationUnit.DAYS) @kotlin.internal.InlineOnly public inline operator fun Int.times(duration: Duration): Duration = duration * this -/** Returns a duration whose value is the specified [duration] value multiplied by this number. */ +/** + * Returns a duration whose value is the specified [duration] value multiplied by this number. + * + * @throws IllegalArgumentException if the operation results in a `NaN` value. + */ @SinceKotlin("1.3") @ExperimentalTime @kotlin.internal.InlineOnly diff --git a/libraries/stdlib/test/time/DurationTest.kt b/libraries/stdlib/test/time/DurationTest.kt index 7edbc449226..49a4b81f59b 100644 --- a/libraries/stdlib/test/time/DurationTest.kt +++ b/libraries/stdlib/test/time/DurationTest.kt @@ -34,9 +34,7 @@ class DurationTest { assertEquals(expected, value.toDouble().toDuration(unit).value) } - todo { - assertFails { Double.NaN.toDuration(DurationUnit.SECONDS) } - } + assertFailsWith { Double.NaN.toDuration(DurationUnit.SECONDS) } } @Test @@ -226,13 +224,16 @@ class DurationTest { assertEquals(1.5.hours, 1.hours + 30.minutes) assertEquals(0.5.days, 6.hours + 360.minutes) assertEquals(0.5.seconds, 200.milliseconds + 300_000.microseconds) + + assertFailsWith { Duration.INFINITE + (-Duration.INFINITE) } } @Test fun subtraction() { assertEquals(10.hours, 0.5.days - 120.minutes) assertEquals(850.milliseconds, 1.seconds - 150.milliseconds) - // TODO decide on INFINITE - INFINITE + + assertFailsWith { Duration.INFINITE - Duration.INFINITE } } @Test @@ -244,6 +245,12 @@ class DurationTest { assertEquals(1.days, 2 * 12.hours) assertEquals(12.5.hours, 12.5 * 60.minutes) assertEquals(1.microseconds, 50 * 20.nanoseconds) + + assertEquals(Duration.ZERO, 0 * 1.hours) + assertEquals(Duration.ZERO, 1.seconds * 0.0) + + assertFailsWith { Duration.INFINITE * 0 } + assertFailsWith { 0 * Duration.INFINITE } } @Test @@ -251,6 +258,11 @@ class DurationTest { assertEquals(12.hours, 1.days / 2) assertEquals(60.minutes, 1.days / 24.0) assertEquals(20.seconds, 2.minutes / 6) + + assertEquals(Duration.INFINITE, 1.seconds / 0.0) + assertEquals(-Duration.INFINITE, -1.seconds / 0.0) + assertFailsWith { Duration.INFINITE / Double.POSITIVE_INFINITY } + assertFailsWith { Duration.ZERO / 0 } } @Test @@ -258,6 +270,8 @@ class DurationTest { assertEquals(24.0, 1.days / 1.hours) assertEquals(0.1, 9.minutes / 1.5.hours) assertEquals(50.0, 1.microseconds / 20.nanoseconds) + + assertTrue((Duration.INFINITE / Duration.INFINITE).isNaN()) } @Test From 3c37bbaf6452058fae03225b2661170407fccd21 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Thu, 24 Dec 2020 04:07:02 +0300 Subject: [PATCH 45/71] Duration: normalize to avoid negative zeroes (KT-44168) The current comparison method of inline classes makes durations of positive and negative zeroes non-equal. To avoid that, normalize the duration value upon construction preventing negative zero being stored. --- libraries/stdlib/src/kotlin/time/Duration.kt | 15 +++++++----- libraries/stdlib/test/time/DurationTest.kt | 25 +++++++++++++++++++- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/libraries/stdlib/src/kotlin/time/Duration.kt b/libraries/stdlib/src/kotlin/time/Duration.kt index a8bbdccd708..da0c52f7ea4 100644 --- a/libraries/stdlib/src/kotlin/time/Duration.kt +++ b/libraries/stdlib/src/kotlin/time/Duration.kt @@ -47,7 +47,7 @@ public inline class Duration internal constructor(internal val value: Double) : // arithmetic operators /** Returns the negative of this value. */ - public operator fun unaryMinus(): Duration = Duration(-value) + public operator fun unaryMinus(): Duration = Duration((-value).normalizeZero()) /** * Returns a duration whose value is the sum of this and [other] duration values. @@ -68,28 +68,28 @@ public inline class Duration internal constructor(internal val value: Double) : * * @throws IllegalArgumentException if the operation results in a `NaN` value. */ - public operator fun times(scale: Int): Duration = Duration(value * scale) + public operator fun times(scale: Int): Duration = Duration((value * scale).normalizeZero()) /** * Returns a duration whose value is this duration value multiplied by the given [scale] number. * * @throws IllegalArgumentException if the operation results in a `NaN` value. */ - public operator fun times(scale: Double): Duration = Duration(value * scale) + public operator fun times(scale: Double): Duration = Duration((value * scale).normalizeZero()) /** * Returns a duration whose value is this duration value divided by the given [scale] number. * * @throws IllegalArgumentException if the operation results in a `NaN` value. */ - public operator fun div(scale: Int): Duration = Duration(value / scale) + public operator fun div(scale: Int): Duration = Duration((value / scale).normalizeZero()) /** * Returns a duration whose value is this duration value divided by the given [scale] number. * * @throws IllegalArgumentException if the operation results in a `NaN` value. */ - public operator fun div(scale: Double): Duration = Duration(value / scale) + public operator fun div(scale: Double): Duration = Duration((value / scale).normalizeZero()) /** Returns a number that is the ratio of this and [other] duration values. */ public operator fun div(other: Duration): Double = this.value / other.value @@ -384,7 +384,7 @@ public fun Long.toDuration(unit: DurationUnit): Duration = toDouble().toDuration */ @SinceKotlin("1.3") @ExperimentalTime -public fun Double.toDuration(unit: DurationUnit): Duration = Duration(convertDurationUnit(this, unit, storageUnit)) +public fun Double.toDuration(unit: DurationUnit): Duration = Duration(convertDurationUnit(this, unit, storageUnit).normalizeZero()) // constructing from number of units // extension properties @@ -540,6 +540,9 @@ public inline operator fun Int.times(duration: Duration): Duration = duration * public inline operator fun Double.times(duration: Duration): Duration = duration * this +@kotlin.internal.InlineOnly +private inline fun Double.normalizeZero(): Double = this + 0.0 + internal expect fun formatToExactDecimals(value: Double, decimals: Int): String internal expect fun formatUpToDecimals(value: Double, decimals: Int): String internal expect fun formatScientific(value: Double): String \ No newline at end of file diff --git a/libraries/stdlib/test/time/DurationTest.kt b/libraries/stdlib/test/time/DurationTest.kt index 49a4b81f59b..de81bc88292 100644 --- a/libraries/stdlib/test/time/DurationTest.kt +++ b/libraries/stdlib/test/time/DurationTest.kt @@ -7,7 +7,6 @@ package test.time import test.numbers.assertAlmostEquals -import test.* import kotlin.native.concurrent.SharedImmutable import kotlin.test.* import kotlin.time.* @@ -218,6 +217,30 @@ class DurationTest { assertEquals(zero, zero.absoluteValue) } + @Test + fun negativeZero() { + fun equivalentToZero(value: Duration) { + assertEquals(Duration.ZERO, value) + assertEquals(Duration.ZERO, value.absoluteValue) + assertEquals(value, value.absoluteValue) + assertEquals(value, value.absoluteValue) + assertFalse(value.isNegative()) + assertFalse(value.isPositive()) + assertEquals(Duration.ZERO.toString(), value.toString()) + assertEquals(Duration.ZERO.toIsoString(), value.toIsoString()) + assertEquals(Duration.ZERO.inSeconds, value.inSeconds) + assertEquals(0, Duration.ZERO.compareTo(value)) + assertEquals(0, Duration.ZERO.inNanoseconds.compareTo(value.inNanoseconds)) + } + equivalentToZero((-0.0).seconds) + equivalentToZero((-0.0).toDuration(DurationUnit.DAYS)) + equivalentToZero(-Duration.ZERO) + equivalentToZero((-1).seconds / Double.POSITIVE_INFINITY) + equivalentToZero(0.seconds / -1) + equivalentToZero((-1).seconds * 0.0) + equivalentToZero(0.seconds * -1) + } + @Test fun addition() { From ac325f6111773d47feb2d3bfa6f687a093748897 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 30 Dec 2020 20:31:04 +0100 Subject: [PATCH 46/71] IR: add toString for IrBased descriptors To help in diagnosing issues like KT-44160. --- .../kotlin/ir/descriptors/IrBasedDescriptors.kt | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBasedDescriptors.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBasedDescriptors.kt index c85caf34316..121ca21ad57 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBasedDescriptors.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBasedDescriptors.kt @@ -89,16 +89,15 @@ abstract class IrBasedDeclarationDescriptor(val owner: T) : D } } - override fun getContainingDeclaration() = getContainingDeclaration(owner) + override fun getContainingDeclaration(): DeclarationDescriptor = + getContainingDeclaration(owner) - override fun equals(other: Any?): Boolean { - if (other !is IrBasedDeclarationDescriptor<*>) return false - return owner == other.owner - } + override fun equals(other: Any?): Boolean = + other is IrBasedDeclarationDescriptor<*> && owner == other.owner - override fun hashCode(): Int { - return owner.hashCode() - } + override fun hashCode(): Int = owner.hashCode() + + override fun toString(): String = javaClass.simpleName + ": " + owner.render() } fun IrDeclaration.toIrBasedDescriptor(): DeclarationDescriptor = when (this) { From bf3f6594d59144037b5e1f26e1b6f14170964e4f Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 30 Dec 2020 20:32:37 +0100 Subject: [PATCH 47/71] IR: do not lose $default function annotations when generating calls Losing an annotation like `JvmName` resulted in the incorrect bytecode generated in the JVM IR backend. #KT-44160 Fixed --- ...FirBlackBoxInlineCodegenTestGenerated.java | 18 +++++++++++++++ .../lower/DefaultArgumentStubGenerator.kt | 22 +++++++++---------- .../codegen/boxInline/jvmName/simple.kt | 11 ++++++++++ .../BlackBoxInlineCodegenTestGenerated.java | 18 +++++++++++++++ ...otlinAgainstInlineKotlinTestGenerated.java | 18 +++++++++++++++ .../IrBlackBoxInlineCodegenTestGenerated.java | 18 +++++++++++++++ ...otlinAgainstInlineKotlinTestGenerated.java | 18 +++++++++++++++ ...JvmIrAgainstOldBoxInlineTestGenerated.java | 18 +++++++++++++++ ...JvmOldAgainstIrBoxInlineTestGenerated.java | 18 +++++++++++++++ .../IrJsCodegenInlineES6TestGenerated.java | 13 +++++++++++ .../IrJsCodegenInlineTestGenerated.java | 13 +++++++++++ .../JsCodegenInlineTestGenerated.java | 13 +++++++++++ 12 files changed, 187 insertions(+), 11 deletions(-) create mode 100644 compiler/testData/codegen/boxInline/jvmName/simple.kt diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxInlineCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxInlineCodegenTestGenerated.java index 2ad37bab4d2..f3cef85278f 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxInlineCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxInlineCodegenTestGenerated.java @@ -2133,6 +2133,24 @@ public class FirBlackBoxInlineCodegenTestGenerated extends AbstractFirBlackBoxIn } } + @TestMetadata("compiler/testData/codegen/boxInline/jvmName") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class JvmName extends AbstractFirBlackBoxInlineCodegenTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTestWithCustomIgnoreDirective(this::doTest, TargetBackend.JVM_IR, testDataFilePath, "// IGNORE_BACKEND_FIR: "); + } + + public void testAllFilesPresentInJvmName() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxInline/jvmName"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); + } + + @TestMetadata("simple.kt") + public void testSimple() throws Exception { + runTest("compiler/testData/codegen/boxInline/jvmName/simple.kt"); + } + } + @TestMetadata("compiler/testData/codegen/boxInline/jvmPackageName") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/DefaultArgumentStubGenerator.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/DefaultArgumentStubGenerator.kt index 52d2af0ce25..3596e83b2dd 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/DefaultArgumentStubGenerator.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/DefaultArgumentStubGenerator.kt @@ -50,7 +50,7 @@ open class DefaultArgumentStubGenerator( return null } - open protected fun IrFunction.resolveAnnotations() = copyAnnotations() + protected open fun IrFunction.resolveAnnotations(): List = copyAnnotations() private fun lower(irFunction: IrFunction): List? { val newIrFunction = @@ -380,16 +380,16 @@ open class DefaultParameterInjector( // in an interface does not leave an abstract method after being moved to DefaultImpls (see InterfaceLowering). // Calling the fake override on an implementation of that interface would then result in a call to a method // that does not actually exist as DefaultImpls is not part of the inheritance hierarchy. - val stubFunction = declaration.findBaseFunctionWithDefaultArguments(skipInline, skipExternalMethods) - ?.generateDefaultsFunction( - context, - skipInline, - skipExternalMethods, - forceSetOverrideSymbols, - defaultArgumentStubVisibility(declaration), - useConstructorMarker(declaration), - emptyList() - ) ?: return null + val baseFunction = declaration.findBaseFunctionWithDefaultArguments(skipInline, skipExternalMethods) + val stubFunction = baseFunction?.generateDefaultsFunction( + context, + skipInline, + skipExternalMethods, + forceSetOverrideSymbols, + defaultArgumentStubVisibility(declaration), + useConstructorMarker(declaration), + baseFunction.copyAnnotations() + ) ?: return null log { "$declaration -> $stubFunction" } diff --git a/compiler/testData/codegen/boxInline/jvmName/simple.kt b/compiler/testData/codegen/boxInline/jvmName/simple.kt new file mode 100644 index 00000000000..a733c1d43b6 --- /dev/null +++ b/compiler/testData/codegen/boxInline/jvmName/simple.kt @@ -0,0 +1,11 @@ +// TARGET_BACKEND: JVM +// WITH_RUNTIME +// FILE: 1.kt +package test + +@JvmName("jvmName") +inline fun f(s: String = "OK"): String = s + +// FILE: 2.kt + +fun box(): String = test.f() diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java index 51ef18238d7..ca73d1aca88 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java @@ -2133,6 +2133,24 @@ public class BlackBoxInlineCodegenTestGenerated extends AbstractBlackBoxInlineCo } } + @TestMetadata("compiler/testData/codegen/boxInline/jvmName") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class JvmName extends AbstractBlackBoxInlineCodegenTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath); + } + + public void testAllFilesPresentInJvmName() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxInline/jvmName"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); + } + + @TestMetadata("simple.kt") + public void testSimple() throws Exception { + runTest("compiler/testData/codegen/boxInline/jvmName/simple.kt"); + } + } + @TestMetadata("compiler/testData/codegen/boxInline/jvmPackageName") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java index 35ae32f1b0f..424b839353c 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java @@ -2133,6 +2133,24 @@ public class CompileKotlinAgainstInlineKotlinTestGenerated extends AbstractCompi } } + @TestMetadata("compiler/testData/codegen/boxInline/jvmName") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class JvmName extends AbstractCompileKotlinAgainstInlineKotlinTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTestWithCustomIgnoreDirective(this::doTest, TargetBackend.JVM, testDataFilePath, "// IGNORE_BACKEND_MULTI_MODULE: "); + } + + public void testAllFilesPresentInJvmName() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxInline/jvmName"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); + } + + @TestMetadata("simple.kt") + public void testSimple() throws Exception { + runTest("compiler/testData/codegen/boxInline/jvmName/simple.kt"); + } + } + @TestMetadata("compiler/testData/codegen/boxInline/jvmPackageName") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxInlineCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxInlineCodegenTestGenerated.java index 9b79dae0711..e701321b6d7 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxInlineCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxInlineCodegenTestGenerated.java @@ -2133,6 +2133,24 @@ public class IrBlackBoxInlineCodegenTestGenerated extends AbstractIrBlackBoxInli } } + @TestMetadata("compiler/testData/codegen/boxInline/jvmName") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class JvmName extends AbstractIrBlackBoxInlineCodegenTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM_IR, testDataFilePath); + } + + public void testAllFilesPresentInJvmName() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxInline/jvmName"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); + } + + @TestMetadata("simple.kt") + public void testSimple() throws Exception { + runTest("compiler/testData/codegen/boxInline/jvmName/simple.kt"); + } + } + @TestMetadata("compiler/testData/codegen/boxInline/jvmPackageName") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCompileKotlinAgainstInlineKotlinTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCompileKotlinAgainstInlineKotlinTestGenerated.java index 1f8b967cf1c..973718fcb67 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCompileKotlinAgainstInlineKotlinTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCompileKotlinAgainstInlineKotlinTestGenerated.java @@ -2133,6 +2133,24 @@ public class IrCompileKotlinAgainstInlineKotlinTestGenerated extends AbstractIrC } } + @TestMetadata("compiler/testData/codegen/boxInline/jvmName") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class JvmName extends AbstractIrCompileKotlinAgainstInlineKotlinTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTestWithCustomIgnoreDirective(this::doTest, TargetBackend.JVM_IR, testDataFilePath, "// IGNORE_BACKEND_MULTI_MODULE: "); + } + + public void testAllFilesPresentInJvmName() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxInline/jvmName"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); + } + + @TestMetadata("simple.kt") + public void testSimple() throws Exception { + runTest("compiler/testData/codegen/boxInline/jvmName/simple.kt"); + } + } + @TestMetadata("compiler/testData/codegen/boxInline/jvmPackageName") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmIrAgainstOldBoxInlineTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmIrAgainstOldBoxInlineTestGenerated.java index 90ff76677be..45c45e4eee4 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmIrAgainstOldBoxInlineTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmIrAgainstOldBoxInlineTestGenerated.java @@ -2133,6 +2133,24 @@ public class JvmIrAgainstOldBoxInlineTestGenerated extends AbstractJvmIrAgainstO } } + @TestMetadata("compiler/testData/codegen/boxInline/jvmName") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class JvmName extends AbstractJvmIrAgainstOldBoxInlineTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTestWithCustomIgnoreDirective(this::doTest, TargetBackend.JVM_MULTI_MODULE_IR_AGAINST_OLD, testDataFilePath, "// IGNORE_BACKEND_MULTI_MODULE: "); + } + + public void testAllFilesPresentInJvmName() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxInline/jvmName"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_MULTI_MODULE_IR_AGAINST_OLD, true); + } + + @TestMetadata("simple.kt") + public void testSimple() throws Exception { + runTest("compiler/testData/codegen/boxInline/jvmName/simple.kt"); + } + } + @TestMetadata("compiler/testData/codegen/boxInline/jvmPackageName") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmOldAgainstIrBoxInlineTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmOldAgainstIrBoxInlineTestGenerated.java index 6eeb161ffee..834d0739001 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmOldAgainstIrBoxInlineTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmOldAgainstIrBoxInlineTestGenerated.java @@ -2133,6 +2133,24 @@ public class JvmOldAgainstIrBoxInlineTestGenerated extends AbstractJvmOldAgainst } } + @TestMetadata("compiler/testData/codegen/boxInline/jvmName") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class JvmName extends AbstractJvmOldAgainstIrBoxInlineTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTestWithCustomIgnoreDirective(this::doTest, TargetBackend.JVM_MULTI_MODULE_OLD_AGAINST_IR, testDataFilePath, "// IGNORE_BACKEND_MULTI_MODULE: "); + } + + public void testAllFilesPresentInJvmName() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxInline/jvmName"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_MULTI_MODULE_OLD_AGAINST_IR, true); + } + + @TestMetadata("simple.kt") + public void testSimple() throws Exception { + runTest("compiler/testData/codegen/boxInline/jvmName/simple.kt"); + } + } + @TestMetadata("compiler/testData/codegen/boxInline/jvmPackageName") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenInlineES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenInlineES6TestGenerated.java index 1c01c15ab69..d1510db06e2 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenInlineES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenInlineES6TestGenerated.java @@ -1913,6 +1913,19 @@ public class IrJsCodegenInlineES6TestGenerated extends AbstractIrJsCodegenInline } } + @TestMetadata("compiler/testData/codegen/boxInline/jvmName") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class JvmName extends AbstractIrJsCodegenInlineES6Test { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest0(this::doTest, TargetBackend.JS_IR_ES6, testDataFilePath); + } + + public void testAllFilesPresentInJvmName() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxInline/jvmName"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR_ES6, true); + } + } + @TestMetadata("compiler/testData/codegen/boxInline/jvmPackageName") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenInlineTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenInlineTestGenerated.java index d3cfecc60d6..de2035eace0 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenInlineTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenInlineTestGenerated.java @@ -1913,6 +1913,19 @@ public class IrJsCodegenInlineTestGenerated extends AbstractIrJsCodegenInlineTes } } + @TestMetadata("compiler/testData/codegen/boxInline/jvmName") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class JvmName extends AbstractIrJsCodegenInlineTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest0(this::doTest, TargetBackend.JS_IR, testDataFilePath); + } + + public void testAllFilesPresentInJvmName() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxInline/jvmName"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR, true); + } + } + @TestMetadata("compiler/testData/codegen/boxInline/jvmPackageName") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenInlineTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenInlineTestGenerated.java index a3a79974890..bcc68863e7d 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenInlineTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenInlineTestGenerated.java @@ -1913,6 +1913,19 @@ public class JsCodegenInlineTestGenerated extends AbstractJsCodegenInlineTest { } } + @TestMetadata("compiler/testData/codegen/boxInline/jvmName") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class JvmName extends AbstractJsCodegenInlineTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest0(this::doTest, TargetBackend.JS, testDataFilePath); + } + + public void testAllFilesPresentInJvmName() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxInline/jvmName"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS, true); + } + } + @TestMetadata("compiler/testData/codegen/boxInline/jvmPackageName") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) From 96de9144dec5be123c40e2d7d4d61d0628fcce2c Mon Sep 17 00:00:00 2001 From: Shagen Ogandzhanian Date: Thu, 31 Dec 2020 20:21:21 +0100 Subject: [PATCH 48/71] [JS IR] Generate stub for exported functions with default params see https://youtrack.jetbrains.com/issue/KT-43407 --- .../ir/backend/js/DeclarationOrigins.kt | 1 + .../kotlin/ir/backend/js/JsLoweringPhases.kt | 10 +- .../backend/js/export/ExportModelGenerator.kt | 4 +- .../js/lower/ExportedDefaultParameterStub.kt | 136 ++++++++++++++++++ .../js/lower/JsErrorExpressionLowering.kt | 2 +- .../kotlin/ir/backend/js/utils/misc.kt | 10 +- .../semantics/IrBoxJsES6TestGenerated.java | 5 + .../ir/semantics/IrBoxJsTestGenerated.java | 5 + .../js/test/semantics/BoxJsTestGenerated.java | 5 + .../testData/box/jsExport/dataClass.js | 7 +- .../testData/box/jsExport/dataClass.kt | 32 ++++- .../box/jsExport/exportedDefaultStub.js | 33 +++++ .../box/jsExport/exportedDefaultStub.kt | 106 ++++++++++++++ .../box/native/callbackOptionalParameter.kt | 1 - 14 files changed, 346 insertions(+), 11 deletions(-) create mode 100644 compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/ExportedDefaultParameterStub.kt create mode 100644 js/js.translator/testData/box/jsExport/exportedDefaultStub.js create mode 100644 js/js.translator/testData/box/jsExport/exportedDefaultStub.kt diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/DeclarationOrigins.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/DeclarationOrigins.kt index 3f0197413e7..9c4114ee4b0 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/DeclarationOrigins.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/DeclarationOrigins.kt @@ -15,4 +15,5 @@ object JsLoweredDeclarationOrigin : IrDeclarationOrigin { object JS_CLOSURE_BOX_CLASS_DECLARATION : IrDeclarationOriginImpl("JS_CLOSURE_BOX_CLASS_DECLARATION") object BRIDGE_TO_EXTERNAL_FUNCTION : IrDeclarationOriginImpl("BRIDGE_TO_EXTERNAL_FUNCTION") object OBJECT_GET_INSTANCE_FUNCTION : IrDeclarationOriginImpl("OBJECT_GET_INSTANCE_FUNCTION") + object JS_SHADOWED_EXPORT : IrDeclarationOriginImpl("JS_SHADOWED_EXPORT") } diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt index a237d12f282..ab113f67d14 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt @@ -485,6 +485,13 @@ private val defaultParameterCleanerPhase = makeDeclarationTransformerPhase( description = "Clean default parameters up" ) + +private val exportedDefaultParameterStubPhase = makeDeclarationTransformerPhase( + ::ExportedDefaultParameterStub, + name = "ExportedDefaultParameterStub", + description = "Generates default stub for exported entity and renames the non-default counterpart" +) + private val jsDefaultCallbackGeneratorPhase = makeBodyLoweringPhase( ::JsDefaultCallbackGenerator, name = "JsDefaultCallbackGenerator", @@ -701,7 +708,7 @@ private val cleanupLoweringPhase = makeBodyLoweringPhase( description = "Clean up IR before codegen" ) -val loweringList = listOf( +private val loweringList = listOf( scriptRemoveReceiverLowering, validateIrBeforeLowering, expectDeclarationsRemovingPhase, @@ -759,6 +766,7 @@ val loweringList = listOf( foldConstantLoweringPhase, privateMembersLoweringPhase, privateMemberUsagesLoweringPhase, + exportedDefaultParameterStubPhase, defaultArgumentStubGeneratorPhase, defaultArgumentPatchOverridesPhase, defaultParameterInjectorPhase, diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/export/ExportModelGenerator.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/export/ExportModelGenerator.kt index dd5b3acf711..ef165e3d569 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/export/ExportModelGenerator.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/export/ExportModelGenerator.kt @@ -326,8 +326,9 @@ class ExportModelGenerator(val context: JsIrBackendContext) { return Exportability.NotNeeded if (function.origin == IrDeclarationOrigin.BRIDGE || function.origin == JsLoweredDeclarationOrigin.BRIDGE_TO_EXTERNAL_FUNCTION || + function.origin == IrDeclarationOrigin.FUNCTION_FOR_DEFAULT_PARAMETER || function.origin == JsLoweredDeclarationOrigin.OBJECT_GET_INSTANCE_FUNCTION || - function.origin == IrDeclarationOrigin.FUNCTION_FOR_DEFAULT_PARAMETER + function.origin == JsLoweredDeclarationOrigin.JS_SHADOWED_EXPORT ) { return Exportability.NotNeeded } @@ -335,7 +336,6 @@ class ExportModelGenerator(val context: JsIrBackendContext) { if (function.isFakeOverriddenFromAny()) return Exportability.NotNeeded - val nameString = function.name.asString() if (nameString.endsWith("-impl")) return Exportability.NotNeeded diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/ExportedDefaultParameterStub.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/ExportedDefaultParameterStub.kt new file mode 100644 index 00000000000..8987e488be0 --- /dev/null +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/ExportedDefaultParameterStub.kt @@ -0,0 +1,136 @@ +/* + * 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.ir.backend.js.lower + +import org.jetbrains.kotlin.backend.common.DeclarationTransformer +import org.jetbrains.kotlin.backend.common.ir.copyParameterDeclarationsFrom +import org.jetbrains.kotlin.backend.common.ir.passTypeArgumentsFrom +import org.jetbrains.kotlin.backend.common.ir.remapTypeParameters +import org.jetbrains.kotlin.backend.common.lower.VariableRemapper +import org.jetbrains.kotlin.backend.common.lower.createIrBuilder +import org.jetbrains.kotlin.backend.common.lower.irBlockBody +import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET +import org.jetbrains.kotlin.ir.backend.js.JsIrBackendContext +import org.jetbrains.kotlin.ir.backend.js.JsLoweredDeclarationOrigin +import org.jetbrains.kotlin.ir.backend.js.ir.JsIrBuilder +import org.jetbrains.kotlin.ir.backend.js.utils.JsAnnotations +import org.jetbrains.kotlin.ir.backend.js.utils.hasStableJsName +import org.jetbrains.kotlin.ir.builders.* +import org.jetbrains.kotlin.ir.builders.declarations.buildFun +import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.expressions.IrConstructorCall +import org.jetbrains.kotlin.ir.expressions.IrExpression +import org.jetbrains.kotlin.ir.util.* +import org.jetbrains.kotlin.name.FqName + +private fun IrConstructorCall.isAnnotation(name: FqName): Boolean { + return symbol.owner.parentAsClass.fqNameWhenAvailable == name +} + +class ExportedDefaultParameterStub(val context: JsIrBackendContext) : DeclarationTransformer { + + private fun IrBuilderWithScope.createDefaultResolutionExpression(value: IrValueParameter): IrExpression? { + return value.defaultValue?.let { defaultValue -> + irIfThenElse( + value.type, + irEqeqeq( + irGet(value), + irCall(this@ExportedDefaultParameterStub.context.intrinsics.jsUndefined) + ), + defaultValue.expression, + irGet(value) + ) + } + } + + private fun IrConstructor.introduceDefaultResolution(): IrConstructor { + val irBuilder = context.createIrBuilder(symbol, startOffset, endOffset) + + val variables = mutableMapOf() + + val defaultResolutionStatements = valueParameters.mapNotNull { valueParameter -> + irBuilder.createDefaultResolutionExpression(valueParameter)?.let { initializer -> + JsIrBuilder.buildVar( + valueParameter.type, + this@introduceDefaultResolution, + name = valueParameter.name.asString(), + initializer = initializer + ).also { + variables[valueParameter] = it + } + } + + } + + if (variables.isNotEmpty()) { + body?.transformChildren(VariableRemapper(variables), null) + + body = context.irFactory.createBlockBody(UNDEFINED_OFFSET, UNDEFINED_OFFSET) { + statements += defaultResolutionStatements + statements += body?.statements ?: emptyList() + } + } + + + return this + } + + override fun transformFlat(declaration: IrDeclaration): List? { + if (declaration !is IrFunction) { + return null + } + + if (!declaration.hasStableJsName()) { + return null + } + + if (!declaration.valueParameters.any { it.defaultValue != null }) { + return null + } + + if (declaration is IrConstructor) { + return listOf(declaration.introduceDefaultResolution()) + } + + val exportedDefaultStubFun = context.irFactory.buildFun { + updateFrom(declaration) + name = declaration.name + origin = JsIrBuilder.SYNTHESIZED_DECLARATION + } + + exportedDefaultStubFun.returnType = declaration.returnType.remapTypeParameters(declaration, exportedDefaultStubFun) + exportedDefaultStubFun.parent = declaration.parent + exportedDefaultStubFun.copyParameterDeclarationsFrom(declaration) + exportedDefaultStubFun.valueParameters.forEach { it.defaultValue = null } + + declaration.origin = JsLoweredDeclarationOrigin.JS_SHADOWED_EXPORT + + val irBuilder = context.createIrBuilder(exportedDefaultStubFun.symbol, exportedDefaultStubFun.startOffset, exportedDefaultStubFun.endOffset) + exportedDefaultStubFun.body = irBuilder.irBlockBody(exportedDefaultStubFun) { + +irReturn(irCall(declaration).apply { + passTypeArgumentsFrom(declaration) + dispatchReceiver = exportedDefaultStubFun.dispatchReceiverParameter?.let { irGet(it) } + extensionReceiver = exportedDefaultStubFun.extensionReceiverParameter?.let { irGet(it) } + + declaration.valueParameters.forEachIndexed { index, irValueParameter -> + val value = createDefaultResolutionExpression(irValueParameter) ?: irGet(irValueParameter) + putValueArgument(index, value) + } + }) + } + + val (exportAnnotations, irrelevantAnnotations) = declaration.annotations.map { it.deepCopyWithSymbols(declaration as? IrDeclarationParent) } + .partition { + it.isAnnotation(JsAnnotations.jsExportFqn) || (it.isAnnotation(JsAnnotations.jsNameFqn)) + } + + declaration.annotations = irrelevantAnnotations + exportedDefaultStubFun.annotations = exportAnnotations + + return listOf(exportedDefaultStubFun, declaration) + } +} + diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/JsErrorExpressionLowering.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/JsErrorExpressionLowering.kt index dad97947c20..c2e2a8ae4db 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/JsErrorExpressionLowering.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/JsErrorExpressionLowering.kt @@ -52,7 +52,7 @@ class JsErrorExpressionLowering(context: JsIrBackendContext) : ErrorExpressionLo return buildThrowError(expression, description) } - private fun buildThrowError(element: IrElement, description: String): IrExpression { + private fun buildThrowError(element: IrExpression, description: String): IrExpression { require(errorSymbol != null) { "Should be non-null if errors are allowed" } return element.run { IrCallImpl(startOffset, endOffset, nothingType, errorSymbol, 0, 1, null, null).apply { diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/misc.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/misc.kt index f80c95eb6cf..31524f91039 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/misc.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/utils/misc.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.ir.backend.js.utils import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.backend.js.JsIrBackendContext +import org.jetbrains.kotlin.ir.backend.js.JsLoweredDeclarationOrigin import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.expressions.impl.IrCallImpl @@ -23,6 +24,13 @@ import org.jetbrains.kotlin.name.Name fun TODO(element: IrElement): Nothing = TODO(element::class.java.simpleName + " is not supported yet here") fun IrFunction.hasStableJsName(): Boolean { + if ( + origin == JsLoweredDeclarationOrigin.JS_SHADOWED_EXPORT || + origin == IrDeclarationOrigin.FUNCTION_FOR_DEFAULT_PARAMETER + ) { + return false + } + val namedOrMissingGetter = when (this) { is IrSimpleFunction -> { val owner = correspondingPropertySymbol?.owner @@ -35,7 +43,7 @@ fun IrFunction.hasStableJsName(): Boolean { else -> true } - return (isEffectivelyExternal() || getJsName() != null || parentClassOrNull?.isJsExport() == true) && namedOrMissingGetter + return (isEffectivelyExternal() || getJsName() != null || isJsExport() || parentClassOrNull?.isJsExport() == true) && namedOrMissingGetter } fun IrFunction.isEqualsInheritedFromAny() = diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java index 8ef311b75fb..f77582329d5 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java @@ -5173,6 +5173,11 @@ public class IrBoxJsES6TestGenerated extends AbstractIrBoxJsES6Test { runTest("js/js.translator/testData/box/jsExport/dataClass.kt"); } + @TestMetadata("exportedDefaultStub.kt") + public void testExportedDefaultStub() throws Exception { + runTest("js/js.translator/testData/box/jsExport/exportedDefaultStub.kt"); + } + @TestMetadata("jsExportInClass.kt") public void testJsExportInClass() throws Exception { runTest("js/js.translator/testData/box/jsExport/jsExportInClass.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java index d51b4a391a2..655850b56ca 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java @@ -5173,6 +5173,11 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest { runTest("js/js.translator/testData/box/jsExport/dataClass.kt"); } + @TestMetadata("exportedDefaultStub.kt") + public void testExportedDefaultStub() throws Exception { + runTest("js/js.translator/testData/box/jsExport/exportedDefaultStub.kt"); + } + @TestMetadata("jsExportInClass.kt") public void testJsExportInClass() throws Exception { runTest("js/js.translator/testData/box/jsExport/jsExportInClass.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java index db41c015f78..470f7db8908 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java @@ -5188,6 +5188,11 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest { runTest("js/js.translator/testData/box/jsExport/dataClass.kt"); } + @TestMetadata("exportedDefaultStub.kt") + public void testExportedDefaultStub() throws Exception { + runTest("js/js.translator/testData/box/jsExport/exportedDefaultStub.kt"); + } + @TestMetadata("jsExportInClass.kt") public void testJsExportInClass() throws Exception { runTest("js/js.translator/testData/box/jsExport/jsExportInClass.kt"); diff --git a/js/js.translator/testData/box/jsExport/dataClass.js b/js/js.translator/testData/box/jsExport/dataClass.js index fdf2d9174dd..0b7067f625c 100644 --- a/js/js.translator/testData/box/jsExport/dataClass.js +++ b/js/js.translator/testData/box/jsExport/dataClass.js @@ -5,7 +5,12 @@ module.exports = function() { var p = new Point(3, 7); return { - "res": p.copy(13, 11).toString() + "copy00": p.copy().toString(), + "copy01": p.copy(undefined, 11).toString(), + "copy10": p.copy(15).toString(), + "copy11": p.copy(13, 11).toString(), + "component1": p.component1(), + "component2": p.component2() }; }; diff --git a/js/js.translator/testData/box/jsExport/dataClass.kt b/js/js.translator/testData/box/jsExport/dataClass.kt index 7652ed91e02..5bf50664002 100644 --- a/js/js.translator/testData/box/jsExport/dataClass.kt +++ b/js/js.translator/testData/box/jsExport/dataClass.kt @@ -1,4 +1,5 @@ // MODULE_KIND: COMMON_JS +// SKIP_DCE_DRIVEN // SKIP_MINIFICATION // FILE: api.kt @@ -14,17 +15,40 @@ data class AltPoint(val x: Int, val y: Int) // FILE: main.kt external interface JsResult { - val res: String + val copy00: String + val copy01: String + val copy10: String + val copy11: String + val component1: Int + val component2: Int } @JsModule("lib") external fun jsBox(): JsResult fun box(): String { - val res = jsBox().res - if (res != "[13::11]") { - return "Fail1: ${res}" + val res = jsBox() + if (res.copy00 != "[3::7]") { + return "Fail1: ${res.copy00}" } + if (res.copy01 != "[3::11]") { + return "Fail2: ${res.copy01}" + } + if (res.copy10 != "[15::7]") { + return "Fail3: ${res.copy10}" + } + if (res.copy11 != "[13::11]") { + return "Fail4: ${res.copy11}" + } + if (res.component1 != 3) { + return "Fail5: ${res.component1}" + } + if (res.component2 != 7) { + return "Fail6: ${res.component2}" + } + + + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/box/jsExport/exportedDefaultStub.js b/js/js.translator/testData/box/jsExport/exportedDefaultStub.js new file mode 100644 index 00000000000..a3df23c69dc --- /dev/null +++ b/js/js.translator/testData/box/jsExport/exportedDefaultStub.js @@ -0,0 +1,33 @@ +$kotlin_test_internal$.beginModule(); + +module.exports = function() { + var api = require("JS_TESTS").api; + var ping = api.ping; + var pong = api.pong; + var transform = api.transform; + var Ping = api.Ping; + var Pong = api.Pong; + + return { + "ping00": ping(), + "ping01": ping(undefined, 10), + "ping10": ping("X"), + "ping11": ping("Z", 5), + + "pong00": pong(), + "pong01": pong(undefined, 10), + "pong10": pong("X"), + "pong11": pong("Z", 5), + + "transform00": transform(), + "transform11": transform(-5, function(it) { return it * it * it }), + + "Ping_ping00a": new Ping().ping(), + "Ping_ping00b": new Ping(10).ping(), + "Ping_ping11": new Ping().ping(-4, function(it) { return it * it * it }), + + "Pong_ping00": new Pong().ping() + }; +}; + +$kotlin_test_internal$.endModule("lib"); diff --git a/js/js.translator/testData/box/jsExport/exportedDefaultStub.kt b/js/js.translator/testData/box/jsExport/exportedDefaultStub.kt new file mode 100644 index 00000000000..697daea41a3 --- /dev/null +++ b/js/js.translator/testData/box/jsExport/exportedDefaultStub.kt @@ -0,0 +1,106 @@ +// MODULE_KIND: COMMON_JS +// SKIP_DCE_DRIVEN +// SKIP_MINIFICATION +package api + +@JsExport +fun ping(a: String = "A", b: Int = 1): String { + return "$a::$b" +} + +@JsExport +open class Ping(private val defaultSeed: Int = 3) { + private fun calculate(n: Int) = n * n + fun ping(s: Int = defaultSeed, c: (Int) -> Int = ::calculate): Int { + return c(s) + } +} + +@JsExport +class Pong: Ping() + +@JsExport +@JsName("pong") +fun bing(a: String = "A", b: Int = 1): String { + return "$b::$a" +} + +@JsExport +fun transform(i: Int = 10, t: (Int) -> Int = {it * it}): Int { + return t(i) +} + +external interface JsResult { + val ping00: String + val ping01: String + val ping10: String + val ping11: String + + val pong00: String + val pong01: String + val pong10: String + val pong11: String + + val transform00: Int + val transform11: Int + + val Ping_ping00a: Int + val Ping_ping00b: Int + val Ping_ping11: Int + + val Pong_ping00: Int +} + +@JsModule("lib") +external fun jsBox(): JsResult + +fun box(): String { + val res = jsBox() + if (res.ping00 != "A::1") { + return "fail0: ${res.ping00}" + } + if (res.ping01 != "A::10") { + return "fail1: ${res.ping01}" + } + if (res.ping10 != "X::1") { + return "fail2: ${res.ping10}" + } + if (res.ping11 != "Z::5") { + return "fail3: ${res.ping11}" + } + + if (res.pong00 != "1::A") { + return "fail4: ${res.pong00}" + } + if (res.pong01 != "10::A") { + return "fail5: ${res.pong01}" + } + if (res.pong10 != "1::X") { + return "fail6: ${res.pong10}" + } + if (res.pong11 != "5::Z") { + return "fail7: ${res.pong11}" + } + + if (res.transform00 != 100) { + return "fail8: ${res.transform00}" + } + if (res.transform11 != -125) { + return "fail9: ${res.transform11}" + } + + if (res.Ping_ping00a != 9) { + return "fail10: ${res.Ping_ping00a}" + } + if (res.Ping_ping00b != 100) { + return "fail11: ${res.Ping_ping00b}" + } + if (res.Ping_ping11 != -64) { + return "fail12: ${res.Ping_ping11}" + } + if (res.Pong_ping00 != 9) { + return "fail13: ${res.Pong_ping00}" + } + + return "OK" +} diff --git a/js/js.translator/testData/box/native/callbackOptionalParameter.kt b/js/js.translator/testData/box/native/callbackOptionalParameter.kt index e0eefce42a9..0ab5a2c813f 100644 --- a/js/js.translator/testData/box/native/callbackOptionalParameter.kt +++ b/js/js.translator/testData/box/native/callbackOptionalParameter.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JS_IR // IGNORE_BACKEND: JS_IR_ES6 // EXPECTED_REACHABLE_NODES: 1294 package foo From ed9a0e514d897be853e3b66ce78500a00e60a32e Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Sun, 3 Jan 2021 14:44:38 +0100 Subject: [PATCH 49/71] Regenerate tests and fir-tree --- .../jetbrains/kotlin/fir/FirLoadCompiledKotlinGenerated.java | 2 +- .../fir/LazyBodyIsNotTouchedTilContractsPhaseTestGenerated.java | 2 +- .../fir/java/FirOldFrontendLightClassesTestGenerated.java | 2 +- .../kotlin/fir/java/FirTypeEnhancementTestGenerated.java | 2 +- .../kotlin/fir/java/OwnFirTypeEnhancementTestGenerated.java | 2 +- .../kotlin/test/runners/FirDiagnosticTestGenerated.java | 2 +- .../test/runners/FirDiagnosticsWithLightTreeTestGenerated.java | 2 +- .../test/runners/FirOldFrontendDiagnosticsTestGenerated.java | 2 +- .../checkers/declaration/ComposedDeclarationCheckers.kt | 2 +- .../fir/analysis/checkers/declaration/DeclarationCheckers.kt | 2 +- .../checkers/declaration/FirDeclarationCheckerAliases.kt | 2 +- .../analysis/checkers/expression/ComposedExpressionCheckers.kt | 2 +- .../fir/analysis/checkers/expression/ExpressionCheckers.kt | 2 +- .../analysis/checkers/expression/FirExpressionCheckerAliases.kt | 2 +- .../codegen/FirCompileKotlinAgainstKotlinTestGenerated.java | 2 +- .../codegen/ir/FirBlackBoxAgainstJavaCodegenTestGenerated.java | 2 +- .../kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java | 2 +- .../codegen/ir/FirBlackBoxInlineCodegenTestGenerated.java | 2 +- .../kotlin/codegen/ir/FirBytecodeTextTestGenerated.java | 2 +- .../org/jetbrains/kotlin/fir/Fir2IrTextTestGenerated.java | 2 +- .../fir/lightTree/LightTree2FirConverterTestCaseGenerated.java | 2 +- .../fir/builder/PartialRawFirBuilderTestCaseGenerated.java | 2 +- .../fir/builder/RawFirBuilderLazyBodiesTestCaseGenerated.java | 2 +- .../RawFirBuilderSourceElementMappingTestCaseGenerated.java | 2 +- .../kotlin/fir/builder/RawFirBuilderTestCaseGenerated.java | 2 +- .../tree/gen/org/jetbrains/kotlin/fir/FirAnnotationContainer.kt | 2 +- compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirElement.kt | 2 +- compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirLabel.kt | 2 +- .../fir/tree/gen/org/jetbrains/kotlin/fir/FirSymbolOwner.kt | 2 +- .../fir/tree/gen/org/jetbrains/kotlin/fir/FirTargetElement.kt | 2 +- .../kotlin/fir/builder/FirAnnotationContainerBuilder.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/builder/FirLabelBuilder.kt | 2 +- .../jetbrains/kotlin/fir/contracts/FirContractDescription.kt | 2 +- .../org/jetbrains/kotlin/fir/contracts/FirEffectDeclaration.kt | 2 +- .../kotlin/fir/contracts/FirLegacyRawContractDescription.kt | 2 +- .../jetbrains/kotlin/fir/contracts/FirRawContractDescription.kt | 2 +- .../kotlin/fir/contracts/FirResolvedContractDescription.kt | 2 +- .../kotlin/fir/contracts/builder/FirEffectDeclarationBuilder.kt | 2 +- .../contracts/builder/FirLegacyRawContractDescriptionBuilder.kt | 2 +- .../fir/contracts/builder/FirRawContractDescriptionBuilder.kt | 2 +- .../contracts/builder/FirResolvedContractDescriptionBuilder.kt | 2 +- .../kotlin/fir/contracts/impl/FirEffectDeclarationImpl.kt | 2 +- .../fir/contracts/impl/FirLegacyRawContractDescriptionImpl.kt | 2 +- .../kotlin/fir/contracts/impl/FirRawContractDescriptionImpl.kt | 2 +- .../fir/contracts/impl/FirResolvedContractDescriptionImpl.kt | 2 +- .../kotlin/fir/declarations/FirAnnotatedDeclaration.kt | 2 +- .../jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt | 2 +- .../kotlin/fir/declarations/FirAnonymousInitializer.kt | 2 +- .../org/jetbrains/kotlin/fir/declarations/FirAnonymousObject.kt | 2 +- .../jetbrains/kotlin/fir/declarations/FirCallableDeclaration.kt | 2 +- .../kotlin/fir/declarations/FirCallableMemberDeclaration.kt | 2 +- .../tree/gen/org/jetbrains/kotlin/fir/declarations/FirClass.kt | 2 +- .../kotlin/fir/declarations/FirClassLikeDeclaration.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt | 2 +- .../kotlin/fir/declarations/FirContractDescriptionOwner.kt | 2 +- .../kotlin/fir/declarations/FirControlFlowGraphOwner.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/declarations/FirDeclaration.kt | 2 +- .../jetbrains/kotlin/fir/declarations/FirDeclarationStatus.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt | 2 +- .../org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt | 2 +- .../org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt | 2 +- .../tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt | 2 +- .../tree/gen/org/jetbrains/kotlin/fir/declarations/FirFile.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt | 2 +- .../tree/gen/org/jetbrains/kotlin/fir/declarations/FirImport.kt | 2 +- .../jetbrains/kotlin/fir/declarations/FirMemberDeclaration.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt | 2 +- .../jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt | 2 +- .../org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt | 2 +- .../kotlin/fir/declarations/FirResolvedDeclarationStatus.kt | 2 +- .../org/jetbrains/kotlin/fir/declarations/FirResolvedImport.kt | 2 +- .../org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/declarations/FirTypeAlias.kt | 2 +- .../org/jetbrains/kotlin/fir/declarations/FirTypeParameter.kt | 2 +- .../jetbrains/kotlin/fir/declarations/FirTypeParameterRef.kt | 2 +- .../kotlin/fir/declarations/FirTypeParameterRefsOwner.kt | 2 +- .../jetbrains/kotlin/fir/declarations/FirTypeParametersOwner.kt | 2 +- .../jetbrains/kotlin/fir/declarations/FirTypedDeclaration.kt | 2 +- .../org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt | 2 +- .../fir/declarations/builder/FirAbstractConstructorBuilder.kt | 2 +- .../fir/declarations/builder/FirAnonymousFunctionBuilder.kt | 2 +- .../fir/declarations/builder/FirAnonymousInitializerBuilder.kt | 2 +- .../fir/declarations/builder/FirAnonymousObjectBuilder.kt | 2 +- .../kotlin/fir/declarations/builder/FirClassBuilder.kt | 2 +- .../builder/FirConstructedClassTypeParameterRefBuilder.kt | 2 +- .../kotlin/fir/declarations/builder/FirConstructorBuilder.kt | 2 +- .../builder/FirDefaultSetterValueParameterBuilder.kt | 2 +- .../kotlin/fir/declarations/builder/FirEnumEntryBuilder.kt | 2 +- .../kotlin/fir/declarations/builder/FirErrorFunctionBuilder.kt | 2 +- .../kotlin/fir/declarations/builder/FirErrorPropertyBuilder.kt | 2 +- .../kotlin/fir/declarations/builder/FirFieldBuilder.kt | 2 +- .../jetbrains/kotlin/fir/declarations/builder/FirFileBuilder.kt | 2 +- .../kotlin/fir/declarations/builder/FirFunctionBuilder.kt | 2 +- .../kotlin/fir/declarations/builder/FirImportBuilder.kt | 2 +- .../builder/FirOuterClassTypeParameterRefBuilder.kt | 2 +- .../fir/declarations/builder/FirPrimaryConstructorBuilder.kt | 2 +- .../fir/declarations/builder/FirPropertyAccessorBuilder.kt | 2 +- .../kotlin/fir/declarations/builder/FirPropertyBuilder.kt | 2 +- .../kotlin/fir/declarations/builder/FirRegularClassBuilder.kt | 2 +- .../kotlin/fir/declarations/builder/FirResolvedImportBuilder.kt | 2 +- .../kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt | 2 +- .../kotlin/fir/declarations/builder/FirTypeAliasBuilder.kt | 2 +- .../kotlin/fir/declarations/builder/FirTypeParameterBuilder.kt | 2 +- .../declarations/builder/FirTypeParameterRefsOwnerBuilder.kt | 2 +- .../fir/declarations/builder/FirTypeParametersOwnerBuilder.kt | 2 +- .../kotlin/fir/declarations/builder/FirValueParameterBuilder.kt | 2 +- .../kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt | 2 +- .../kotlin/fir/declarations/impl/FirAnonymousInitializerImpl.kt | 2 +- .../kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt | 2 +- .../declarations/impl/FirConstructedClassTypeParameterRef.kt | 2 +- .../kotlin/fir/declarations/impl/FirConstructorImpl.kt | 2 +- .../fir/declarations/impl/FirDefaultSetterValueParameter.kt | 2 +- .../jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt | 2 +- .../kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt | 2 +- .../kotlin/fir/declarations/impl/FirErrorPropertyImpl.kt | 2 +- .../org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt | 2 +- .../org/jetbrains/kotlin/fir/declarations/impl/FirFileImpl.kt | 2 +- .../org/jetbrains/kotlin/fir/declarations/impl/FirImportImpl.kt | 2 +- .../fir/declarations/impl/FirOuterClassTypeParameterRef.kt | 2 +- .../kotlin/fir/declarations/impl/FirPrimaryConstructor.kt | 2 +- .../kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt | 2 +- .../jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt | 2 +- .../kotlin/fir/declarations/impl/FirRegularClassImpl.kt | 2 +- .../kotlin/fir/declarations/impl/FirResolvedImportImpl.kt | 2 +- .../kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt | 2 +- .../jetbrains/kotlin/fir/declarations/impl/FirTypeAliasImpl.kt | 2 +- .../kotlin/fir/declarations/impl/FirTypeParameterImpl.kt | 2 +- .../kotlin/fir/declarations/impl/FirValueParameterImpl.kt | 2 +- .../org/jetbrains/kotlin/fir/diagnostics/FirDiagnosticHolder.kt | 2 +- .../org/jetbrains/kotlin/fir/expressions/FirAnnotationCall.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/expressions/FirArgumentList.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/expressions/FirArrayOfCall.kt | 2 +- .../kotlin/fir/expressions/FirAssignmentOperatorStatement.kt | 2 +- .../kotlin/fir/expressions/FirAugmentedArraySetCall.kt | 2 +- .../kotlin/fir/expressions/FirBinaryLogicExpression.kt | 2 +- .../tree/gen/org/jetbrains/kotlin/fir/expressions/FirBlock.kt | 2 +- .../org/jetbrains/kotlin/fir/expressions/FirBreakExpression.kt | 2 +- .../tree/gen/org/jetbrains/kotlin/fir/expressions/FirCall.kt | 2 +- .../kotlin/fir/expressions/FirCallableReferenceAccess.kt | 2 +- .../tree/gen/org/jetbrains/kotlin/fir/expressions/FirCatch.kt | 2 +- .../org/jetbrains/kotlin/fir/expressions/FirCheckNotNullCall.kt | 2 +- .../kotlin/fir/expressions/FirCheckedSafeCallSubject.kt | 2 +- .../kotlin/fir/expressions/FirClassReferenceExpression.kt | 2 +- .../jetbrains/kotlin/fir/expressions/FirComparisonExpression.kt | 2 +- .../org/jetbrains/kotlin/fir/expressions/FirComponentCall.kt | 2 +- .../org/jetbrains/kotlin/fir/expressions/FirConstExpression.kt | 2 +- .../jetbrains/kotlin/fir/expressions/FirContinueExpression.kt | 2 +- .../kotlin/fir/expressions/FirDelegatedConstructorCall.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/expressions/FirDoWhileLoop.kt | 2 +- .../org/jetbrains/kotlin/fir/expressions/FirElvisExpression.kt | 2 +- .../jetbrains/kotlin/fir/expressions/FirEqualityOperatorCall.kt | 2 +- .../org/jetbrains/kotlin/fir/expressions/FirErrorExpression.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/expressions/FirErrorLoop.kt | 2 +- .../kotlin/fir/expressions/FirErrorResolvedQualifier.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/expressions/FirExpression.kt | 2 +- .../kotlin/fir/expressions/FirExpressionWithSmartcast.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/expressions/FirFunctionCall.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/expressions/FirGetClassCall.kt | 2 +- .../jetbrains/kotlin/fir/expressions/FirImplicitInvokeCall.kt | 2 +- .../tree/gen/org/jetbrains/kotlin/fir/expressions/FirJump.kt | 2 +- .../kotlin/fir/expressions/FirLambdaArgumentExpression.kt | 2 +- .../tree/gen/org/jetbrains/kotlin/fir/expressions/FirLoop.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/expressions/FirLoopJump.kt | 2 +- .../kotlin/fir/expressions/FirNamedArgumentExpression.kt | 2 +- .../org/jetbrains/kotlin/fir/expressions/FirQualifiedAccess.kt | 2 +- .../kotlin/fir/expressions/FirQualifiedAccessExpression.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/expressions/FirResolvable.kt | 2 +- .../jetbrains/kotlin/fir/expressions/FirResolvedQualifier.kt | 2 +- .../fir/expressions/FirResolvedReifiedParameterReference.kt | 2 +- .../org/jetbrains/kotlin/fir/expressions/FirReturnExpression.kt | 2 +- .../jetbrains/kotlin/fir/expressions/FirSafeCallExpression.kt | 2 +- .../kotlin/fir/expressions/FirSpreadArgumentExpression.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/expressions/FirStatement.kt | 2 +- .../kotlin/fir/expressions/FirStringConcatenationCall.kt | 2 +- .../kotlin/fir/expressions/FirThisReceiverExpression.kt | 2 +- .../org/jetbrains/kotlin/fir/expressions/FirThrowExpression.kt | 2 +- .../org/jetbrains/kotlin/fir/expressions/FirTryExpression.kt | 2 +- .../org/jetbrains/kotlin/fir/expressions/FirTypeOperatorCall.kt | 2 +- .../kotlin/fir/expressions/FirVarargArgumentsExpression.kt | 2 +- .../jetbrains/kotlin/fir/expressions/FirVariableAssignment.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/expressions/FirWhenBranch.kt | 2 +- .../org/jetbrains/kotlin/fir/expressions/FirWhenExpression.kt | 2 +- .../kotlin/fir/expressions/FirWhenSubjectExpression.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/expressions/FirWhileLoop.kt | 2 +- .../kotlin/fir/expressions/FirWrappedArgumentExpression.kt | 2 +- .../kotlin/fir/expressions/FirWrappedDelegateExpression.kt | 2 +- .../jetbrains/kotlin/fir/expressions/FirWrappedExpression.kt | 2 +- .../fir/expressions/builder/FirAbstractFunctionCallBuilder.kt | 2 +- .../expressions/builder/FirAbstractResolvedQualifierBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirAnnotationCallBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirArgumentListBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirArrayOfCallBuilder.kt | 2 +- .../builder/FirAssignmentOperatorStatementBuilder.kt | 2 +- .../fir/expressions/builder/FirAugmentedArraySetCallBuilder.kt | 2 +- .../fir/expressions/builder/FirBinaryLogicExpressionBuilder.kt | 2 +- .../jetbrains/kotlin/fir/expressions/builder/FirBlockBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirBreakExpressionBuilder.kt | 2 +- .../jetbrains/kotlin/fir/expressions/builder/FirCallBuilder.kt | 2 +- .../expressions/builder/FirCallableReferenceAccessBuilder.kt | 2 +- .../jetbrains/kotlin/fir/expressions/builder/FirCatchBuilder.kt | 2 +- .../fir/expressions/builder/FirCheckNotNullCallBuilder.kt | 2 +- .../fir/expressions/builder/FirCheckedSafeCallSubjectBuilder.kt | 2 +- .../expressions/builder/FirClassReferenceExpressionBuilder.kt | 2 +- .../fir/expressions/builder/FirComparisonExpressionBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirComponentCallBuilder.kt | 2 +- .../fir/expressions/builder/FirContinueExpressionBuilder.kt | 2 +- .../expressions/builder/FirDelegatedConstructorCallBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirDoWhileLoopBuilder.kt | 2 +- .../fir/expressions/builder/FirElseIfTrueConditionBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirElvisExpressionBuilder.kt | 2 +- .../fir/expressions/builder/FirEmptyExpressionBlockBuilder.kt | 2 +- .../fir/expressions/builder/FirEqualityOperatorCallBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirErrorExpressionBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirErrorLoopBuilder.kt | 2 +- .../fir/expressions/builder/FirErrorResolvedQualifierBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirExpressionBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirExpressionStubBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirFunctionCallBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirGetClassCallBuilder.kt | 2 +- .../fir/expressions/builder/FirImplicitInvokeCallBuilder.kt | 2 +- .../expressions/builder/FirLambdaArgumentExpressionBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirLazyBlockBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirLazyExpressionBuilder.kt | 2 +- .../jetbrains/kotlin/fir/expressions/builder/FirLoopBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirLoopJumpBuilder.kt | 2 +- .../expressions/builder/FirNamedArgumentExpressionBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirQualifiedAccessBuilder.kt | 2 +- .../expressions/builder/FirQualifiedAccessExpressionBuilder.kt | 2 +- .../fir/expressions/builder/FirResolvedQualifierBuilder.kt | 2 +- .../builder/FirResolvedReifiedParameterReferenceBuilder.kt | 2 +- .../fir/expressions/builder/FirReturnExpressionBuilder.kt | 2 +- .../fir/expressions/builder/FirSafeCallExpressionBuilder.kt | 2 +- .../expressions/builder/FirSpreadArgumentExpressionBuilder.kt | 2 +- .../expressions/builder/FirStringConcatenationCallBuilder.kt | 2 +- .../fir/expressions/builder/FirThisReceiverExpressionBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirThrowExpressionBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirTryExpressionBuilder.kt | 2 +- .../fir/expressions/builder/FirTypeOperatorCallBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirUnitExpressionBuilder.kt | 2 +- .../expressions/builder/FirVarargArgumentsExpressionBuilder.kt | 2 +- .../fir/expressions/builder/FirVariableAssignmentBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirWhenBranchBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirWhenExpressionBuilder.kt | 2 +- .../fir/expressions/builder/FirWhenSubjectExpressionBuilder.kt | 2 +- .../kotlin/fir/expressions/builder/FirWhileLoopBuilder.kt | 2 +- .../expressions/builder/FirWrappedDelegateExpressionBuilder.kt | 2 +- .../kotlin/fir/expressions/impl/FirAnnotationCallImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirArgumentListImpl.kt | 2 +- .../jetbrains/kotlin/fir/expressions/impl/FirArrayOfCallImpl.kt | 2 +- .../fir/expressions/impl/FirAssignmentOperatorStatementImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirAugmentedArraySetCallImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirBinaryLogicExpressionImpl.kt | 2 +- .../org/jetbrains/kotlin/fir/expressions/impl/FirBlockImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirBreakExpressionImpl.kt | 2 +- .../fir/expressions/impl/FirCallableReferenceAccessImpl.kt | 2 +- .../org/jetbrains/kotlin/fir/expressions/impl/FirCatchImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirCheckNotNullCallImpl.kt | 2 +- .../fir/expressions/impl/FirCheckedSafeCallSubjectImpl.kt | 2 +- .../fir/expressions/impl/FirClassReferenceExpressionImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirComparisonExpressionImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirComponentCallImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirConstExpressionImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirContinueExpressionImpl.kt | 2 +- .../fir/expressions/impl/FirDelegatedConstructorCallImpl.kt | 2 +- .../jetbrains/kotlin/fir/expressions/impl/FirDoWhileLoopImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirElseIfTrueCondition.kt | 2 +- .../kotlin/fir/expressions/impl/FirElvisExpressionImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirEmptyExpressionBlock.kt | 2 +- .../kotlin/fir/expressions/impl/FirEqualityOperatorCallImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirErrorExpressionImpl.kt | 2 +- .../jetbrains/kotlin/fir/expressions/impl/FirErrorLoopImpl.kt | 2 +- .../fir/expressions/impl/FirErrorResolvedQualifierImpl.kt | 2 +- .../jetbrains/kotlin/fir/expressions/impl/FirExpressionStub.kt | 2 +- .../kotlin/fir/expressions/impl/FirFunctionCallImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirGetClassCallImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirImplicitInvokeCallImpl.kt | 2 +- .../fir/expressions/impl/FirLambdaArgumentExpressionImpl.kt | 2 +- .../org/jetbrains/kotlin/fir/expressions/impl/FirLazyBlock.kt | 2 +- .../jetbrains/kotlin/fir/expressions/impl/FirLazyExpression.kt | 2 +- .../fir/expressions/impl/FirNamedArgumentExpressionImpl.kt | 2 +- .../fir/expressions/impl/FirQualifiedAccessExpressionImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirResolvedQualifierImpl.kt | 2 +- .../impl/FirResolvedReifiedParameterReferenceImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirReturnExpressionImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirSafeCallExpressionImpl.kt | 2 +- .../fir/expressions/impl/FirSpreadArgumentExpressionImpl.kt | 2 +- .../fir/expressions/impl/FirStringConcatenationCallImpl.kt | 2 +- .../fir/expressions/impl/FirThisReceiverExpressionImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirThrowExpressionImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirTryExpressionImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirTypeOperatorCallImpl.kt | 2 +- .../jetbrains/kotlin/fir/expressions/impl/FirUnitExpression.kt | 2 +- .../fir/expressions/impl/FirVarargArgumentsExpressionImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirVariableAssignmentImpl.kt | 2 +- .../jetbrains/kotlin/fir/expressions/impl/FirWhenBranchImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirWhenExpressionImpl.kt | 2 +- .../kotlin/fir/expressions/impl/FirWhenSubjectExpressionImpl.kt | 2 +- .../jetbrains/kotlin/fir/expressions/impl/FirWhileLoopImpl.kt | 2 +- .../fir/expressions/impl/FirWrappedDelegateExpressionImpl.kt | 2 +- .../fir/tree/gen/org/jetbrains/kotlin/fir/impl/FirLabelImpl.kt | 2 +- .../jetbrains/kotlin/fir/references/FirBackingFieldReference.kt | 2 +- .../kotlin/fir/references/FirControlFlowGraphReference.kt | 2 +- .../kotlin/fir/references/FirDelegateFieldReference.kt | 2 +- .../jetbrains/kotlin/fir/references/FirErrorNamedReference.kt | 2 +- .../org/jetbrains/kotlin/fir/references/FirNamedReference.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/references/FirReference.kt | 2 +- .../kotlin/fir/references/FirResolvedCallableReference.kt | 2 +- .../kotlin/fir/references/FirResolvedNamedReference.kt | 2 +- .../org/jetbrains/kotlin/fir/references/FirSuperReference.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/references/FirThisReference.kt | 2 +- .../fir/references/builder/FirBackingFieldReferenceBuilder.kt | 2 +- .../fir/references/builder/FirDelegateFieldReferenceBuilder.kt | 2 +- .../fir/references/builder/FirErrorNamedReferenceBuilder.kt | 2 +- .../fir/references/builder/FirExplicitSuperReferenceBuilder.kt | 2 +- .../fir/references/builder/FirExplicitThisReferenceBuilder.kt | 2 +- .../fir/references/builder/FirImplicitThisReferenceBuilder.kt | 2 +- .../FirPropertyFromParameterResolvedNamedReferenceBuilder.kt | 2 +- .../references/builder/FirResolvedCallableReferenceBuilder.kt | 2 +- .../fir/references/builder/FirResolvedNamedReferenceBuilder.kt | 2 +- .../fir/references/builder/FirSimpleNamedReferenceBuilder.kt | 2 +- .../kotlin/fir/references/impl/FirBackingFieldReferenceImpl.kt | 2 +- .../kotlin/fir/references/impl/FirDelegateFieldReferenceImpl.kt | 2 +- .../kotlin/fir/references/impl/FirErrorNamedReferenceImpl.kt | 2 +- .../kotlin/fir/references/impl/FirExplicitSuperReference.kt | 2 +- .../kotlin/fir/references/impl/FirExplicitThisReference.kt | 2 +- .../kotlin/fir/references/impl/FirImplicitThisReference.kt | 2 +- .../impl/FirPropertyFromParameterResolvedNamedReference.kt | 2 +- .../fir/references/impl/FirResolvedCallableReferenceImpl.kt | 2 +- .../kotlin/fir/references/impl/FirResolvedNamedReferenceImpl.kt | 2 +- .../kotlin/fir/references/impl/FirSimpleNamedReference.kt | 2 +- .../jetbrains/kotlin/fir/references/impl/FirStubReference.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/types/FirDynamicTypeRef.kt | 2 +- .../tree/gen/org/jetbrains/kotlin/fir/types/FirErrorTypeRef.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/types/FirFunctionTypeRef.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/types/FirImplicitTypeRef.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/types/FirResolvedTypeRef.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/types/FirStarProjection.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/types/FirTypeProjection.kt | 2 +- .../jetbrains/kotlin/fir/types/FirTypeProjectionWithVariance.kt | 2 +- .../fir/tree/gen/org/jetbrains/kotlin/fir/types/FirTypeRef.kt | 2 +- .../org/jetbrains/kotlin/fir/types/FirTypeRefWithNullability.kt | 2 +- .../tree/gen/org/jetbrains/kotlin/fir/types/FirUserTypeRef.kt | 2 +- .../kotlin/fir/types/builder/FirDynamicTypeRefBuilder.kt | 2 +- .../kotlin/fir/types/builder/FirErrorTypeRefBuilder.kt | 2 +- .../kotlin/fir/types/builder/FirFunctionTypeRefBuilder.kt | 2 +- .../kotlin/fir/types/builder/FirImplicitTypeRefBuilder.kt | 2 +- .../kotlin/fir/types/builder/FirResolvedTypeRefBuilder.kt | 2 +- .../kotlin/fir/types/builder/FirStarProjectionBuilder.kt | 2 +- .../fir/types/builder/FirTypeProjectionWithVarianceBuilder.kt | 2 +- .../jetbrains/kotlin/fir/types/impl/FirDynamicTypeRefImpl.kt | 2 +- .../org/jetbrains/kotlin/fir/types/impl/FirErrorTypeRefImpl.kt | 2 +- .../jetbrains/kotlin/fir/types/impl/FirFunctionTypeRefImpl.kt | 2 +- .../jetbrains/kotlin/fir/types/impl/FirImplicitTypeRefImpl.kt | 2 +- .../jetbrains/kotlin/fir/types/impl/FirResolvedTypeRefImpl.kt | 2 +- .../jetbrains/kotlin/fir/types/impl/FirStarProjectionImpl.kt | 2 +- .../kotlin/fir/types/impl/FirTypePlaceholderProjection.kt | 2 +- .../kotlin/fir/types/impl/FirTypeProjectionWithVarianceImpl.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt | 2 +- .../tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt | 2 +- .../gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt | 2 +- .../incremental/IncrementalJsCompilerRunnerTestGenerated.java | 2 +- ...lJsCompilerRunnerWithFriendModulesDisabledTestGenerated.java | 2 +- ...ncrementalJsCompilerRunnerWithMetadataOnlyTestGenerated.java | 2 +- .../IncrementalJsKlibCompilerRunnerTestGenerated.java | 2 +- ...ntalJsKlibCompilerWithScopeExpansionRunnerTestGenerated.java | 2 +- .../incremental/IncrementalJvmCompilerRunnerTestGenerated.java | 2 +- .../IncrementalMultiplatformJsCompilerRunnerTestGenerated.java | 2 +- .../IncrementalMultiplatformJvmCompilerRunnerTestGenerated.java | 2 +- .../IrIncrementalJvmCompilerRunnerTestGenerated.java | 2 +- .../codegen/ir/CompileKotlinAgainstKlibTestGenerated.java | 2 +- .../jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java | 2 +- .../kotlin/test/runners/DiagnosticUsingJavacTestGenerated.java | 2 +- .../kotlin/test/runners/DiagnosticsNativeTestGenerated.java | 2 +- .../test/runners/DiagnosticsTestWithJsStdLibGenerated.java | 2 +- .../test/runners/DiagnosticsTestWithJvmIrBackendGenerated.java | 2 +- .../test/runners/DiagnosticsTestWithOldJvmBackendGenerated.java | 2 +- .../ForeignAnnotationsNoAnnotationInClasspathTestGenerated.java | 2 +- ...NoAnnotationInClasspathWithPsiClassReadingTestGenerated.java | 2 +- .../kotlin/test/runners/ForeignAnnotationsTestGenerated.java | 2 +- .../kotlin/asJava/CompilerLightClassTestGenerated.java | 2 +- .../org/jetbrains/kotlin/cfg/ControlFlowTestGenerated.java | 2 +- .../org/jetbrains/kotlin/cfg/DataFlowTestGenerated.java | 2 +- .../org/jetbrains/kotlin/cfg/PseudoValueTestGenerated.java | 2 +- ...agnosticsTestWithJsStdLibAndBackendCompilationGenerated.java | 2 +- .../tests-gen/org/jetbrains/kotlin/cli/CliTestGenerated.java | 2 +- .../kotlin/codegen/AsmLikeInstructionListingTestGenerated.java | 2 +- .../kotlin/codegen/BlackBoxAgainstJavaCodegenTestGenerated.java | 2 +- .../jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java | 2 +- .../kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java | 2 +- .../jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java | 2 +- .../org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java | 2 +- .../kotlin/codegen/CheckLocalVariablesTableTestGenerated.java | 2 +- .../codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java | 2 +- .../codegen/CompileKotlinAgainstKotlinJdk15TestGenerated.java | 2 +- .../kotlin/codegen/CompileKotlinAgainstKotlinTestGenerated.java | 2 +- .../kotlin/codegen/CustomScriptCodegenTestGenerated.java | 2 +- .../jetbrains/kotlin/codegen/DumpDeclarationsTestGenerated.java | 2 +- .../codegen/IrCompileKotlinAgainstKotlinJdk15TestGenerated.java | 2 +- .../kotlin/codegen/Jdk15BlackBoxCodegenTestGenerated.java | 2 +- .../kotlin/codegen/Jdk15IrBlackBoxCodegenTestGenerated.java | 2 +- .../kotlin/codegen/Jdk9BlackBoxCodegenTestGenerated.java | 2 +- .../kotlin/codegen/Jdk9IrBlackBoxCodegenTestGenerated.java | 2 +- .../codegen/Kapt3BuilderModeBytecodeShapeTestGenerated.java | 2 +- .../kotlin/codegen/LightAnalysisModeTestGenerated.java | 2 +- .../jetbrains/kotlin/codegen/ScriptCodegenTestGenerated.java | 2 +- .../kotlin/codegen/TopLevelMembersInvocationTestGenerated.java | 2 +- .../codegen/debugInformation/IrLocalVariableTestGenerated.java | 2 +- .../codegen/debugInformation/IrSteppingTestGenerated.java | 2 +- .../codegen/debugInformation/LocalVariableTestGenerated.java | 2 +- .../kotlin/codegen/debugInformation/SteppingTestGenerated.java | 2 +- .../DefaultArgumentsReflectionTestGenerated.java | 2 +- .../jetbrains/kotlin/codegen/flags/WriteFlagsTestGenerated.java | 2 +- .../codegen/ir/ComposeLikeIrBlackBoxCodegenTestGenerated.java | 2 +- .../codegen/ir/ComposeLikeIrBytecodeTextTestGenerated.java | 2 +- .../codegen/ir/IrAsmLikeInstructionListingTestGenerated.java | 2 +- .../codegen/ir/IrBlackBoxAgainstJavaCodegenTestGenerated.java | 2 +- .../kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java | 2 +- .../kotlin/codegen/ir/IrBlackBoxInlineCodegenTestGenerated.java | 2 +- .../kotlin/codegen/ir/IrBytecodeListingTestGenerated.java | 2 +- .../kotlin/codegen/ir/IrBytecodeTextTestGenerated.java | 2 +- .../codegen/ir/IrCheckLocalVariablesTableTestGenerated.java | 2 +- .../ir/IrCompileKotlinAgainstInlineKotlinTestGenerated.java | 2 +- .../codegen/ir/IrCompileKotlinAgainstKotlinTestGenerated.java | 2 +- .../kotlin/codegen/ir/IrScriptCodegenTestGenerated.java | 2 +- .../jetbrains/kotlin/codegen/ir/IrWriteFlagsTestGenerated.java | 2 +- .../kotlin/codegen/ir/IrWriteSignatureTestGenerated.java | 2 +- .../codegen/ir/JvmIrAgainstOldBoxInlineTestGenerated.java | 2 +- .../kotlin/codegen/ir/JvmIrAgainstOldBoxTestGenerated.java | 2 +- .../codegen/ir/JvmOldAgainstIrBoxInlineTestGenerated.java | 2 +- .../kotlin/codegen/ir/JvmOldAgainstIrBoxTestGenerated.java | 2 +- .../org/jetbrains/kotlin/integration/AntTaskTestGenerated.java | 2 +- .../org/jetbrains/kotlin/ir/IrCfgTestCaseGenerated.java | 2 +- .../org/jetbrains/kotlin/ir/IrJsTextTestCaseGenerated.java | 2 +- .../jetbrains/kotlin/ir/IrSourceRangesTestCaseGenerated.java | 2 +- .../org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java | 2 +- .../jvm/compiler/CompileJavaAgainstKotlinTestGenerated.java | 2 +- .../jvm/compiler/CompileKotlinAgainstJavaTestGenerated.java | 2 +- .../jetbrains/kotlin/jvm/compiler/LoadJava15TestGenerated.java | 2 +- .../compiler/LoadJava15WithPsiClassReadingTestGenerated.java | 2 +- .../jetbrains/kotlin/jvm/compiler/LoadJavaTestGenerated.java | 2 +- .../jvm/compiler/LoadJavaWithPsiClassReadingTestGenerated.java | 2 +- .../jvm/compiler/LoadKotlinWithTypeTableTestGenerated.java | 2 +- .../kotlin/jvm/compiler/WriteSignatureTestGenerated.java | 2 +- .../compiler/ir/IrCompileJavaAgainstKotlinTestGenerated.java | 2 +- .../compiler/ir/IrCompileKotlinAgainstJavaTestGenerated.java | 2 +- .../kotlin/jvm/compiler/ir/IrLoadJavaTestGenerated.java | 2 +- .../jvm/compiler/javac/LoadJavaUsingJavacTestGenerated.java | 2 +- .../org/jetbrains/kotlin/lexer/kdoc/KDocLexerTestGenerated.java | 2 +- .../jetbrains/kotlin/lexer/kotlin/KotlinLexerTestGenerated.java | 2 +- .../kotlin/modules/xml/ModuleXmlParserTestGenerated.java | 2 +- .../multiplatform/MultiPlatformIntegrationTestGenerated.java | 2 +- .../org/jetbrains/kotlin/parsing/ParsingTestGenerated.java | 2 +- .../kotlin/renderer/DescriptorRendererTestGenerated.java | 2 +- .../FunctionDescriptorInExpressionRendererTestGenerated.java | 2 +- .../org/jetbrains/kotlin/repl/ReplInterpreterTestGenerated.java | 2 +- .../org/jetbrains/kotlin/resolve/ResolveTestGenerated.java | 2 +- .../resolve/annotation/AnnotationParameterTestGenerated.java | 2 +- .../kotlin/resolve/calls/ResolvedCallsTestGenerated.java | 2 +- .../calls/ResolvedConstructorDelegationCallsTestsGenerated.java | 2 +- .../evaluate/CompileTimeConstantEvaluatorTestGenerated.java | 2 +- .../resolve/constraintSystem/ConstraintSystemTestGenerated.java | 2 +- .../kotlin/serialization/LocalClassProtoTestGenerated.java | 2 +- .../org/jetbrains/kotlin/types/TypeBindingTestGenerated.java | 2 +- .../ForeignAnnotationsCompiledJavaDiagnosticTestGenerated.java | 2 +- .../kotlin/checkers/JspecifyAnnotationsTestGenerated.java | 2 +- .../jetbrains/kotlin/jvm/compiler/LoadJava8TestGenerated.java | 2 +- .../jvm/compiler/LoadJava8WithPsiClassReadingTestGenerated.java | 2 +- .../jvm/compiler/javac/LoadJava8UsingJavacTestGenerated.java | 2 +- .../calls/EnhancedSignaturesResolvedCallsTestGenerated.java | 2 +- .../visualizer/fir/FirVisualizerForRawFirDataGenerated.java | 2 +- .../visualizer/fir/FirVisualizerForUncommonCasesGenerated.java | 2 +- .../visualizer/psi/PsiVisualizerForRawFirDataGenerated.java | 2 +- .../visualizer/psi/PsiVisualizerForUncommonCasesGenerated.java | 2 +- .../jvm/runtime/Jvm8RuntimeDescriptorLoaderTestGenerated.java | 2 +- .../jvm/runtime/JvmRuntimeDescriptorLoaderTestGenerated.java | 2 +- .../test/CompiledKotlinInJavaCompletionTestGenerated.java | 2 +- .../test/CompletionIncrementalResolveTestGenerated.java | 2 +- .../idea/completion/test/JSBasicCompletionTestGenerated.java | 2 +- .../idea/completion/test/Java8BasicCompletionTestGenerated.java | 2 +- .../idea/completion/test/JvmBasicCompletionTestGenerated.java | 2 +- .../idea/completion/test/JvmSmartCompletionTestGenerated.java | 2 +- .../completion/test/JvmWithLibBasicCompletionTestGenerated.java | 2 +- .../idea/completion/test/KDocCompletionTestGenerated.java | 2 +- .../idea/completion/test/KeywordCompletionTestGenerated.java | 2 +- .../test/KotlinSourceInJavaCompletionTestGenerated.java | 2 +- .../test/KotlinStdLibInJavaCompletionTestGenerated.java | 2 +- .../test/MultiFileJvmBasicCompletionTestGenerated.java | 2 +- .../test/MultiFilePrimitiveJvmBasicCompletionTestGenerated.java | 2 +- .../completion/test/MultiFileSmartCompletionTestGenerated.java | 2 +- .../completion/test/MultiPlatformCompletionTestGenerated.java | 2 +- .../test/handlers/BasicCompletionHandlerTestGenerated.java | 2 +- .../test/handlers/CompletionCharFilterTestGenerated.java | 2 +- .../test/handlers/KeywordCompletionHandlerTestGenerated.java | 2 +- .../test/handlers/SmartCompletionHandlerTestGenerated.java | 2 +- .../test/weighers/BasicCompletionWeigherTestGenerated.java | 2 +- .../test/weighers/SmartCompletionWeigherTestGenerated.java | 2 +- .../highlighter/FirHighlightingPerformanceTestGenerated.java | 2 +- ...HighLevelPerformanceBasicCompletionHandlerTestGenerated.java | 2 +- .../kotlin/asJava/classes/FirClassLoadingTestGenerated.java | 2 +- .../kotlin/asJava/classes/FirLightClassTestGenerated.java | 2 +- .../kotlin/asJava/classes/FirLightFacadeClassTestGenerated.java | 2 +- .../jetbrains/kotlin/checkers/FirPsiCheckerTestGenerated.java | 2 +- .../jetbrains/kotlin/findUsages/FindUsagesFirTestGenerated.java | 2 +- .../FindUsagesWithDisableComponentSearchFirTestGenerated.java | 2 +- .../findUsages/KotlinFindUsagesWithLibraryFirTestGenerated.java | 2 +- .../findUsages/KotlinFindUsagesWithStdlibFirTestGenerated.java | 2 +- .../completion/HighLevelJvmBasicCompletionTestGenerated.java | 2 +- .../handlers/HighLevelBasicCompletionHandlerTestGenerated.java | 2 +- .../idea/completion/wheigher/HighLevelWeigherTestGenerated.java | 2 +- .../kotlin/idea/highlighter/FirHighlightingTestGenerated.java | 2 +- .../kotlin/idea/resolve/FirReferenceResolveTestGenerated.java | 2 +- .../low/level/api/FirLazyDeclarationResolveTestGenerated.java | 2 +- .../idea/fir/low/level/api/FirLazyResolveTestGenerated.java | 2 +- .../low/level/api/FirMultiModuleLazyResolveTestGenerated.java | 2 +- .../fir/low/level/api/FirMultiModuleResolveTestGenerated.java | 2 +- ...ndOutOfBlockModificationTrackerConsistencyTestGenerated.java | 2 +- .../level/api/file/structure/FileStructureTestGenerated.java | 2 +- .../level/api/sessions/SessionsInvalidationTestGenerated.java | 2 +- ...ectWideOutOfBlockKotlinModificationTrackerTestGenerated.java | 2 +- .../KtDeclarationAndFirDeclarationEqualityCheckerGenerated.java | 2 +- .../api/components/ExpectedExpressionTypeTestGenerated.java | 2 +- .../api/components/ReturnExpressionTargetTestGenerated.java | 2 +- .../kotlin/idea/frontend/api/fir/ResolveCallTestGenerated.java | 2 +- .../kotlin/idea/frontend/api/scopes/FileScopeTestGenerated.java | 2 +- .../frontend/api/scopes/MemberScopeByFqNameTestGenerated.java | 2 +- .../frontend/api/symbols/MemoryLeakInSymbolsTestGenerated.java | 2 +- .../symbols/SymbolFromLibraryPointerRestoreTestGenerated.java | 2 +- .../symbols/SymbolFromSourcePointerRestoreTestGenerated.java | 2 +- .../api/symbols/SymbolsByFqNameBuildingTestGenerated.java | 2 +- .../frontend/api/symbols/SymbolsByPsiBuildingTestGenerated.java | 2 +- .../GradleConfigureProjectByChangingFileTestGenerated.java | 2 +- .../kotlin/idea/maven/KotlinMavenInspectionTestGenerated.java | 2 +- .../MavenConfigureProjectByChangingFileTestGenerated.java | 2 +- .../ProjectTemplateNewWizardProjectImportTestGenerated.java | 2 +- .../wizard/YamlNewWizardProjectImportTestGenerated.java | 2 +- .../kotlin/idea/debugger/test/AsyncStackTraceTestGenerated.java | 2 +- .../debugger/test/BreakpointApplicabilityTestGenerated.java | 2 +- .../idea/debugger/test/ContinuationStackTraceTestGenerated.java | 2 +- .../kotlin/idea/debugger/test/CoroutineDumpTestGenerated.java | 2 +- .../kotlin/idea/debugger/test/FileRankingTestGenerated.java | 2 +- .../debugger/test/IrKotlinEvaluateExpressionTestGenerated.java | 2 +- .../idea/debugger/test/IrKotlinSteppingTestGenerated.java | 2 +- .../debugger/test/KotlinEvaluateExpressionTestGenerated.java | 2 +- .../kotlin/idea/debugger/test/KotlinSteppingTestGenerated.java | 2 +- .../kotlin/idea/debugger/test/PositionManagerTestGenerated.java | 2 +- .../debugger/test/SelectExpressionForDebuggerTestGenerated.java | 2 +- .../kotlin/idea/debugger/test/SmartStepIntoTestGenerated.java | 2 +- .../idea/debugger/test/XCoroutinesStackTraceTestGenerated.java | 2 +- .../test/sequence/exec/SequenceTraceTestCaseGenerated.java | 2 +- .../kotlin/idea/perf/PerformanceAddImportTestGenerated.java | 2 +- .../perf/PerformanceBasicCompletionHandlerTestGenerated.java | 2 +- .../idea/perf/PerformanceCompletionCharFilterTestGenerated.java | 2 +- .../PerformanceCompletionIncrementalResolveTestGenerated.java | 2 +- .../kotlin/idea/perf/PerformanceHighlightingTestGenerated.java | 2 +- ...PerformanceJavaToKotlinCopyPasteConversionTestGenerated.java | 2 +- .../perf/PerformanceKeywordCompletionHandlerTestGenerated.java | 2 +- .../PerformanceLiteralKotlinToKotlinCopyPasteTestGenerated.java | 2 +- ...formanceNewJavaToKotlinCopyPasteConversionTestGenerated.java | 2 +- .../perf/PerformanceSmartCompletionHandlerTestGenerated.java | 2 +- .../idea/perf/PerformanceTypingIndentationTestGenerated.java | 2 +- .../kotlin/idea/scratch/ScratchLineMarkersTestGenerated.java | 2 +- .../kotlin/idea/scratch/ScratchRunActionTestGenerated.java | 2 +- .../script/ScriptTemplatesFromDependenciesTestGenerated.java | 2 +- .../jetbrains/kotlin/DataFlowValueRenderingTestGenerated.java | 2 +- .../org/jetbrains/kotlin/addImport/AddImportTestGenerated.java | 2 +- .../kotlin/addImportAlias/AddImportAliasTestGenerated.java | 2 +- .../asJava/classes/UltraLightClassLoadingTestGenerated.java | 2 +- .../asJava/classes/UltraLightClassSanityTestGenerated.java | 2 +- .../asJava/classes/UltraLightFacadeClassTestGenerated.java | 2 +- .../asJava/classes/UltraLightScriptLoadingTestGenerated.java | 2 +- .../checkers/JavaAgainstKotlinBinariesCheckerTestGenerated.java | 2 +- .../checkers/JavaAgainstKotlinSourceCheckerTestGenerated.java | 2 +- ...gainstKotlinSourceCheckerWithoutUltraLightTestGenerated.java | 2 +- .../org/jetbrains/kotlin/checkers/JsCheckerTestGenerated.java | 2 +- .../org/jetbrains/kotlin/checkers/PsiCheckerTestGenerated.java | 2 +- .../kotlin/copyright/UpdateKotlinCopyrightTestGenerated.java | 2 +- .../jetbrains/kotlin/findUsages/FindUsagesTestGenerated.java | 2 +- .../FindUsagesWithDisableComponentSearchTestGenerated.java | 2 +- .../findUsages/KotlinFindUsagesWithLibraryTestGenerated.java | 2 +- .../findUsages/KotlinFindUsagesWithStdlibTestGenerated.java | 2 +- .../org/jetbrains/kotlin/formatter/FormatterTestGenerated.java | 2 +- .../kotlin/formatter/TypingIndentationTestBaseGenerated.java | 2 +- .../jetbrains/kotlin/idea/ExpressionSelectionTestGenerated.java | 2 +- .../org/jetbrains/kotlin/idea/SmartSelectionTestGenerated.java | 2 +- .../kotlin/idea/actions/GotoTestOrCodeActionTestGenerated.java | 2 +- .../idea/caches/resolve/IdeCompiledLightClassTestGenerated.java | 2 +- .../caches/resolve/IdeLightClassForScriptTestGenerated.java | 2 +- .../kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java | 2 +- .../idea/caches/resolve/MultiModuleLineMarkerTestGenerated.java | 2 +- .../caches/resolve/MultiPlatformHighlightingTestGenerated.java | 2 +- .../idea/caches/resolve/MultiplatformAnalysisTestGenerated.java | 2 +- .../kotlin/idea/codeInsight/BreadcrumbsTestGenerated.java | 2 +- .../idea/codeInsight/ChangeLocalityDetectorTestGenerated.java | 2 +- .../kotlin/idea/codeInsight/ExpressionTypeTestGenerated.java | 2 +- .../idea/codeInsight/InsertImportOnPasteTestGenerated.java | 2 +- .../kotlin/idea/codeInsight/InspectionTestGenerated.java | 2 +- .../kotlin/idea/codeInsight/LineMarkersTestGenerated.java | 2 +- .../codeInsight/LineMarkersTestInLibrarySourcesGenerated.java | 2 +- .../kotlin/idea/codeInsight/MoveOnCutPasteTestGenerated.java | 2 +- .../idea/codeInsight/MultiFileInspectionTestGenerated.java | 2 +- .../idea/codeInsight/OutOfBlockModificationTestGenerated.java | 2 +- .../kotlin/idea/codeInsight/RenderingKDocTestGenerated.java | 2 +- .../codevision/KotlinCodeVisionProviderTestGenerated.java | 2 +- .../codeInsight/generate/CodeInsightActionTestGenerated.java | 2 +- .../generate/GenerateHashCodeAndEqualsActionTestGenerated.java | 2 +- .../generate/GenerateTestSupportMethodActionTestGenerated.java | 2 +- .../generate/GenerateToStringActionTestGenerated.java | 2 +- .../hints/KotlinReferenceTypeHintsProviderTestGenerated.java | 2 +- .../idea/codeInsight/moveUpDown/MoveLeftRightTestGenerated.java | 2 +- .../idea/codeInsight/moveUpDown/MoveStatementTestGenerated.java | 2 +- .../postfix/PostfixTemplateProviderTestGenerated.java | 2 +- .../codeInsight/surroundWith/SurroundWithTestGenerated.java | 2 +- .../idea/codeInsight/unwrap/UnwrapRemoveTestGenerated.java | 2 +- .../copy/JavaToKotlinCopyPasteConversionTestGenerated.java | 2 +- .../copy/LiteralKotlinToKotlinCopyPasteTestGenerated.java | 2 +- .../copy/LiteralTextToKotlinCopyPasteTestGenerated.java | 2 +- .../copy/TextJavaToKotlinCopyPasteConversionTestGenerated.java | 2 +- .../idea/coverage/KotlinCoverageOutputFilesTestGenerated.java | 2 +- .../debugger/evaluate/CodeFragmentAutoImportTestGenerated.java | 2 +- .../evaluate/CodeFragmentCompletionHandlerTestGenerated.java | 2 +- .../debugger/evaluate/CodeFragmentCompletionTestGenerated.java | 2 +- .../evaluate/CodeFragmentHighlightingTestGenerated.java | 2 +- .../navigation/NavigateJavaToLibrarySourceTestGenerated.java | 2 +- .../navigation/NavigateToDecompiledLibraryTestGenerated.java | 2 +- .../navigation/NavigateToLibrarySourceTestGenerated.java | 2 +- .../navigation/NavigateToLibrarySourceTestWithJSGenerated.java | 2 +- .../decompiler/stubBuilder/ClsStubBuilderTestGenerated.java | 2 +- .../decompiler/stubBuilder/LoadJavaClsStubTestGenerated.java | 2 +- .../CommonDecompiledTextFromJsMetadataTestGenerated.java | 2 +- .../textBuilder/CommonDecompiledTextTestGenerated.java | 2 +- .../JsDecompiledTextFromJsMetadataTestGenerated.java | 2 +- .../decompiler/textBuilder/JvmDecompiledTextTestGenerated.java | 2 +- .../editor/EnterAfterUnmatchedBraceHandlerTestGenerated.java | 2 +- .../kotlin/idea/editor/MultiLineStringIndentTestGenerated.java | 2 +- .../editor/backspaceHandler/BackspaceHandlerTestGenerated.java | 2 +- .../idea/editor/quickDoc/QuickDocProviderTestGenerated.java | 2 +- .../kotlin/idea/filters/KotlinExceptionFilterTestGenerated.java | 2 +- .../kotlin/idea/folding/KotlinFoldingTestGenerated.java | 2 +- .../jetbrains/kotlin/idea/hierarchy/HierarchyTestGenerated.java | 2 +- .../kotlin/idea/hierarchy/HierarchyWithLibTestGenerated.java | 2 +- .../idea/highlighter/DiagnosticMessageJsTestGenerated.java | 2 +- .../kotlin/idea/highlighter/DiagnosticMessageTestGenerated.java | 2 +- .../kotlin/idea/highlighter/DslHighlighterTestGenerated.java | 2 +- .../idea/highlighter/HighlightExitPointsTestGenerated.java | 2 +- .../kotlin/idea/highlighter/HighlightingTestGenerated.java | 2 +- .../kotlin/idea/highlighter/UsageHighlightingTestGenerated.java | 2 +- .../kotlin/idea/imports/JsOptimizeImportsTestGenerated.java | 2 +- .../kotlin/idea/imports/JvmOptimizeImportsTestGenerated.java | 2 +- .../KotlinTypeAliasByExpansionShortNameIndexTestGenerated.java | 2 +- .../kotlin/idea/inspections/LocalInspectionTestGenerated.java | 2 +- .../idea/inspections/MultiFileLocalInspectionTestGenerated.java | 2 +- .../intentions/ConcatenatedStringGeneratorTestGenerated.java | 2 +- .../kotlin/idea/intentions/IntentionTest2Generated.java | 2 +- .../kotlin/idea/intentions/IntentionTestGenerated.java | 2 +- .../kotlin/idea/intentions/MultiFileIntentionTestGenerated.java | 2 +- .../idea/intentions/declarations/JoinLinesTestGenerated.java | 2 +- .../kotlin/idea/internal/BytecodeToolWindowTestGenerated.java | 2 +- .../kotlin/idea/kdoc/KDocHighlightingTestGenerated.java | 2 +- .../org/jetbrains/kotlin/idea/kdoc/KDocTypingTestGenerated.java | 2 +- .../jetbrains/kotlin/idea/kdoc/KdocResolveTestGenerated.java | 2 +- .../kotlin/idea/navigation/GotoDeclarationTestGenerated.java | 2 +- .../kotlin/idea/navigation/GotoSuperTestGenerated.java | 2 +- .../idea/navigation/GotoTypeDeclarationTestGenerated.java | 2 +- .../KotlinGotoImplementationMultiModuleTestGenerated.java | 2 +- .../idea/navigation/KotlinGotoImplementationTestGenerated.java | 2 +- .../KotlinGotoRelatedSymbolMultiModuleTestGenerated.java | 2 +- .../navigation/KotlinGotoSuperMultiModuleTestGenerated.java | 2 +- .../kotlin/idea/navigation/KotlinGotoTestGenerated.java | 2 +- .../idea/navigationToolbar/KotlinNavBarTestGenerated.java | 2 +- .../kotlin/idea/parameterInfo/ParameterInfoTestGenerated.java | 2 +- .../kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java | 2 +- .../kotlin/idea/quickfix/QuickFixMultiModuleTestGenerated.java | 2 +- .../jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java | 2 +- .../idea/refactoring/NameSuggestionProviderTestGenerated.java | 2 +- .../kotlin/idea/refactoring/copy/CopyTestGenerated.java | 2 +- .../idea/refactoring/copy/MultiModuleCopyTestGenerated.java | 2 +- .../kotlin/idea/refactoring/inline/InlineTestGenerated.java | 2 +- .../idea/refactoring/introduce/ExtractionTestGenerated.java | 2 +- .../kotlin/idea/refactoring/move/MoveTestGenerated.java | 2 +- .../idea/refactoring/move/MultiModuleMoveTestGenerated.java | 2 +- .../kotlin/idea/refactoring/pullUp/PullUpTestGenerated.java | 2 +- .../kotlin/idea/refactoring/pushDown/PushDownTestGenerated.java | 2 +- .../idea/refactoring/rename/MultiModuleRenameTestGenerated.java | 2 +- .../kotlin/idea/refactoring/rename/RenameTestGenerated.java | 2 +- .../safeDelete/MultiModuleSafeDeleteTestGenerated.java | 2 +- .../idea/refactoring/safeDelete/SafeDeleteTestGenerated.java | 2 +- .../kotlin/idea/repl/IdeReplCompletionTestGenerated.java | 2 +- .../AdditionalResolveDescriptorRendererTestGenerated.java | 2 +- .../kotlin/idea/resolve/PartialBodyResolveTestGenerated.java | 2 +- .../idea/resolve/ReferenceResolveInJavaTestGenerated.java | 2 +- .../resolve/ReferenceResolveInLibrarySourcesTestGenerated.java | 2 +- .../kotlin/idea/resolve/ReferenceResolveTestGenerated.java | 2 +- .../idea/resolve/ReferenceResolveWithLibTestGenerated.java | 2 +- .../ReferenceToCompiledKotlinResolveInJavaTestGenerated.java | 2 +- .../ReferenceToJavaWithWrongFileStructureTestGenerated.java | 2 +- .../kotlin/idea/resolve/ResolveModeComparisonTestGenerated.java | 2 +- .../idea/script/ScriptConfigurationCompletionTestGenerated.java | 2 +- .../script/ScriptConfigurationHighlightingTestGenerated.java | 2 +- .../ScriptConfigurationInsertImportOnPasteTestGenerated.java | 2 +- .../idea/script/ScriptConfigurationNavigationTestGenerated.java | 2 +- .../kotlin/idea/script/ScriptDefinitionsOrderTestGenerated.java | 2 +- .../kotlin/idea/slicer/SlicerLeafGroupingTestGenerated.java | 2 +- .../kotlin/idea/slicer/SlicerMultiplatformTestGenerated.java | 2 +- .../kotlin/idea/slicer/SlicerNullnessGroupingTestGenerated.java | 2 +- .../jetbrains/kotlin/idea/slicer/SlicerTreeTestGenerated.java | 2 +- .../idea/structureView/KotlinFileStructureTestGenerated.java | 2 +- .../kotlin/idea/stubs/MultiFileHighlightingTestGenerated.java | 2 +- .../jetbrains/kotlin/idea/stubs/ResolveByStubTestGenerated.java | 2 +- .../jetbrains/kotlin/idea/stubs/StubBuilderTestGenerated.java | 2 +- .../kotlin/psi/patternMatching/PsiUnifierTestGenerated.java | 2 +- .../kotlin/search/AnnotatedMembersSearchTestGenerated.java | 2 +- .../jetbrains/kotlin/search/InheritorsSearchTestGenerated.java | 2 +- .../jetbrains/kotlin/shortenRefs/ShortenRefsTestGenerated.java | 2 +- .../j2k/JavaToKotlinConverterForWebDemoTestGenerated.java | 2 +- .../kotlin/j2k/JavaToKotlinConverterMultiFileTestGenerated.java | 2 +- .../j2k/JavaToKotlinConverterSingleFileTestGenerated.java | 2 +- .../jps/build/DataContainerVersionChangedTestGenerated.java | 2 +- .../jps/build/IncrementalCacheVersionChangedTestGenerated.java | 2 +- .../kotlin/jps/build/IncrementalJsJpsTestGenerated.java | 2 +- .../kotlin/jps/build/IncrementalJvmJpsTestGenerated.java | 2 +- .../kotlin/jps/build/IncrementalLazyCachesTestGenerated.java | 2 +- .../kotlin/jps/build/JsKlibLookupTrackerTestGenerated.java | 2 +- .../kotlin/jps/build/JsLookupTrackerTestGenerated.java | 2 +- .../kotlin/jps/build/JvmLookupTrackerTestGenerated.java | 2 +- .../MultiplatformJpsTestWithGeneratedContentGenerated.java | 2 +- .../kotlin/jps/incremental/JsProtoComparisonTestGenerated.java | 2 +- .../kotlin/jps/incremental/JvmProtoComparisonTestGenerated.java | 2 +- .../org/jetbrains/kotlin/js/test/DceTestGenerated.java | 2 +- .../org/jetbrains/kotlin/js/test/JsLineNumberTestGenerated.java | 2 +- .../kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java | 2 +- .../js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java | 2 +- .../test/es6/semantics/IrJsCodegenInlineES6TestGenerated.java | 2 +- .../es6/semantics/IrJsTypeScriptExportES6TestGenerated.java | 2 +- .../kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java | 2 +- .../js/test/ir/semantics/IrJsCodegenBoxErrorTestGenerated.java | 2 +- .../js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java | 2 +- .../js/test/ir/semantics/IrJsCodegenInlineTestGenerated.java | 2 +- .../js/test/ir/semantics/IrJsTypeScriptExportTestGenerated.java | 2 +- .../jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java | 2 +- .../kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java | 2 +- .../kotlin/js/test/semantics/JsCodegenInlineTestGenerated.java | 2 +- .../test/semantics/JsLegacyPrimitiveArraysBoxTestGenerated.java | 2 +- .../test/semantics/LegacyJsTypeScriptExportTestGenerated.java | 2 +- .../js/test/semantics/OutputPrefixPostfixTestGenerated.java | 2 +- .../test/semantics/SourceMapGenerationSmokeTestGenerated.java | 2 +- .../js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java | 2 +- .../org/jetbrains/kotlin/kotlinp/test/KotlinpTestGenerated.java | 2 +- .../cli/ProjectTemplateBuildFileGenerationTestGenerated.java | 2 +- .../projectWizard/cli/YamlBuildFileGenerationTestGenerated.java | 2 +- .../nj2k/NewJavaToKotlinConverterMultiFileTestGenerated.java | 2 +- .../nj2k/NewJavaToKotlinConverterSingleFileTestGenerated.java | 2 +- .../nj2k/NewJavaToKotlinCopyPasteConversionTestGenerated.java | 2 +- .../TextNewJavaToKotlinCopyPasteConversionTestGenerated.java | 2 +- .../common/CommonConstraintCollectorTestGenerated.java | 2 +- .../inference/mutability/MutabilityInferenceTestGenerated.java | 2 +- .../nullability/NullabilityInferenceTestGenerated.java | 2 +- .../kotlin/allopen/BytecodeListingTestForAllOpenGenerated.java | 2 +- .../jetbrains/kotlin/android/parcel/ParcelBoxTestGenerated.java | 2 +- .../android/parcel/ParcelBytecodeListingTestGenerated.java | 2 +- .../kotlin/android/parcel/ParcelIrBoxTestGenerated.java | 2 +- .../android/parcel/ParcelIrBytecodeListingTestGenerated.java | 2 +- .../kotlin/android/synthetic/test/AndroidBoxTestGenerated.java | 2 +- .../synthetic/test/AndroidBytecodeShapeTestGenerated.java | 2 +- .../android/synthetic/test/AndroidIrBoxTestGenerated.java | 2 +- .../test/AndroidSyntheticPropertyDescriptorTestGenerated.java | 2 +- .../kotlin/fir/plugin/FirAllOpenDiagnosticTestGenerated.java | 2 +- .../jetbrains/kotlin/jvm/abi/CompareJvmAbiTestGenerated.java | 2 +- .../kotlin/jvm/abi/CompileAgainstJvmAbiTestGenerated.java | 2 +- .../jetbrains/kotlin/jvm/abi/JvmAbiContentTestGenerated.java | 2 +- .../kotlin/kapt/cli/test/ArgumentParsingTestGenerated.java | 2 +- .../kotlin/kapt/cli/test/KaptToolIntegrationTestGenerated.java | 2 +- .../kapt3/test/ClassFileToSourceStubConverterTestGenerated.java | 2 +- .../test/IrClassFileToSourceStubConverterTestGenerated.java | 2 +- .../kotlin/kapt3/test/IrKotlinKaptContextTestGenerated.java | 2 +- .../kotlin/kapt3/test/KotlinKaptContextTestGenerated.java | 2 +- .../SerializationIrBytecodeListingTestGenerated.java | 2 +- .../SerializationPluginBytecodeListingTestGenerated.java | 2 +- .../SerializationPluginDiagnosticTestGenerated.java | 2 +- .../kotlin/noarg/BlackBoxCodegenTestForNoArgGenerated.java | 2 +- .../kotlin/noarg/BytecodeListingTestForNoArgGenerated.java | 2 +- .../kotlin/noarg/DiagnosticsTestForNoArgGenerated.java | 2 +- .../kotlin/noarg/IrBlackBoxCodegenTestForNoArgGenerated.java | 2 +- .../kotlin/noarg/IrBytecodeListingTestForNoArgGenerated.java | 2 +- .../kotlin/parcelize/test/ParcelizeBoxTestGenerated.java | 2 +- .../parcelize/test/ParcelizeBytecodeListingTestGenerated.java | 2 +- .../kotlin/parcelize/test/ParcelizeIrBoxTestGenerated.java | 2 +- .../parcelize/test/ParcelizeIrBytecodeListingTestGenerated.java | 2 +- .../kotlin/pacelize/ide/test/ParcelizeCheckerTestGenerated.java | 2 +- .../pacelize/ide/test/ParcelizeQuickFixTestGenerated.java | 2 +- .../samWithReceiver/SamWithReceiverScriptTestGenerated.java | 2 +- .../kotlin/samWithReceiver/SamWithReceiverTestGenerated.java | 2 +- 792 files changed, 792 insertions(+), 792 deletions(-) diff --git a/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/FirLoadCompiledKotlinGenerated.java b/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/FirLoadCompiledKotlinGenerated.java index 8dc5b0fc3ac..a8d4d67ff56 100644 --- a/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/FirLoadCompiledKotlinGenerated.java +++ b/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/FirLoadCompiledKotlinGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/LazyBodyIsNotTouchedTilContractsPhaseTestGenerated.java b/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/LazyBodyIsNotTouchedTilContractsPhaseTestGenerated.java index aecd9bc650b..8520639a6dc 100644 --- a/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/LazyBodyIsNotTouchedTilContractsPhaseTestGenerated.java +++ b/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/LazyBodyIsNotTouchedTilContractsPhaseTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/java/FirOldFrontendLightClassesTestGenerated.java b/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/java/FirOldFrontendLightClassesTestGenerated.java index bbc3b51fae9..a6e288c3c71 100644 --- a/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/java/FirOldFrontendLightClassesTestGenerated.java +++ b/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/java/FirOldFrontendLightClassesTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/java/FirTypeEnhancementTestGenerated.java b/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/java/FirTypeEnhancementTestGenerated.java index 6019dee58ec..8ac45866e5d 100644 --- a/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/java/FirTypeEnhancementTestGenerated.java +++ b/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/java/FirTypeEnhancementTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/java/OwnFirTypeEnhancementTestGenerated.java b/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/java/OwnFirTypeEnhancementTestGenerated.java index e5f2caf42bb..7c77d5c6f3c 100644 --- a/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/java/OwnFirTypeEnhancementTestGenerated.java +++ b/compiler/fir/analysis-tests/legacy-fir-tests/tests-gen/org/jetbrains/kotlin/fir/java/OwnFirTypeEnhancementTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticTestGenerated.java index 3d370424d45..65e5c6b13af 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticsWithLightTreeTestGenerated.java index aa281345df5..9881f14995a 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticsWithLightTreeTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticsWithLightTreeTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java index f32ef64be2e..695e899ecf0 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/ComposedDeclarationCheckers.kt b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/ComposedDeclarationCheckers.kt index 9e73df75a4c..83d9aa0b348 100644 --- a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/ComposedDeclarationCheckers.kt +++ b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/ComposedDeclarationCheckers.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/DeclarationCheckers.kt b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/DeclarationCheckers.kt index 34805ab172c..8f816c66aa5 100644 --- a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/DeclarationCheckers.kt +++ b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/DeclarationCheckers.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerAliases.kt b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerAliases.kt index 72d3a5cf709..8e34b1f21d6 100644 --- a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerAliases.kt +++ b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerAliases.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/expression/ComposedExpressionCheckers.kt b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/expression/ComposedExpressionCheckers.kt index 216ad71593b..842faa079dc 100644 --- a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/expression/ComposedExpressionCheckers.kt +++ b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/expression/ComposedExpressionCheckers.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/expression/ExpressionCheckers.kt b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/expression/ExpressionCheckers.kt index 4b4d617e0b8..73101389aa4 100644 --- a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/expression/ExpressionCheckers.kt +++ b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/expression/ExpressionCheckers.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirExpressionCheckerAliases.kt b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirExpressionCheckerAliases.kt index 90798945283..5ff7f6070cd 100644 --- a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirExpressionCheckerAliases.kt +++ b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirExpressionCheckerAliases.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/FirCompileKotlinAgainstKotlinTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/FirCompileKotlinAgainstKotlinTestGenerated.java index 8ed3297adee..58b13168908 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/FirCompileKotlinAgainstKotlinTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/FirCompileKotlinAgainstKotlinTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxAgainstJavaCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxAgainstJavaCodegenTestGenerated.java index c6a091b2d3b..4fb4b1e293d 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxAgainstJavaCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxAgainstJavaCodegenTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java index f0c6833e054..619d5bb56ff 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxInlineCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxInlineCodegenTestGenerated.java index f3cef85278f..106e47b9d0e 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxInlineCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxInlineCodegenTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBytecodeTextTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBytecodeTextTestGenerated.java index f28a3d025a8..1f4d0f08c27 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBytecodeTextTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBytecodeTextTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/fir/Fir2IrTextTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/fir/Fir2IrTextTestGenerated.java index 56ed7cdea14..5384de8c033 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/fir/Fir2IrTextTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/fir/Fir2IrTextTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/raw-fir/light-tree2fir/tests-gen/org/jetbrains/kotlin/fir/lightTree/LightTree2FirConverterTestCaseGenerated.java b/compiler/fir/raw-fir/light-tree2fir/tests-gen/org/jetbrains/kotlin/fir/lightTree/LightTree2FirConverterTestCaseGenerated.java index 7cc1e21e9cb..a4cc0132c4b 100644 --- a/compiler/fir/raw-fir/light-tree2fir/tests-gen/org/jetbrains/kotlin/fir/lightTree/LightTree2FirConverterTestCaseGenerated.java +++ b/compiler/fir/raw-fir/light-tree2fir/tests-gen/org/jetbrains/kotlin/fir/lightTree/LightTree2FirConverterTestCaseGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/PartialRawFirBuilderTestCaseGenerated.java b/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/PartialRawFirBuilderTestCaseGenerated.java index 5af04f5c42c..b67c35c5e36 100644 --- a/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/PartialRawFirBuilderTestCaseGenerated.java +++ b/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/PartialRawFirBuilderTestCaseGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderLazyBodiesTestCaseGenerated.java b/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderLazyBodiesTestCaseGenerated.java index a3fa6843cdd..3eeef1dfd60 100644 --- a/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderLazyBodiesTestCaseGenerated.java +++ b/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderLazyBodiesTestCaseGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderSourceElementMappingTestCaseGenerated.java b/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderSourceElementMappingTestCaseGenerated.java index 8d1e35e5481..08775c304af 100644 --- a/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderSourceElementMappingTestCaseGenerated.java +++ b/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderSourceElementMappingTestCaseGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderTestCaseGenerated.java b/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderTestCaseGenerated.java index 313e88da9e3..14eb5f55b6d 100644 --- a/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderTestCaseGenerated.java +++ b/compiler/fir/raw-fir/psi2fir/tests-gen/org/jetbrains/kotlin/fir/builder/RawFirBuilderTestCaseGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirAnnotationContainer.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirAnnotationContainer.kt index ae454f6794a..a15707d3ef0 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirAnnotationContainer.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirAnnotationContainer.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirElement.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirElement.kt index 3bccfeccb5c..e1bf6d31110 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirElement.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirElement.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirLabel.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirLabel.kt index 37a028b33f6..bc4b0949dcb 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirLabel.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirLabel.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirSymbolOwner.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirSymbolOwner.kt index db1a0aa38ff..ee9f92ef11c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirSymbolOwner.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirSymbolOwner.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirTargetElement.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirTargetElement.kt index 6ed78b781b6..102eadd8a98 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirTargetElement.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/FirTargetElement.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/builder/FirAnnotationContainerBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/builder/FirAnnotationContainerBuilder.kt index 1147c71a49b..4f99bfe9faf 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/builder/FirAnnotationContainerBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/builder/FirAnnotationContainerBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/builder/FirLabelBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/builder/FirLabelBuilder.kt index 63d0eddf1b7..a28bb3a66b8 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/builder/FirLabelBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/builder/FirLabelBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirContractDescription.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirContractDescription.kt index 3c200fdbed3..0f5da0f55fe 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirContractDescription.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirContractDescription.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirEffectDeclaration.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirEffectDeclaration.kt index e915dc2527b..b38b2292bf5 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirEffectDeclaration.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirEffectDeclaration.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirLegacyRawContractDescription.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirLegacyRawContractDescription.kt index 1f3a2817314..cbb2cf506b7 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirLegacyRawContractDescription.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirLegacyRawContractDescription.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirRawContractDescription.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirRawContractDescription.kt index c8c5db0345d..f58872de6f5 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirRawContractDescription.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirRawContractDescription.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirResolvedContractDescription.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirResolvedContractDescription.kt index f5bf67fb1be..4166c3069fd 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirResolvedContractDescription.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/FirResolvedContractDescription.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirEffectDeclarationBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirEffectDeclarationBuilder.kt index 5bb8e9ebc58..73a0f22d601 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirEffectDeclarationBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirEffectDeclarationBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirLegacyRawContractDescriptionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirLegacyRawContractDescriptionBuilder.kt index 0de52b7a3e5..81ce9162011 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirLegacyRawContractDescriptionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirLegacyRawContractDescriptionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirRawContractDescriptionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirRawContractDescriptionBuilder.kt index 54b330c5016..ba633334a3d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirRawContractDescriptionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirRawContractDescriptionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirResolvedContractDescriptionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirResolvedContractDescriptionBuilder.kt index bf9a4036fb1..73376740045 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirResolvedContractDescriptionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/builder/FirResolvedContractDescriptionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirEffectDeclarationImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirEffectDeclarationImpl.kt index 9ab39cf2bf2..edfeecc2c00 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirEffectDeclarationImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirEffectDeclarationImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirLegacyRawContractDescriptionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirLegacyRawContractDescriptionImpl.kt index 9d295a383a8..5e154977fa4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirLegacyRawContractDescriptionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirLegacyRawContractDescriptionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirRawContractDescriptionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirRawContractDescriptionImpl.kt index 7444de4bd50..a99cc84bb39 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirRawContractDescriptionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirRawContractDescriptionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirResolvedContractDescriptionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirResolvedContractDescriptionImpl.kt index 36aa0504641..992f5fe73a8 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirResolvedContractDescriptionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/contracts/impl/FirResolvedContractDescriptionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnnotatedDeclaration.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnnotatedDeclaration.kt index 054294dbc55..db1777d5fb3 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnnotatedDeclaration.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnnotatedDeclaration.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt index 37e427ba79c..c9074ffa35c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousInitializer.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousInitializer.kt index 180c57e1680..133e42eda67 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousInitializer.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousInitializer.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousObject.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousObject.kt index e7563644672..4733b0d2c85 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousObject.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousObject.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableDeclaration.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableDeclaration.kt index ff25b0073d0..19ecdd4e190 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableDeclaration.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableDeclaration.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableMemberDeclaration.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableMemberDeclaration.kt index a2f51cbd82b..003d3d2bf05 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableMemberDeclaration.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableMemberDeclaration.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClass.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClass.kt index f57cc2d43d1..6e7e2bbf1cd 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClass.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClass.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClassLikeDeclaration.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClassLikeDeclaration.kt index d2a061653bb..1bd384e9d16 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClassLikeDeclaration.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClassLikeDeclaration.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt index d28a5fed3f3..cf644f6a1f7 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirContractDescriptionOwner.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirContractDescriptionOwner.kt index 5633247edf9..b2279b6c488 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirContractDescriptionOwner.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirContractDescriptionOwner.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirControlFlowGraphOwner.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirControlFlowGraphOwner.kt index 5f76d1110f5..f68a4cbb559 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirControlFlowGraphOwner.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirControlFlowGraphOwner.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirDeclaration.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirDeclaration.kt index fba5441d0c4..abf9792e9ec 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirDeclaration.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirDeclaration.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirDeclarationStatus.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirDeclarationStatus.kt index a35b1d7bb82..ea4334ea13d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirDeclarationStatus.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirDeclarationStatus.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt index eb8f5cc8c5f..ed597d10738 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt index 7277f4bac30..fb06b6cd522 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt index 5110b8f2faa..081dcc7eaf9 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt index 8fc02aa2cf3..37df599d1c4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFile.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFile.kt index 7d142ac5757..94c362e8894 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFile.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFile.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt index e16231f64b7..1cb4b406e74 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirImport.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirImport.kt index 8a519251f5b..9a55018b1f0 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirImport.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirImport.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirMemberDeclaration.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirMemberDeclaration.kt index ec888870475..5d947eb29a9 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirMemberDeclaration.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirMemberDeclaration.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt index 05e024e3a86..fee9a8d9a39 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt index 4fd2da4e163..e9d9dede216 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt index 1bdd29f088f..a8d5b906dae 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirResolvedDeclarationStatus.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirResolvedDeclarationStatus.kt index 35137944cfb..5098de97502 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirResolvedDeclarationStatus.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirResolvedDeclarationStatus.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirResolvedImport.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirResolvedImport.kt index 5fa5a0e7592..d8d5c9576a7 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirResolvedImport.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirResolvedImport.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt index 5db64495e60..e27ce2b594c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeAlias.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeAlias.kt index 2a2cbce0619..c26af0d1080 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeAlias.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeAlias.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParameter.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParameter.kt index d76e62dffa1..cc5075c7449 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParameter.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParameter.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParameterRef.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParameterRef.kt index 9ea545e6969..cd18d625d0d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParameterRef.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParameterRef.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParameterRefsOwner.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParameterRefsOwner.kt index 0cacd6d97fb..9afb114295a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParameterRefsOwner.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParameterRefsOwner.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParametersOwner.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParametersOwner.kt index 940f6dbc999..07cec0da9d2 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParametersOwner.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParametersOwner.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypedDeclaration.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypedDeclaration.kt index d66d119049f..72d486c9a5b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypedDeclaration.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypedDeclaration.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt index 3d57a8e095e..36d1b5a8055 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt index 538913ae668..485dcf8ca73 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt index 1760228750f..8ae86779a2d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAbstractConstructorBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt index 819e956d8a2..cd44d448f9c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousFunctionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousInitializerBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousInitializerBuilder.kt index f0def6e0f85..3f3534183f7 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousInitializerBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousInitializerBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt index ca2c68ee082..7ecc59c9f44 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirClassBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirClassBuilder.kt index 450d502b0d4..1b2ecf687ff 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirClassBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirClassBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructedClassTypeParameterRefBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructedClassTypeParameterRefBuilder.kt index fd538ab491c..5ff108d3924 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructedClassTypeParameterRefBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructedClassTypeParameterRefBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructorBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructorBuilder.kt index 8bc8af44ab4..a1a8a10ff41 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructorBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirConstructorBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDefaultSetterValueParameterBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDefaultSetterValueParameterBuilder.kt index dcf6dcbbd6c..fe1bfb5f228 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDefaultSetterValueParameterBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDefaultSetterValueParameterBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirEnumEntryBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirEnumEntryBuilder.kt index f3a52a76cf2..a13981a5c97 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirEnumEntryBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirEnumEntryBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorFunctionBuilder.kt index 11490c8aa37..f2350165656 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorFunctionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorPropertyBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorPropertyBuilder.kt index a98d9650e51..f3d98151815 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorPropertyBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirErrorPropertyBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt index bb7132a48e6..eeec5befdb9 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFileBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFileBuilder.kt index dc462f9dd01..859e46178e4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFileBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFileBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt index 903c6591396..648c16db9c4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirImportBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirImportBuilder.kt index dffdd2475e9..c169a3c6552 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirImportBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirImportBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirOuterClassTypeParameterRefBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirOuterClassTypeParameterRefBuilder.kt index d7e752a0d03..4c0f983890e 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirOuterClassTypeParameterRefBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirOuterClassTypeParameterRefBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPrimaryConstructorBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPrimaryConstructorBuilder.kt index 5ad8596fd15..ed98e933a6a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPrimaryConstructorBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPrimaryConstructorBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt index 2f541f39fca..e950c607417 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyAccessorBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt index 8c0b709c20f..38b4ce18516 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirPropertyBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt index 6e8fe7103e9..5895913f15a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirResolvedImportBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirResolvedImportBuilder.kt index ea774c00db4..2f03342417e 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirResolvedImportBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirResolvedImportBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt index 6ecc87329da..f4ffe1ba34f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirSimpleFunctionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeAliasBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeAliasBuilder.kt index cefaeabaea5..4458c690cab 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeAliasBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeAliasBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeParameterBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeParameterBuilder.kt index 163cdbd3d05..330a5ff75c4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeParameterBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeParameterBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeParameterRefsOwnerBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeParameterRefsOwnerBuilder.kt index 22f40034189..60f84778002 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeParameterRefsOwnerBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeParameterRefsOwnerBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeParametersOwnerBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeParametersOwnerBuilder.kt index 8e46c8a9c9c..6a61f2b8a58 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeParametersOwnerBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirTypeParametersOwnerBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirValueParameterBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirValueParameterBuilder.kt index 2c7fe43fc43..01a2497dd11 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirValueParameterBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirValueParameterBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt index 504624b3952..892910a0edc 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousFunctionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousInitializerImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousInitializerImpl.kt index 5e2f51d590e..22c7dd7221b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousInitializerImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousInitializerImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt index d615b317ec7..4b454328ca4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructedClassTypeParameterRef.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructedClassTypeParameterRef.kt index b4ec326a26c..fb1b8082bd7 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructedClassTypeParameterRef.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructedClassTypeParameterRef.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt index 63bd1d946c7..245006bf64b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirConstructorImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt index 4984c612c9b..fc29e7767ac 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirDefaultSetterValueParameter.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt index e2c9a19c9a1..befb864ad21 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirEnumEntryImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt index bf1b2979416..7c5147f53dd 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorFunctionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorPropertyImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorPropertyImpl.kt index 4496e0861a0..e85bcf49249 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorPropertyImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirErrorPropertyImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt index 8708335687c..2ce4ce50aa6 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFileImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFileImpl.kt index ba7a625f3a5..763006fa1b7 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFileImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFileImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirImportImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirImportImpl.kt index 0a915f3cd99..4949b61b8dc 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirImportImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirImportImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirOuterClassTypeParameterRef.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirOuterClassTypeParameterRef.kt index 0f713c57bf5..7829b8c4ea8 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirOuterClassTypeParameterRef.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirOuterClassTypeParameterRef.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPrimaryConstructor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPrimaryConstructor.kt index 268d596c66a..bf47f268595 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPrimaryConstructor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPrimaryConstructor.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt index 808c6698755..1f2a17c8cb8 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyAccessorImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt index 7f8849fb8f0..8be811bafb3 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirPropertyImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt index adb6bee5309..bff65e9a40e 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedImportImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedImportImpl.kt index 72f43626e2a..2429bce03e2 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedImportImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirResolvedImportImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt index ed3d74f67d4..80a2e7d4dc7 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirTypeAliasImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirTypeAliasImpl.kt index 7cfda68677c..c2450c724bf 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirTypeAliasImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirTypeAliasImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirTypeParameterImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirTypeParameterImpl.kt index 0d48ca6e52e..7261aaca6d4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirTypeParameterImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirTypeParameterImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt index 760da4f6c9d..1fe2d7f60c3 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirValueParameterImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/diagnostics/FirDiagnosticHolder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/diagnostics/FirDiagnosticHolder.kt index a4665231ef9..75c442dc311 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/diagnostics/FirDiagnosticHolder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/diagnostics/FirDiagnosticHolder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirAnnotationCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirAnnotationCall.kt index 14452fc4010..36b490eae7f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirAnnotationCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirAnnotationCall.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirArgumentList.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirArgumentList.kt index 04d8c2afc74..69b40d82675 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirArgumentList.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirArgumentList.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirArrayOfCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirArrayOfCall.kt index 16043c20735..b6e5f9851f4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirArrayOfCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirArrayOfCall.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirAssignmentOperatorStatement.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirAssignmentOperatorStatement.kt index 538d1911d68..4493f05a6cd 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirAssignmentOperatorStatement.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirAssignmentOperatorStatement.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirAugmentedArraySetCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirAugmentedArraySetCall.kt index d70c2204f70..0d615b2b9fc 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirAugmentedArraySetCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirAugmentedArraySetCall.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirBinaryLogicExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirBinaryLogicExpression.kt index e5f23558eac..db4f8c71231 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirBinaryLogicExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirBinaryLogicExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirBlock.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirBlock.kt index eb1f434798f..2db890bf3f2 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirBlock.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirBlock.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirBreakExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirBreakExpression.kt index e7854ff9873..61530fc1cae 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirBreakExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirBreakExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCall.kt index f17e297aa6f..f3082ecf919 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCall.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCallableReferenceAccess.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCallableReferenceAccess.kt index f0dd7c209fe..52868361b9d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCallableReferenceAccess.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCallableReferenceAccess.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCatch.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCatch.kt index a0598a5b316..db84b03e64f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCatch.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCatch.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCheckNotNullCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCheckNotNullCall.kt index a647f3c12ac..a45eb11b5b1 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCheckNotNullCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCheckNotNullCall.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCheckedSafeCallSubject.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCheckedSafeCallSubject.kt index 28a176521ee..01194ec40e9 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCheckedSafeCallSubject.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCheckedSafeCallSubject.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirClassReferenceExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirClassReferenceExpression.kt index 4f43386c5fb..fdd71d32bf2 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirClassReferenceExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirClassReferenceExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirComparisonExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirComparisonExpression.kt index 3884678b96b..8afe9bc9606 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirComparisonExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirComparisonExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirComponentCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirComponentCall.kt index 4032b6aeaae..ee71186fb9c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirComponentCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirComponentCall.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirConstExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirConstExpression.kt index dd97203b1ca..e6079ee0978 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirConstExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirConstExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirContinueExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirContinueExpression.kt index 6a435bc183e..b7edca08998 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirContinueExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirContinueExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirDelegatedConstructorCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirDelegatedConstructorCall.kt index 002e934d14a..a29ef2df1ee 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirDelegatedConstructorCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirDelegatedConstructorCall.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirDoWhileLoop.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirDoWhileLoop.kt index 87819e9c81a..98f969b5fa1 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirDoWhileLoop.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirDoWhileLoop.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirElvisExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirElvisExpression.kt index 312ac4732d3..b99de9e13ad 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirElvisExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirElvisExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirEqualityOperatorCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirEqualityOperatorCall.kt index 72a3ec19244..3f62111b3b6 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirEqualityOperatorCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirEqualityOperatorCall.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirErrorExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirErrorExpression.kt index d87e3a13b6b..61526bd57cc 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirErrorExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirErrorExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirErrorLoop.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirErrorLoop.kt index 65d954029f7..1f23373e3b3 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirErrorLoop.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirErrorLoop.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirErrorResolvedQualifier.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirErrorResolvedQualifier.kt index 6c63028161b..3bd8faf6c9f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirErrorResolvedQualifier.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirErrorResolvedQualifier.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpression.kt index 42f9e7c3590..8e64b15ca15 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcast.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcast.kt index b9434278072..be45e8aee4a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcast.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcast.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirFunctionCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirFunctionCall.kt index c2b090536e2..f463c4c2948 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirFunctionCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirFunctionCall.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirGetClassCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirGetClassCall.kt index 9aa51e1ac19..1d33c1e2d2a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirGetClassCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirGetClassCall.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirImplicitInvokeCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirImplicitInvokeCall.kt index 34e39b039d7..59431271d13 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirImplicitInvokeCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirImplicitInvokeCall.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirJump.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirJump.kt index cd802d73288..5434dfbde3d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirJump.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirJump.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirLambdaArgumentExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirLambdaArgumentExpression.kt index d718b29c034..8d47a28e930 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirLambdaArgumentExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirLambdaArgumentExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirLoop.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirLoop.kt index 8f8e75974a0..4d3895d5833 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirLoop.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirLoop.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirLoopJump.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirLoopJump.kt index 3944d2df64f..7f62f66d8bb 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirLoopJump.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirLoopJump.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirNamedArgumentExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirNamedArgumentExpression.kt index 13f3457544b..61376411bdc 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirNamedArgumentExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirNamedArgumentExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccess.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccess.kt index b7baf44e35f..117a1e5f775 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccess.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccess.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccessExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccessExpression.kt index ff1ae0a61c0..d25a4eb6048 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccessExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccessExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirResolvable.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirResolvable.kt index fad2ef9dcd7..87a22312269 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirResolvable.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirResolvable.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirResolvedQualifier.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirResolvedQualifier.kt index 59ea29287c6..3bf76b2c2d6 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirResolvedQualifier.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirResolvedQualifier.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirResolvedReifiedParameterReference.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirResolvedReifiedParameterReference.kt index 2017ab2d5b3..2c1ca2c7ac3 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirResolvedReifiedParameterReference.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirResolvedReifiedParameterReference.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirReturnExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirReturnExpression.kt index 1c2963da218..f9ffbe4faed 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirReturnExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirReturnExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirSafeCallExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirSafeCallExpression.kt index 29e9089e6d6..e1ba8ba64cf 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirSafeCallExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirSafeCallExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirSpreadArgumentExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirSpreadArgumentExpression.kt index d46c25e0095..b514df4b57b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirSpreadArgumentExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirSpreadArgumentExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirStatement.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirStatement.kt index bfe2f7f5e9e..dfbaef2e90d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirStatement.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirStatement.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirStringConcatenationCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirStringConcatenationCall.kt index 60e4c65f6d7..173b4065fab 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirStringConcatenationCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirStringConcatenationCall.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirThisReceiverExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirThisReceiverExpression.kt index ecf45423c0b..b046b14bae4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirThisReceiverExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirThisReceiverExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirThrowExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirThrowExpression.kt index e68d06e6643..a5420283ee9 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirThrowExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirThrowExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirTryExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirTryExpression.kt index 77ea7029f28..64bfe7ce52b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirTryExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirTryExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirTypeOperatorCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirTypeOperatorCall.kt index 5586804bd0d..05163482283 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirTypeOperatorCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirTypeOperatorCall.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirVarargArgumentsExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirVarargArgumentsExpression.kt index e791c92ac06..ae43a6a94be 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirVarargArgumentsExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirVarargArgumentsExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirVariableAssignment.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirVariableAssignment.kt index 8cd11777768..64b60dfcc87 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirVariableAssignment.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirVariableAssignment.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhenBranch.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhenBranch.kt index 0db125da853..1f86663595b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhenBranch.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhenBranch.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhenExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhenExpression.kt index 11520ae17d5..b8f1338dd76 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhenExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhenExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhenSubjectExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhenSubjectExpression.kt index 7eaf6d48f0c..8536208a905 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhenSubjectExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhenSubjectExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhileLoop.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhileLoop.kt index a2c1caa4a6d..b23b0f2e6e1 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhileLoop.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhileLoop.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWrappedArgumentExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWrappedArgumentExpression.kt index e11a6a35ecc..2f16d913a84 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWrappedArgumentExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWrappedArgumentExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWrappedDelegateExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWrappedDelegateExpression.kt index 52cdf4402d9..bcf62bb0bc2 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWrappedDelegateExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWrappedDelegateExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWrappedExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWrappedExpression.kt index 23f5c8859ce..b0e6780643a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWrappedExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWrappedExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAbstractFunctionCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAbstractFunctionCallBuilder.kt index 614d2c27cfa..6a4c82083a4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAbstractFunctionCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAbstractFunctionCallBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAbstractResolvedQualifierBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAbstractResolvedQualifierBuilder.kt index 67ddc59c8d2..ea06b548ae1 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAbstractResolvedQualifierBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAbstractResolvedQualifierBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAnnotationCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAnnotationCallBuilder.kt index 754c6b1e1a1..60cae8cad0b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAnnotationCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAnnotationCallBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirArgumentListBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirArgumentListBuilder.kt index 9a8948fcf16..8734418e80a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirArgumentListBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirArgumentListBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirArrayOfCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirArrayOfCallBuilder.kt index 0f13c2a1049..fb369a3d27c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirArrayOfCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirArrayOfCallBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAssignmentOperatorStatementBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAssignmentOperatorStatementBuilder.kt index 5d9542895b6..85bd224bb73 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAssignmentOperatorStatementBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAssignmentOperatorStatementBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAugmentedArraySetCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAugmentedArraySetCallBuilder.kt index 45d08b90408..4afe7b51eab 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAugmentedArraySetCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAugmentedArraySetCallBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirBinaryLogicExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirBinaryLogicExpressionBuilder.kt index 584b210af1a..6496c6bf568 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirBinaryLogicExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirBinaryLogicExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirBlockBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirBlockBuilder.kt index 2cea870f1e3..e1d69880ac2 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirBlockBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirBlockBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirBreakExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirBreakExpressionBuilder.kt index adad270c9b6..1e7895b5b1f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirBreakExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirBreakExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCallBuilder.kt index 34e14bdc4fa..1de4686606b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCallBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCallableReferenceAccessBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCallableReferenceAccessBuilder.kt index c145ac64825..3b3a1b6edf3 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCallableReferenceAccessBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCallableReferenceAccessBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCatchBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCatchBuilder.kt index 8d31fc3b29b..c158b689449 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCatchBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCatchBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCheckNotNullCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCheckNotNullCallBuilder.kt index 186173db240..8679848ac6e 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCheckNotNullCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCheckNotNullCallBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCheckedSafeCallSubjectBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCheckedSafeCallSubjectBuilder.kt index e7c86e31bd8..5dd430fd83e 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCheckedSafeCallSubjectBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCheckedSafeCallSubjectBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirClassReferenceExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirClassReferenceExpressionBuilder.kt index b3bd3cc94c4..1ed5e53d0b9 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirClassReferenceExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirClassReferenceExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirComparisonExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirComparisonExpressionBuilder.kt index 5106e5c3521..5a50b91d37d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirComparisonExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirComparisonExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirComponentCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirComponentCallBuilder.kt index 61b1e2c3cce..7952af152a7 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirComponentCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirComponentCallBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirContinueExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirContinueExpressionBuilder.kt index dfca2aee6ee..451d32a9621 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirContinueExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirContinueExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirDelegatedConstructorCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirDelegatedConstructorCallBuilder.kt index 62fd7eabeb7..476cdf3ccc1 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirDelegatedConstructorCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirDelegatedConstructorCallBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirDoWhileLoopBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirDoWhileLoopBuilder.kt index f5560189774..5b038ea9a60 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirDoWhileLoopBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirDoWhileLoopBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirElseIfTrueConditionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirElseIfTrueConditionBuilder.kt index a958cacc09d..9ebed55b7ff 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirElseIfTrueConditionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirElseIfTrueConditionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirElvisExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirElvisExpressionBuilder.kt index 78cf552a51e..b4c002c4b64 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirElvisExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirElvisExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirEmptyExpressionBlockBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirEmptyExpressionBlockBuilder.kt index bfb112fabe3..5accfcd5205 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirEmptyExpressionBlockBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirEmptyExpressionBlockBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirEqualityOperatorCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirEqualityOperatorCallBuilder.kt index 851637d3972..1755ce2b27b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirEqualityOperatorCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirEqualityOperatorCallBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirErrorExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirErrorExpressionBuilder.kt index 059e642f2bf..ee1a967baf8 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirErrorExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirErrorExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirErrorLoopBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirErrorLoopBuilder.kt index 2bd7bd2e3a0..21bf012bd05 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirErrorLoopBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirErrorLoopBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirErrorResolvedQualifierBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirErrorResolvedQualifierBuilder.kt index b2f33550a44..3ad2f4459d1 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirErrorResolvedQualifierBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirErrorResolvedQualifierBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionBuilder.kt index b6c41f39ddb..d47caa61df7 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionStubBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionStubBuilder.kt index 5b5979f6d50..ff327fa0607 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionStubBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionStubBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirFunctionCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirFunctionCallBuilder.kt index 96ecfd46c4f..37482a911f4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirFunctionCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirFunctionCallBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirGetClassCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirGetClassCallBuilder.kt index 69ecd68faa1..5bcda774442 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirGetClassCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirGetClassCallBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirImplicitInvokeCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirImplicitInvokeCallBuilder.kt index 387ffd74179..80d5a379b56 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirImplicitInvokeCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirImplicitInvokeCallBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLambdaArgumentExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLambdaArgumentExpressionBuilder.kt index 04e034746a6..471923b3f4e 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLambdaArgumentExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLambdaArgumentExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLazyBlockBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLazyBlockBuilder.kt index 34fad2b5a6f..b36aa241393 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLazyBlockBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLazyBlockBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLazyExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLazyExpressionBuilder.kt index 8e69a73cfd0..3c4fedc405e 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLazyExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLazyExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLoopBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLoopBuilder.kt index cb3ab5a1fe9..c5d16402273 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLoopBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLoopBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLoopJumpBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLoopJumpBuilder.kt index 0c19f5f9270..6ac1963dbf9 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLoopJumpBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirLoopJumpBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirNamedArgumentExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirNamedArgumentExpressionBuilder.kt index 578d8673a1e..7b93f4e004d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirNamedArgumentExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirNamedArgumentExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirQualifiedAccessBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirQualifiedAccessBuilder.kt index ede4da1cf66..9d5eb4fd45f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirQualifiedAccessBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirQualifiedAccessBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirQualifiedAccessExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirQualifiedAccessExpressionBuilder.kt index a22c71fa5a9..e9a584660fe 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirQualifiedAccessExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirQualifiedAccessExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirResolvedQualifierBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirResolvedQualifierBuilder.kt index edb069cbf9b..524574e0954 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirResolvedQualifierBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirResolvedQualifierBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirResolvedReifiedParameterReferenceBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirResolvedReifiedParameterReferenceBuilder.kt index 2ef9e39f3cc..4a4f98bfd31 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirResolvedReifiedParameterReferenceBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirResolvedReifiedParameterReferenceBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirReturnExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirReturnExpressionBuilder.kt index 94af6855686..7582f8d96f4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirReturnExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirReturnExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirSafeCallExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirSafeCallExpressionBuilder.kt index 0b337328a35..e0c9a6e8677 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirSafeCallExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirSafeCallExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirSpreadArgumentExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirSpreadArgumentExpressionBuilder.kt index 66f72d057d6..6499c7df7d2 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirSpreadArgumentExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirSpreadArgumentExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirStringConcatenationCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirStringConcatenationCallBuilder.kt index 05723b8cc15..0f7cb3bfc87 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirStringConcatenationCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirStringConcatenationCallBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirThisReceiverExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirThisReceiverExpressionBuilder.kt index fa123c634ac..6b48a999d7c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirThisReceiverExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirThisReceiverExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirThrowExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirThrowExpressionBuilder.kt index e5f9f6714cb..a90ca5efa56 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirThrowExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirThrowExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirTryExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirTryExpressionBuilder.kt index df894f0951e..95c588aed0e 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirTryExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirTryExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirTypeOperatorCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirTypeOperatorCallBuilder.kt index e63a2a0030f..2fa1a6fcbae 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirTypeOperatorCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirTypeOperatorCallBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirUnitExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirUnitExpressionBuilder.kt index 011ffd3de15..df034b25a3d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirUnitExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirUnitExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirVarargArgumentsExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirVarargArgumentsExpressionBuilder.kt index 09f892e84ed..066ae3c33a9 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirVarargArgumentsExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirVarargArgumentsExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirVariableAssignmentBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirVariableAssignmentBuilder.kt index c5aa91a84cc..6c658c48abe 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirVariableAssignmentBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirVariableAssignmentBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhenBranchBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhenBranchBuilder.kt index 65b00a1b33d..b92b9f966a5 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhenBranchBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhenBranchBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhenExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhenExpressionBuilder.kt index 3dc45441b35..1c7b74c6554 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhenExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhenExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhenSubjectExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhenSubjectExpressionBuilder.kt index 1531a0d4fd8..6b3c89e72f2 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhenSubjectExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhenSubjectExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhileLoopBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhileLoopBuilder.kt index ee39a8d2f8b..17efe08b4ab 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhileLoopBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhileLoopBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWrappedDelegateExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWrappedDelegateExpressionBuilder.kt index 45bf6a0eb86..5057fad5bdd 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWrappedDelegateExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWrappedDelegateExpressionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirAnnotationCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirAnnotationCallImpl.kt index 899fff5803d..710e1c997ef 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirAnnotationCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirAnnotationCallImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirArgumentListImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirArgumentListImpl.kt index 8c6df6e2f34..3e57f13a075 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirArgumentListImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirArgumentListImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirArrayOfCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirArrayOfCallImpl.kt index 618fa8c0f94..c936c0109fc 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirArrayOfCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirArrayOfCallImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirAssignmentOperatorStatementImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirAssignmentOperatorStatementImpl.kt index 360d9d48b52..37ae9fdc110 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirAssignmentOperatorStatementImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirAssignmentOperatorStatementImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirAugmentedArraySetCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirAugmentedArraySetCallImpl.kt index 7dce6f9e947..c65d94f53d8 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirAugmentedArraySetCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirAugmentedArraySetCallImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirBinaryLogicExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirBinaryLogicExpressionImpl.kt index 1cb3c416cc1..94c5a8aaf4a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirBinaryLogicExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirBinaryLogicExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirBlockImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirBlockImpl.kt index b68cd6b4f5e..12e7635a005 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirBlockImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirBlockImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirBreakExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirBreakExpressionImpl.kt index 63b9f961aa2..a1b8ac153ec 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirBreakExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirBreakExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCallableReferenceAccessImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCallableReferenceAccessImpl.kt index fdf15f3fbba..ea52d7f98d4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCallableReferenceAccessImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCallableReferenceAccessImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCatchImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCatchImpl.kt index defd218ca42..d4d430a608d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCatchImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCatchImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCheckNotNullCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCheckNotNullCallImpl.kt index ebdcb0d5f7b..8c4e7afcf74 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCheckNotNullCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCheckNotNullCallImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCheckedSafeCallSubjectImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCheckedSafeCallSubjectImpl.kt index 74ac2f500bc..09e5f4db4da 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCheckedSafeCallSubjectImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCheckedSafeCallSubjectImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirClassReferenceExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirClassReferenceExpressionImpl.kt index 6d527af58a2..fd122e432a9 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirClassReferenceExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirClassReferenceExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComparisonExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComparisonExpressionImpl.kt index 2e1febe393c..7f92ad148fe 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComparisonExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComparisonExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt index 28189274b57..2f848510acb 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirConstExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirConstExpressionImpl.kt index 62344a8027c..98b11155bcb 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirConstExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirConstExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirContinueExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirContinueExpressionImpl.kt index 7c7a24b3637..3ab1ae16741 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirContinueExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirContinueExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirDelegatedConstructorCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirDelegatedConstructorCallImpl.kt index a5f72afefa5..ddd3071ecbd 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirDelegatedConstructorCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirDelegatedConstructorCallImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirDoWhileLoopImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirDoWhileLoopImpl.kt index 0616ed6d878..550ff524b72 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirDoWhileLoopImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirDoWhileLoopImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirElseIfTrueCondition.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirElseIfTrueCondition.kt index f3f0e24cfd3..140c2a73b51 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirElseIfTrueCondition.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirElseIfTrueCondition.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirElvisExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirElvisExpressionImpl.kt index 95212c624f8..80d9b2fc88f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirElvisExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirElvisExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirEmptyExpressionBlock.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirEmptyExpressionBlock.kt index f88df69c621..aca86b0e932 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirEmptyExpressionBlock.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirEmptyExpressionBlock.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirEqualityOperatorCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirEqualityOperatorCallImpl.kt index ee9e4fadab2..dc72c9d0313 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirEqualityOperatorCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirEqualityOperatorCallImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirErrorExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirErrorExpressionImpl.kt index c046d5a2154..2df4a84c90f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirErrorExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirErrorExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirErrorLoopImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirErrorLoopImpl.kt index 65baee8942e..7467fe3e964 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirErrorLoopImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirErrorLoopImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirErrorResolvedQualifierImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirErrorResolvedQualifierImpl.kt index e3b417bc5f3..37ff9f99fe8 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirErrorResolvedQualifierImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirErrorResolvedQualifierImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionStub.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionStub.kt index de3aef8ff04..4250d4ee468 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionStub.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionStub.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirFunctionCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirFunctionCallImpl.kt index b36b33d3a12..865138167f6 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirFunctionCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirFunctionCallImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirGetClassCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirGetClassCallImpl.kt index 4e1ba994db1..d88da99e569 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirGetClassCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirGetClassCallImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirImplicitInvokeCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirImplicitInvokeCallImpl.kt index 8162e0c3be4..7ba8fec42da 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirImplicitInvokeCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirImplicitInvokeCallImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirLambdaArgumentExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirLambdaArgumentExpressionImpl.kt index e830279a84c..add879e04db 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirLambdaArgumentExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirLambdaArgumentExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirLazyBlock.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirLazyBlock.kt index 91591c41e48..6bf22535338 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirLazyBlock.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirLazyBlock.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirLazyExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirLazyExpression.kt index 4679bfd7957..deb177a5057 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirLazyExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirLazyExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirNamedArgumentExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirNamedArgumentExpressionImpl.kt index d6af2239c34..74e4e225fa6 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirNamedArgumentExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirNamedArgumentExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirQualifiedAccessExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirQualifiedAccessExpressionImpl.kt index bbb8c45d365..c7529a84d74 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirQualifiedAccessExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirQualifiedAccessExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirResolvedQualifierImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirResolvedQualifierImpl.kt index cad570a6169..3ecfd5fddb2 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirResolvedQualifierImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirResolvedQualifierImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirResolvedReifiedParameterReferenceImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirResolvedReifiedParameterReferenceImpl.kt index 964de13b477..f6442b34a29 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirResolvedReifiedParameterReferenceImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirResolvedReifiedParameterReferenceImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirReturnExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirReturnExpressionImpl.kt index 7bd738c892e..f9983b1fe30 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirReturnExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirReturnExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirSafeCallExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirSafeCallExpressionImpl.kt index a55983423aa..6c611be5e1d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirSafeCallExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirSafeCallExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirSpreadArgumentExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirSpreadArgumentExpressionImpl.kt index 45e053dbf8c..904b27436f9 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirSpreadArgumentExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirSpreadArgumentExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirStringConcatenationCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirStringConcatenationCallImpl.kt index 2079fb90f42..0e33cce4048 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirStringConcatenationCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirStringConcatenationCallImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirThisReceiverExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirThisReceiverExpressionImpl.kt index f07ba9a9ded..f162d8be3a9 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirThisReceiverExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirThisReceiverExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirThrowExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirThrowExpressionImpl.kt index 14bba99b580..360b98eb24d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirThrowExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirThrowExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirTryExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirTryExpressionImpl.kt index e306c99e625..67c48c01ef7 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirTryExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirTryExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirTypeOperatorCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirTypeOperatorCallImpl.kt index 7de1f1d5561..12021f59d81 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirTypeOperatorCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirTypeOperatorCallImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirUnitExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirUnitExpression.kt index a413b923858..8d3c91fc1a9 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirUnitExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirUnitExpression.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirVarargArgumentsExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirVarargArgumentsExpressionImpl.kt index fada7def496..fb49f2846c5 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirVarargArgumentsExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirVarargArgumentsExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirVariableAssignmentImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirVariableAssignmentImpl.kt index b2b6419ab2b..d991bb23ab7 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirVariableAssignmentImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirVariableAssignmentImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhenBranchImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhenBranchImpl.kt index bcc9a8f2484..fba5bdbf534 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhenBranchImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhenBranchImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhenExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhenExpressionImpl.kt index da4f9003e5c..7b0074e048d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhenExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhenExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhenSubjectExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhenSubjectExpressionImpl.kt index 86f4403d1a5..ba475d3daf4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhenSubjectExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhenSubjectExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhileLoopImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhileLoopImpl.kt index 647966ba969..f9ef646d39b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhileLoopImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhileLoopImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWrappedDelegateExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWrappedDelegateExpressionImpl.kt index e0a025b52a8..e4e659d7767 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWrappedDelegateExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWrappedDelegateExpressionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/impl/FirLabelImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/impl/FirLabelImpl.kt index cb1a6ee8cbb..f90bfc8d2a5 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/impl/FirLabelImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/impl/FirLabelImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirBackingFieldReference.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirBackingFieldReference.kt index 21fd4702505..616d4124fa5 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirBackingFieldReference.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirBackingFieldReference.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirControlFlowGraphReference.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirControlFlowGraphReference.kt index 7c6b5f96f7a..57cfed48234 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirControlFlowGraphReference.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirControlFlowGraphReference.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirDelegateFieldReference.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirDelegateFieldReference.kt index 1a06700eb05..2a4b17e058c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirDelegateFieldReference.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirDelegateFieldReference.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirErrorNamedReference.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirErrorNamedReference.kt index babddf20a04..cd9ef957378 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirErrorNamedReference.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirErrorNamedReference.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirNamedReference.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirNamedReference.kt index c9b043f0e8f..b62ba95a4de 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirNamedReference.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirNamedReference.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirReference.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirReference.kt index 37987359c6a..1ef424d89c1 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirReference.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirReference.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirResolvedCallableReference.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirResolvedCallableReference.kt index 8626c628abc..aa5572da77e 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirResolvedCallableReference.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirResolvedCallableReference.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirResolvedNamedReference.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirResolvedNamedReference.kt index cb0513e9250..d8b18d5ff4c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirResolvedNamedReference.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirResolvedNamedReference.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirSuperReference.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirSuperReference.kt index 4afaa5de07b..515e36dd2d0 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirSuperReference.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirSuperReference.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirThisReference.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirThisReference.kt index 77b542a4571..484f4ed8b3a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirThisReference.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/FirThisReference.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirBackingFieldReferenceBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirBackingFieldReferenceBuilder.kt index 9164ab0b7b0..30791977320 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirBackingFieldReferenceBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirBackingFieldReferenceBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirDelegateFieldReferenceBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirDelegateFieldReferenceBuilder.kt index 540b58bee72..d6b45e64bda 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirDelegateFieldReferenceBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirDelegateFieldReferenceBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirErrorNamedReferenceBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirErrorNamedReferenceBuilder.kt index 94a465b430b..0b0df91dac8 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirErrorNamedReferenceBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirErrorNamedReferenceBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirExplicitSuperReferenceBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirExplicitSuperReferenceBuilder.kt index 1a7b4347e26..003a89dc56f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirExplicitSuperReferenceBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirExplicitSuperReferenceBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirExplicitThisReferenceBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirExplicitThisReferenceBuilder.kt index fc327118c7c..f9ad8e11b98 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirExplicitThisReferenceBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirExplicitThisReferenceBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirImplicitThisReferenceBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirImplicitThisReferenceBuilder.kt index 667d4a3d8a7..17a869a4eea 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirImplicitThisReferenceBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirImplicitThisReferenceBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirPropertyFromParameterResolvedNamedReferenceBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirPropertyFromParameterResolvedNamedReferenceBuilder.kt index f66da664d53..60411d6d8bf 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirPropertyFromParameterResolvedNamedReferenceBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirPropertyFromParameterResolvedNamedReferenceBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirResolvedCallableReferenceBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirResolvedCallableReferenceBuilder.kt index 1560838117e..443cc771a61 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirResolvedCallableReferenceBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirResolvedCallableReferenceBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirResolvedNamedReferenceBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirResolvedNamedReferenceBuilder.kt index 9ee2bce17c3..196f5133ed8 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirResolvedNamedReferenceBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirResolvedNamedReferenceBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirSimpleNamedReferenceBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirSimpleNamedReferenceBuilder.kt index 0b12ce6d7e4..31eecbd7881 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirSimpleNamedReferenceBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/builder/FirSimpleNamedReferenceBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirBackingFieldReferenceImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirBackingFieldReferenceImpl.kt index bc286822aca..5649491a1fb 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirBackingFieldReferenceImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirBackingFieldReferenceImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirDelegateFieldReferenceImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirDelegateFieldReferenceImpl.kt index 1e1878ad804..831cfb5b849 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirDelegateFieldReferenceImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirDelegateFieldReferenceImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirErrorNamedReferenceImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirErrorNamedReferenceImpl.kt index 0bf201cec11..77669cb1829 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirErrorNamedReferenceImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirErrorNamedReferenceImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirExplicitSuperReference.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirExplicitSuperReference.kt index 7bab3fc096b..1ebe795ba49 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirExplicitSuperReference.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirExplicitSuperReference.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirExplicitThisReference.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirExplicitThisReference.kt index d64690343d3..12245b265dd 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirExplicitThisReference.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirExplicitThisReference.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirImplicitThisReference.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirImplicitThisReference.kt index 1da537fdcc4..94abbb83e27 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirImplicitThisReference.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirImplicitThisReference.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirPropertyFromParameterResolvedNamedReference.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirPropertyFromParameterResolvedNamedReference.kt index 039178bbd73..63a2ef2e7ae 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirPropertyFromParameterResolvedNamedReference.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirPropertyFromParameterResolvedNamedReference.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirResolvedCallableReferenceImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirResolvedCallableReferenceImpl.kt index 601278065f5..965d200deb5 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirResolvedCallableReferenceImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirResolvedCallableReferenceImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirResolvedNamedReferenceImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirResolvedNamedReferenceImpl.kt index 2b49515d16d..35b2be66979 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirResolvedNamedReferenceImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirResolvedNamedReferenceImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirSimpleNamedReference.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirSimpleNamedReference.kt index e01f45af5b9..ece8cb1607f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirSimpleNamedReference.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirSimpleNamedReference.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirStubReference.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirStubReference.kt index 0b0bda0dfbb..55035899e28 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirStubReference.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/references/impl/FirStubReference.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirDynamicTypeRef.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirDynamicTypeRef.kt index 5ecfefcf86c..3a31b1662e9 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirDynamicTypeRef.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirDynamicTypeRef.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirErrorTypeRef.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirErrorTypeRef.kt index 526efeedbca..c74ff6d4101 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirErrorTypeRef.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirErrorTypeRef.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirFunctionTypeRef.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirFunctionTypeRef.kt index c7ceacf9f6f..35c7bd9e269 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirFunctionTypeRef.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirFunctionTypeRef.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirImplicitTypeRef.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirImplicitTypeRef.kt index 233291e0006..4f041aa2f75 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirImplicitTypeRef.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirImplicitTypeRef.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirResolvedTypeRef.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirResolvedTypeRef.kt index 95b553c4783..57f845fdb79 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirResolvedTypeRef.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirResolvedTypeRef.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirStarProjection.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirStarProjection.kt index 2bb06e2cf13..2c0492cc117 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirStarProjection.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirStarProjection.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirTypeProjection.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirTypeProjection.kt index f62d5f3ac76..b864f690b65 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirTypeProjection.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirTypeProjection.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirTypeProjectionWithVariance.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirTypeProjectionWithVariance.kt index ec8e13d610a..e202e6e5f0c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirTypeProjectionWithVariance.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirTypeProjectionWithVariance.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirTypeRef.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirTypeRef.kt index 9ba69644d9b..9293bbfe203 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirTypeRef.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirTypeRef.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirTypeRefWithNullability.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirTypeRefWithNullability.kt index b7c5ba7a8bb..c1158ec6664 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirTypeRefWithNullability.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirTypeRefWithNullability.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirUserTypeRef.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirUserTypeRef.kt index 1613a0dd85c..07dc3b6ea3f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirUserTypeRef.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/FirUserTypeRef.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirDynamicTypeRefBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirDynamicTypeRefBuilder.kt index 4278a9085bb..f7a539b863a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirDynamicTypeRefBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirDynamicTypeRefBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirErrorTypeRefBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirErrorTypeRefBuilder.kt index a313065cb5f..07cb6c3276d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirErrorTypeRefBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirErrorTypeRefBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirFunctionTypeRefBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirFunctionTypeRefBuilder.kt index 0e9064c6a70..db007ce7c6d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirFunctionTypeRefBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirFunctionTypeRefBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirImplicitTypeRefBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirImplicitTypeRefBuilder.kt index 4d7864e6ea1..099d172aff1 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirImplicitTypeRefBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirImplicitTypeRefBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirResolvedTypeRefBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirResolvedTypeRefBuilder.kt index 904b6705cfb..17460dbc630 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirResolvedTypeRefBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirResolvedTypeRefBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirStarProjectionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirStarProjectionBuilder.kt index b1d97e48ea5..54ae68f6e59 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirStarProjectionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirStarProjectionBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirTypeProjectionWithVarianceBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirTypeProjectionWithVarianceBuilder.kt index ae148a5f69f..c35f2d4da35 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirTypeProjectionWithVarianceBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/builder/FirTypeProjectionWithVarianceBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirDynamicTypeRefImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirDynamicTypeRefImpl.kt index 54a62086e0b..e3079c8ddb3 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirDynamicTypeRefImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirDynamicTypeRefImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirErrorTypeRefImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirErrorTypeRefImpl.kt index 0584c1fcea0..567903e36a4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirErrorTypeRefImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirErrorTypeRefImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirFunctionTypeRefImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirFunctionTypeRefImpl.kt index 0e5b3242d9c..8fd7160f4b6 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirFunctionTypeRefImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirFunctionTypeRefImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirImplicitTypeRefImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirImplicitTypeRefImpl.kt index c8eda4c2d94..86a29ec3e89 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirImplicitTypeRefImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirImplicitTypeRefImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirResolvedTypeRefImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirResolvedTypeRefImpl.kt index 60d51d73388..6a24a618234 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirResolvedTypeRefImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirResolvedTypeRefImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirStarProjectionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirStarProjectionImpl.kt index 343fbcb161a..c95cd6ae3ac 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirStarProjectionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirStarProjectionImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirTypePlaceholderProjection.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirTypePlaceholderProjection.kt index 9c2a2e2aebe..905f2272623 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirTypePlaceholderProjection.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirTypePlaceholderProjection.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirTypeProjectionWithVarianceImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirTypeProjectionWithVarianceImpl.kt index b2a58cb5ac5..b9ccdbd9c61 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirTypeProjectionWithVarianceImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/types/impl/FirTypeProjectionWithVarianceImpl.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt index cbcf887d6a6..58120544f03 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt index fd9733dab48..d64174b776c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt index 2cd2bce364c..7996a04e254 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsCompilerRunnerTestGenerated.java b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsCompilerRunnerTestGenerated.java index 4c56142ad4c..8e4a371c394 100644 --- a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsCompilerRunnerTestGenerated.java +++ b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsCompilerRunnerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsCompilerRunnerWithFriendModulesDisabledTestGenerated.java b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsCompilerRunnerWithFriendModulesDisabledTestGenerated.java index 55a7494064f..bd639dba62e 100644 --- a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsCompilerRunnerWithFriendModulesDisabledTestGenerated.java +++ b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsCompilerRunnerWithFriendModulesDisabledTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsCompilerRunnerWithMetadataOnlyTestGenerated.java b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsCompilerRunnerWithMetadataOnlyTestGenerated.java index d2ece82fd52..67ef4aee927 100644 --- a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsCompilerRunnerWithMetadataOnlyTestGenerated.java +++ b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsCompilerRunnerWithMetadataOnlyTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsKlibCompilerRunnerTestGenerated.java b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsKlibCompilerRunnerTestGenerated.java index 061ca3d6787..39bfcce1418 100644 --- a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsKlibCompilerRunnerTestGenerated.java +++ b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsKlibCompilerRunnerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsKlibCompilerWithScopeExpansionRunnerTestGenerated.java b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsKlibCompilerWithScopeExpansionRunnerTestGenerated.java index 7c93d7d8a45..f8bc6942fb1 100644 --- a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsKlibCompilerWithScopeExpansionRunnerTestGenerated.java +++ b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJsKlibCompilerWithScopeExpansionRunnerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerRunnerTestGenerated.java b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerRunnerTestGenerated.java index e32b8d37c7f..a36ffe145e6 100644 --- a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerRunnerTestGenerated.java +++ b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerRunnerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalMultiplatformJsCompilerRunnerTestGenerated.java b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalMultiplatformJsCompilerRunnerTestGenerated.java index dbb9ec8d930..969284ab6d1 100644 --- a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalMultiplatformJsCompilerRunnerTestGenerated.java +++ b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalMultiplatformJsCompilerRunnerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalMultiplatformJvmCompilerRunnerTestGenerated.java b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalMultiplatformJvmCompilerRunnerTestGenerated.java index d4363af84d2..54596f771cb 100644 --- a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalMultiplatformJvmCompilerRunnerTestGenerated.java +++ b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IncrementalMultiplatformJvmCompilerRunnerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IrIncrementalJvmCompilerRunnerTestGenerated.java b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IrIncrementalJvmCompilerRunnerTestGenerated.java index ad620ef392c..4a784a0e1cf 100644 --- a/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IrIncrementalJvmCompilerRunnerTestGenerated.java +++ b/compiler/incremental-compilation-impl/test/org/jetbrains/kotlin/incremental/IrIncrementalJvmCompilerRunnerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-against-klib/tests/org/jetbrains/kotlin/codegen/ir/CompileKotlinAgainstKlibTestGenerated.java b/compiler/tests-against-klib/tests/org/jetbrains/kotlin/codegen/ir/CompileKotlinAgainstKlibTestGenerated.java index 84325896427..91d82ddfbac 100644 --- a/compiler/tests-against-klib/tests/org/jetbrains/kotlin/codegen/ir/CompileKotlinAgainstKlibTestGenerated.java +++ b/compiler/tests-against-klib/tests/org/jetbrains/kotlin/codegen/ir/CompileKotlinAgainstKlibTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index e83c9f36071..fa340eff3e9 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticUsingJavacTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticUsingJavacTestGenerated.java index 449b963beca..e77ba465d05 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticUsingJavacTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticUsingJavacTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsNativeTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsNativeTestGenerated.java index 755e934ed4c..af343085cf4 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsNativeTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsNativeTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJsStdLibGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJsStdLibGenerated.java index 1adc2e8c68c..70a47f91ace 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJsStdLibGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJsStdLibGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJvmIrBackendGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJvmIrBackendGenerated.java index d34cae2329b..79e48dd5aae 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJvmIrBackendGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJvmIrBackendGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithOldJvmBackendGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithOldJvmBackendGenerated.java index 74c5731f993..f6c3c3a0a2e 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithOldJvmBackendGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithOldJvmBackendGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsNoAnnotationInClasspathTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsNoAnnotationInClasspathTestGenerated.java index 241f58fcbbc..9544c40fbfe 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsNoAnnotationInClasspathTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsNoAnnotationInClasspathTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsNoAnnotationInClasspathWithPsiClassReadingTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsNoAnnotationInClasspathWithPsiClassReadingTestGenerated.java index 67f869a6cf8..44cc8a3161e 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsNoAnnotationInClasspathWithPsiClassReadingTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsNoAnnotationInClasspathWithPsiClassReadingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsTestGenerated.java index 548f5bd78ec..d285ef8d19f 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java index 7a64a9b008a..d9a44810bf4 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/cfg/ControlFlowTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/cfg/ControlFlowTestGenerated.java index 92945984282..9d5f94fa450 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/cfg/ControlFlowTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/cfg/ControlFlowTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/cfg/DataFlowTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/cfg/DataFlowTestGenerated.java index dcd027fadc0..4fd0c0fe2e5 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/cfg/DataFlowTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/cfg/DataFlowTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/cfg/PseudoValueTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/cfg/PseudoValueTestGenerated.java index 91a4f5357c2..467d96491ff 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/cfg/PseudoValueTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/cfg/PseudoValueTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/checkers/DiagnosticsTestWithJsStdLibAndBackendCompilationGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/checkers/DiagnosticsTestWithJsStdLibAndBackendCompilationGenerated.java index 1152bbf53f5..a573a74b7ed 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/checkers/DiagnosticsTestWithJsStdLibAndBackendCompilationGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/checkers/DiagnosticsTestWithJsStdLibAndBackendCompilationGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/cli/CliTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/cli/CliTestGenerated.java index a9f999cda90..7ae942f9f08 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/cli/CliTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/cli/CliTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/AsmLikeInstructionListingTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/AsmLikeInstructionListingTestGenerated.java index c79a89316ac..db5dace5e06 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/AsmLikeInstructionListingTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/AsmLikeInstructionListingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxAgainstJavaCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxAgainstJavaCodegenTestGenerated.java index 889ec77bc21..322d706ae67 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxAgainstJavaCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxAgainstJavaCodegenTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index 2c81873af7f..c8804aed295 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java index ca73d1aca88..c79d66772ad 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxInlineCodegenTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java index 090ed7ad0b9..7c801ea3ab8 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BytecodeListingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java index 8d99bdb9531..61a164a3198 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BytecodeTextTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/CheckLocalVariablesTableTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/CheckLocalVariablesTableTestGenerated.java index 9f0b18bd6a9..bdfa98306c0 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/CheckLocalVariablesTableTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/CheckLocalVariablesTableTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java index 424b839353c..53008f9e117 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/CompileKotlinAgainstInlineKotlinTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/CompileKotlinAgainstKotlinJdk15TestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/CompileKotlinAgainstKotlinJdk15TestGenerated.java index 5f39c3daaa3..19d206eaa0e 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/CompileKotlinAgainstKotlinJdk15TestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/CompileKotlinAgainstKotlinJdk15TestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/CompileKotlinAgainstKotlinTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/CompileKotlinAgainstKotlinTestGenerated.java index ea79b31bb8c..2d276cffd97 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/CompileKotlinAgainstKotlinTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/CompileKotlinAgainstKotlinTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/CustomScriptCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/CustomScriptCodegenTestGenerated.java index 4868c93e3e5..e9967d96aec 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/CustomScriptCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/CustomScriptCodegenTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/DumpDeclarationsTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/DumpDeclarationsTestGenerated.java index 6d0cae0462c..50d25accbaa 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/DumpDeclarationsTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/DumpDeclarationsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/IrCompileKotlinAgainstKotlinJdk15TestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/IrCompileKotlinAgainstKotlinJdk15TestGenerated.java index 29b79ac56b4..1b891250c70 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/IrCompileKotlinAgainstKotlinJdk15TestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/IrCompileKotlinAgainstKotlinJdk15TestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/Jdk15BlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/Jdk15BlackBoxCodegenTestGenerated.java index f9502bd03a7..93a1dab640c 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/Jdk15BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/Jdk15BlackBoxCodegenTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/Jdk15IrBlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/Jdk15IrBlackBoxCodegenTestGenerated.java index d6030f1024d..dacbcf063f8 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/Jdk15IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/Jdk15IrBlackBoxCodegenTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/Jdk9BlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/Jdk9BlackBoxCodegenTestGenerated.java index 8e0a4b59837..c1beba372dc 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/Jdk9BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/Jdk9BlackBoxCodegenTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/Jdk9IrBlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/Jdk9IrBlackBoxCodegenTestGenerated.java index 56d97d3ea33..62481f13f6f 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/Jdk9IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/Jdk9IrBlackBoxCodegenTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/Kapt3BuilderModeBytecodeShapeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/Kapt3BuilderModeBytecodeShapeTestGenerated.java index a6a4018d610..1f863b37575 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/Kapt3BuilderModeBytecodeShapeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/Kapt3BuilderModeBytecodeShapeTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index ddee5d1ad73..06df05e5dee 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ScriptCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ScriptCodegenTestGenerated.java index bec7ecb14f7..de4697e1704 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ScriptCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ScriptCodegenTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/TopLevelMembersInvocationTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/TopLevelMembersInvocationTestGenerated.java index 5025adb2c56..3d2a0ea3d73 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/TopLevelMembersInvocationTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/TopLevelMembersInvocationTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/IrLocalVariableTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/IrLocalVariableTestGenerated.java index 6021fe30a2d..cf169e4c627 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/IrLocalVariableTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/IrLocalVariableTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/IrSteppingTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/IrSteppingTestGenerated.java index b089af0a384..26c4c084cf6 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/IrSteppingTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/IrSteppingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/LocalVariableTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/LocalVariableTestGenerated.java index b89c0c9a6d1..13ad6cec59b 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/LocalVariableTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/LocalVariableTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/SteppingTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/SteppingTestGenerated.java index c0a7f115a9d..648c92c215e 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/SteppingTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/SteppingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/defaultConstructor/DefaultArgumentsReflectionTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/defaultConstructor/DefaultArgumentsReflectionTestGenerated.java index 887e75fab5c..4a9f18d391d 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/defaultConstructor/DefaultArgumentsReflectionTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/defaultConstructor/DefaultArgumentsReflectionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/flags/WriteFlagsTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/flags/WriteFlagsTestGenerated.java index c682ce69a4e..31defecce63 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/flags/WriteFlagsTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/flags/WriteFlagsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/ComposeLikeIrBlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/ComposeLikeIrBlackBoxCodegenTestGenerated.java index 36df2565845..4631c9f2c22 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/ComposeLikeIrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/ComposeLikeIrBlackBoxCodegenTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/ComposeLikeIrBytecodeTextTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/ComposeLikeIrBytecodeTextTestGenerated.java index 3c2c159df45..89aeda0eb2d 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/ComposeLikeIrBytecodeTextTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/ComposeLikeIrBytecodeTextTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrAsmLikeInstructionListingTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrAsmLikeInstructionListingTestGenerated.java index d89d851beb2..3faa7ce7d3d 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrAsmLikeInstructionListingTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrAsmLikeInstructionListingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxAgainstJavaCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxAgainstJavaCodegenTestGenerated.java index 4b6b6073967..e3174981ecf 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxAgainstJavaCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxAgainstJavaCodegenTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index d014cd742ab..76a244e22d5 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxInlineCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxInlineCodegenTestGenerated.java index e701321b6d7..3c42ebbeebc 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxInlineCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxInlineCodegenTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBytecodeListingTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBytecodeListingTestGenerated.java index aa513fd43fb..47a6f5cf4eb 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBytecodeListingTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBytecodeListingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBytecodeTextTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBytecodeTextTestGenerated.java index 66456ca60bd..6ce2511b1e4 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBytecodeTextTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBytecodeTextTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCheckLocalVariablesTableTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCheckLocalVariablesTableTestGenerated.java index f810be392ae..12498023710 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCheckLocalVariablesTableTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCheckLocalVariablesTableTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCompileKotlinAgainstInlineKotlinTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCompileKotlinAgainstInlineKotlinTestGenerated.java index 973718fcb67..b96c4df39fe 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCompileKotlinAgainstInlineKotlinTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCompileKotlinAgainstInlineKotlinTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCompileKotlinAgainstKotlinTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCompileKotlinAgainstKotlinTestGenerated.java index 3d7413eae47..ce8d71d23cb 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCompileKotlinAgainstKotlinTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCompileKotlinAgainstKotlinTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrScriptCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrScriptCodegenTestGenerated.java index 80ff124624b..9b01908d5b4 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrScriptCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrScriptCodegenTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrWriteFlagsTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrWriteFlagsTestGenerated.java index 2b2414195de..524a5b695e4 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrWriteFlagsTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrWriteFlagsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrWriteSignatureTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrWriteSignatureTestGenerated.java index e144435e5b0..c4bd2fcf870 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrWriteSignatureTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrWriteSignatureTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmIrAgainstOldBoxInlineTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmIrAgainstOldBoxInlineTestGenerated.java index 45c45e4eee4..9f91c2e3c1c 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmIrAgainstOldBoxInlineTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmIrAgainstOldBoxInlineTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmIrAgainstOldBoxTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmIrAgainstOldBoxTestGenerated.java index 882afcb2b15..bc6896c17b6 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmIrAgainstOldBoxTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmIrAgainstOldBoxTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmOldAgainstIrBoxInlineTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmOldAgainstIrBoxInlineTestGenerated.java index 834d0739001..22c4b5bc1cd 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmOldAgainstIrBoxInlineTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmOldAgainstIrBoxInlineTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmOldAgainstIrBoxTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmOldAgainstIrBoxTestGenerated.java index 2397bb77079..726aa293ae4 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmOldAgainstIrBoxTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/JvmOldAgainstIrBoxTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/integration/AntTaskTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/integration/AntTaskTestGenerated.java index 269fc75f165..749b799377d 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/integration/AntTaskTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/integration/AntTaskTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/ir/IrCfgTestCaseGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/ir/IrCfgTestCaseGenerated.java index 8294fbd927a..79164fa1925 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/ir/IrCfgTestCaseGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/ir/IrCfgTestCaseGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/ir/IrJsTextTestCaseGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/ir/IrJsTextTestCaseGenerated.java index bfab8052f2e..154aa0ce5e4 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/ir/IrJsTextTestCaseGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/ir/IrJsTextTestCaseGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/ir/IrSourceRangesTestCaseGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/ir/IrSourceRangesTestCaseGenerated.java index fa93993bc8d..2e680dc42f4 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/ir/IrSourceRangesTestCaseGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/ir/IrSourceRangesTestCaseGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java index a5a06590a09..493a45eaf80 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/CompileJavaAgainstKotlinTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/CompileJavaAgainstKotlinTestGenerated.java index 9bd19e82015..073ceb1fd74 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/CompileJavaAgainstKotlinTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/CompileJavaAgainstKotlinTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstJavaTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstJavaTestGenerated.java index a2707eaaa53..7c61717ea54 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstJavaTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstJavaTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadJava15TestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadJava15TestGenerated.java index cb98fc4f0ff..5d397aecd27 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadJava15TestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadJava15TestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadJava15WithPsiClassReadingTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadJava15WithPsiClassReadingTestGenerated.java index cc11b4ff551..440959a61d7 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadJava15WithPsiClassReadingTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadJava15WithPsiClassReadingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadJavaTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadJavaTestGenerated.java index 6d564a0c46e..f2992668b76 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadJavaTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadJavaTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadJavaWithPsiClassReadingTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadJavaWithPsiClassReadingTestGenerated.java index 6811a7510d2..b435219ddf8 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadJavaWithPsiClassReadingTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadJavaWithPsiClassReadingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadKotlinWithTypeTableTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadKotlinWithTypeTableTestGenerated.java index f8329ac6c9a..7204d2b6973 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadKotlinWithTypeTableTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/LoadKotlinWithTypeTableTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/WriteSignatureTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/WriteSignatureTestGenerated.java index 7d582c2f443..ec9cddf9f0d 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/WriteSignatureTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/WriteSignatureTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/ir/IrCompileJavaAgainstKotlinTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/ir/IrCompileJavaAgainstKotlinTestGenerated.java index 50fbe8c4418..e306b1bc8d7 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/ir/IrCompileJavaAgainstKotlinTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/ir/IrCompileJavaAgainstKotlinTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/ir/IrCompileKotlinAgainstJavaTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/ir/IrCompileKotlinAgainstJavaTestGenerated.java index 0964cf52ad4..6528c1cbd11 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/ir/IrCompileKotlinAgainstJavaTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/ir/IrCompileKotlinAgainstJavaTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/ir/IrLoadJavaTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/ir/IrLoadJavaTestGenerated.java index ca07b164d85..dd139c4fd6d 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/ir/IrLoadJavaTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/ir/IrLoadJavaTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/javac/LoadJavaUsingJavacTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/javac/LoadJavaUsingJavacTestGenerated.java index 1fdecca8494..cc0633310fa 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/javac/LoadJavaUsingJavacTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/jvm/compiler/javac/LoadJavaUsingJavacTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/lexer/kdoc/KDocLexerTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/lexer/kdoc/KDocLexerTestGenerated.java index 92ae10fd299..5e045ec2ff8 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/lexer/kdoc/KDocLexerTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/lexer/kdoc/KDocLexerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/lexer/kotlin/KotlinLexerTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/lexer/kotlin/KotlinLexerTestGenerated.java index 8e8cb972073..da857995aa2 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/lexer/kotlin/KotlinLexerTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/lexer/kotlin/KotlinLexerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/modules/xml/ModuleXmlParserTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/modules/xml/ModuleXmlParserTestGenerated.java index 25e0ac6760e..54ad3b411c2 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/modules/xml/ModuleXmlParserTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/modules/xml/ModuleXmlParserTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/multiplatform/MultiPlatformIntegrationTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/multiplatform/MultiPlatformIntegrationTestGenerated.java index 247210a1663..1c8ddc02ed2 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/multiplatform/MultiPlatformIntegrationTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/multiplatform/MultiPlatformIntegrationTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/parsing/ParsingTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/parsing/ParsingTestGenerated.java index 9ace12ccd68..0bf91c59287 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/parsing/ParsingTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/parsing/ParsingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/renderer/DescriptorRendererTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/renderer/DescriptorRendererTestGenerated.java index d5d1a9e0927..e82b16b21b8 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/renderer/DescriptorRendererTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/renderer/DescriptorRendererTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/renderer/FunctionDescriptorInExpressionRendererTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/renderer/FunctionDescriptorInExpressionRendererTestGenerated.java index 95e240e3cc6..078508e7257 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/renderer/FunctionDescriptorInExpressionRendererTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/renderer/FunctionDescriptorInExpressionRendererTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/repl/ReplInterpreterTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/repl/ReplInterpreterTestGenerated.java index 13086e76aa1..a89547ebdc6 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/repl/ReplInterpreterTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/repl/ReplInterpreterTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/resolve/ResolveTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/resolve/ResolveTestGenerated.java index 8720d2e598e..fec1fd3a4bf 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/resolve/ResolveTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/resolve/ResolveTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/resolve/annotation/AnnotationParameterTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/resolve/annotation/AnnotationParameterTestGenerated.java index e6afe5734e9..b7d0427460c 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/resolve/annotation/AnnotationParameterTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/resolve/annotation/AnnotationParameterTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/resolve/calls/ResolvedCallsTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/resolve/calls/ResolvedCallsTestGenerated.java index 8c5004f3821..ee40ea2cc2e 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/resolve/calls/ResolvedCallsTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/resolve/calls/ResolvedCallsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/resolve/calls/ResolvedConstructorDelegationCallsTestsGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/resolve/calls/ResolvedConstructorDelegationCallsTestsGenerated.java index afe01b2a605..1cf9ce92249 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/resolve/calls/ResolvedConstructorDelegationCallsTestsGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/resolve/calls/ResolvedConstructorDelegationCallsTestsGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/resolve/constants/evaluate/CompileTimeConstantEvaluatorTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/resolve/constants/evaluate/CompileTimeConstantEvaluatorTestGenerated.java index a6006552f6b..0b6c06265b9 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/resolve/constants/evaluate/CompileTimeConstantEvaluatorTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/resolve/constants/evaluate/CompileTimeConstantEvaluatorTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/resolve/constraintSystem/ConstraintSystemTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/resolve/constraintSystem/ConstraintSystemTestGenerated.java index 47975ab5d91..f60d3787d1a 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/resolve/constraintSystem/ConstraintSystemTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/resolve/constraintSystem/ConstraintSystemTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/serialization/LocalClassProtoTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/serialization/LocalClassProtoTestGenerated.java index d3eb379cfaa..c65168756bb 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/serialization/LocalClassProtoTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/serialization/LocalClassProtoTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-gen/org/jetbrains/kotlin/types/TypeBindingTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/types/TypeBindingTestGenerated.java index 1d662bbd86c..736d02fa0a4 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/types/TypeBindingTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/types/TypeBindingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-java8/tests/org/jetbrains/kotlin/checkers/ForeignAnnotationsCompiledJavaDiagnosticTestGenerated.java b/compiler/tests-java8/tests/org/jetbrains/kotlin/checkers/ForeignAnnotationsCompiledJavaDiagnosticTestGenerated.java index 71bec715cd4..09c68290e1c 100644 --- a/compiler/tests-java8/tests/org/jetbrains/kotlin/checkers/ForeignAnnotationsCompiledJavaDiagnosticTestGenerated.java +++ b/compiler/tests-java8/tests/org/jetbrains/kotlin/checkers/ForeignAnnotationsCompiledJavaDiagnosticTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-java8/tests/org/jetbrains/kotlin/checkers/JspecifyAnnotationsTestGenerated.java b/compiler/tests-java8/tests/org/jetbrains/kotlin/checkers/JspecifyAnnotationsTestGenerated.java index b9dfd07191f..b54aca675c5 100644 --- a/compiler/tests-java8/tests/org/jetbrains/kotlin/checkers/JspecifyAnnotationsTestGenerated.java +++ b/compiler/tests-java8/tests/org/jetbrains/kotlin/checkers/JspecifyAnnotationsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/LoadJava8TestGenerated.java b/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/LoadJava8TestGenerated.java index c285cf7b703..856807bd506 100644 --- a/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/LoadJava8TestGenerated.java +++ b/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/LoadJava8TestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/LoadJava8WithPsiClassReadingTestGenerated.java b/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/LoadJava8WithPsiClassReadingTestGenerated.java index 797cf2ac7a6..c2a572591dc 100644 --- a/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/LoadJava8WithPsiClassReadingTestGenerated.java +++ b/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/LoadJava8WithPsiClassReadingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/javac/LoadJava8UsingJavacTestGenerated.java b/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/javac/LoadJava8UsingJavacTestGenerated.java index e5a3d16e228..c10af9416e1 100644 --- a/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/javac/LoadJava8UsingJavacTestGenerated.java +++ b/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/javac/LoadJava8UsingJavacTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/tests-java8/tests/org/jetbrains/kotlin/resolve/calls/EnhancedSignaturesResolvedCallsTestGenerated.java b/compiler/tests-java8/tests/org/jetbrains/kotlin/resolve/calls/EnhancedSignaturesResolvedCallsTestGenerated.java index 545a461742a..1ad9c628db0 100644 --- a/compiler/tests-java8/tests/org/jetbrains/kotlin/resolve/calls/EnhancedSignaturesResolvedCallsTestGenerated.java +++ b/compiler/tests-java8/tests/org/jetbrains/kotlin/resolve/calls/EnhancedSignaturesResolvedCallsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/fir/FirVisualizerForRawFirDataGenerated.java b/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/fir/FirVisualizerForRawFirDataGenerated.java index 711b43b4625..6e417ac5056 100644 --- a/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/fir/FirVisualizerForRawFirDataGenerated.java +++ b/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/fir/FirVisualizerForRawFirDataGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/fir/FirVisualizerForUncommonCasesGenerated.java b/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/fir/FirVisualizerForUncommonCasesGenerated.java index f01efcd97a8..70901441d49 100644 --- a/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/fir/FirVisualizerForUncommonCasesGenerated.java +++ b/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/fir/FirVisualizerForUncommonCasesGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/psi/PsiVisualizerForRawFirDataGenerated.java b/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/psi/PsiVisualizerForRawFirDataGenerated.java index 2f0e0a83072..8d27957c8ad 100644 --- a/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/psi/PsiVisualizerForRawFirDataGenerated.java +++ b/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/psi/PsiVisualizerForRawFirDataGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/psi/PsiVisualizerForUncommonCasesGenerated.java b/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/psi/PsiVisualizerForUncommonCasesGenerated.java index 155a131a4f7..34c441bde4e 100644 --- a/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/psi/PsiVisualizerForUncommonCasesGenerated.java +++ b/compiler/visualizer/tests-gen/org/jetbrains/kotlin/visualizer/psi/PsiVisualizerForUncommonCasesGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/core/descriptors.runtime/tests/org/jetbrains/kotlin/jvm/runtime/Jvm8RuntimeDescriptorLoaderTestGenerated.java b/core/descriptors.runtime/tests/org/jetbrains/kotlin/jvm/runtime/Jvm8RuntimeDescriptorLoaderTestGenerated.java index bb8b8b41209..62af1f4a351 100644 --- a/core/descriptors.runtime/tests/org/jetbrains/kotlin/jvm/runtime/Jvm8RuntimeDescriptorLoaderTestGenerated.java +++ b/core/descriptors.runtime/tests/org/jetbrains/kotlin/jvm/runtime/Jvm8RuntimeDescriptorLoaderTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/core/descriptors.runtime/tests/org/jetbrains/kotlin/jvm/runtime/JvmRuntimeDescriptorLoaderTestGenerated.java b/core/descriptors.runtime/tests/org/jetbrains/kotlin/jvm/runtime/JvmRuntimeDescriptorLoaderTestGenerated.java index eda776b13a8..ac43705e26a 100644 --- a/core/descriptors.runtime/tests/org/jetbrains/kotlin/jvm/runtime/JvmRuntimeDescriptorLoaderTestGenerated.java +++ b/core/descriptors.runtime/tests/org/jetbrains/kotlin/jvm/runtime/JvmRuntimeDescriptorLoaderTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/CompiledKotlinInJavaCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/CompiledKotlinInJavaCompletionTestGenerated.java index 2d9a26f8d33..6caa62857b4 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/CompiledKotlinInJavaCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/CompiledKotlinInJavaCompletionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/CompletionIncrementalResolveTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/CompletionIncrementalResolveTestGenerated.java index 59d492ef1b8..cae0c1b6584 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/CompletionIncrementalResolveTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/CompletionIncrementalResolveTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java index 026f2f83378..251aa029197 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JSBasicCompletionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/Java8BasicCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/Java8BasicCompletionTestGenerated.java index abfcf15a0cf..0fafbc30996 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/Java8BasicCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/Java8BasicCompletionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java index 89335d96b83..c0bba3230c9 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmBasicCompletionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmSmartCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmSmartCompletionTestGenerated.java index 6be5ae13daa..7f7631cc17a 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmSmartCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmSmartCompletionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmWithLibBasicCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmWithLibBasicCompletionTestGenerated.java index 7ceb149854d..ceacd37dd09 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmWithLibBasicCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/JvmWithLibBasicCompletionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KDocCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KDocCompletionTestGenerated.java index adc2bba31f3..bace736baa2 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KDocCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KDocCompletionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KeywordCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KeywordCompletionTestGenerated.java index d92b71fc0e6..8ea86e8e415 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KeywordCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KeywordCompletionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KotlinSourceInJavaCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KotlinSourceInJavaCompletionTestGenerated.java index 2b0bbb8f7c3..1d59ab3419d 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KotlinSourceInJavaCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KotlinSourceInJavaCompletionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KotlinStdLibInJavaCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KotlinStdLibInJavaCompletionTestGenerated.java index 55e846764ba..0ba624755cf 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KotlinStdLibInJavaCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/KotlinStdLibInJavaCompletionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileJvmBasicCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileJvmBasicCompletionTestGenerated.java index f92d09065b4..3d8f1ecff37 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileJvmBasicCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileJvmBasicCompletionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFilePrimitiveJvmBasicCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFilePrimitiveJvmBasicCompletionTestGenerated.java index 1c870ab1716..6dc95159272 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFilePrimitiveJvmBasicCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFilePrimitiveJvmBasicCompletionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileSmartCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileSmartCompletionTestGenerated.java index 4417853db96..9087334049a 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileSmartCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileSmartCompletionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiPlatformCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiPlatformCompletionTestGenerated.java index 4131cfec017..eb0ca344e41 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiPlatformCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiPlatformCompletionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/BasicCompletionHandlerTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/BasicCompletionHandlerTestGenerated.java index 76f71afcaa2..9761f702912 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/BasicCompletionHandlerTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/BasicCompletionHandlerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/CompletionCharFilterTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/CompletionCharFilterTestGenerated.java index f08998b2bc1..c49ccf60c18 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/CompletionCharFilterTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/CompletionCharFilterTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/KeywordCompletionHandlerTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/KeywordCompletionHandlerTestGenerated.java index 8baf22d54b2..f2e77e7f93b 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/KeywordCompletionHandlerTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/KeywordCompletionHandlerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/SmartCompletionHandlerTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/SmartCompletionHandlerTestGenerated.java index d94477f0b1c..89f95c0d358 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/SmartCompletionHandlerTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/SmartCompletionHandlerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/weighers/BasicCompletionWeigherTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/weighers/BasicCompletionWeigherTestGenerated.java index 68ae502e45f..34470f5c29d 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/weighers/BasicCompletionWeigherTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/weighers/BasicCompletionWeigherTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/weighers/SmartCompletionWeigherTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/weighers/SmartCompletionWeigherTestGenerated.java index 4da4dfd02c5..3a91291e3f7 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/weighers/SmartCompletionWeigherTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/weighers/SmartCompletionWeigherTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-fir-performance-tests/tests/org/jetbrains/kotlin/idea/highlighter/FirHighlightingPerformanceTestGenerated.java b/idea/idea-fir-performance-tests/tests/org/jetbrains/kotlin/idea/highlighter/FirHighlightingPerformanceTestGenerated.java index 8efc8e6bca5..f94a791adab 100644 --- a/idea/idea-fir-performance-tests/tests/org/jetbrains/kotlin/idea/highlighter/FirHighlightingPerformanceTestGenerated.java +++ b/idea/idea-fir-performance-tests/tests/org/jetbrains/kotlin/idea/highlighter/FirHighlightingPerformanceTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-fir-performance-tests/tests/org/jetbrains/kotlin/idea/perf/HighLevelPerformanceBasicCompletionHandlerTestGenerated.java b/idea/idea-fir-performance-tests/tests/org/jetbrains/kotlin/idea/perf/HighLevelPerformanceBasicCompletionHandlerTestGenerated.java index f5b4cbd53e4..51ca32271e5 100644 --- a/idea/idea-fir-performance-tests/tests/org/jetbrains/kotlin/idea/perf/HighLevelPerformanceBasicCompletionHandlerTestGenerated.java +++ b/idea/idea-fir-performance-tests/tests/org/jetbrains/kotlin/idea/perf/HighLevelPerformanceBasicCompletionHandlerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirClassLoadingTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirClassLoadingTestGenerated.java index c727513bbe8..7b94904f4a7 100644 --- a/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirClassLoadingTestGenerated.java +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirClassLoadingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightClassTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightClassTestGenerated.java index a063a2f4df6..7b7911bc483 100644 --- a/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightClassTestGenerated.java +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightClassTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightFacadeClassTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightFacadeClassTestGenerated.java index e5e70fc3d2e..6e0ef4527b1 100644 --- a/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightFacadeClassTestGenerated.java +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/asJava/classes/FirLightFacadeClassTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/checkers/FirPsiCheckerTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/checkers/FirPsiCheckerTestGenerated.java index 18ee0339b63..dde41ce45cf 100644 --- a/idea/idea-fir/tests/org/jetbrains/kotlin/checkers/FirPsiCheckerTestGenerated.java +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/checkers/FirPsiCheckerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/findUsages/FindUsagesFirTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/findUsages/FindUsagesFirTestGenerated.java index f2a07fabddf..47f3d8a4fab 100644 --- a/idea/idea-fir/tests/org/jetbrains/kotlin/findUsages/FindUsagesFirTestGenerated.java +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/findUsages/FindUsagesFirTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/findUsages/FindUsagesWithDisableComponentSearchFirTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/findUsages/FindUsagesWithDisableComponentSearchFirTestGenerated.java index 3d3911e983e..48705919aae 100644 --- a/idea/idea-fir/tests/org/jetbrains/kotlin/findUsages/FindUsagesWithDisableComponentSearchFirTestGenerated.java +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/findUsages/FindUsagesWithDisableComponentSearchFirTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/findUsages/KotlinFindUsagesWithLibraryFirTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/findUsages/KotlinFindUsagesWithLibraryFirTestGenerated.java index e870fa38516..0042979202d 100644 --- a/idea/idea-fir/tests/org/jetbrains/kotlin/findUsages/KotlinFindUsagesWithLibraryFirTestGenerated.java +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/findUsages/KotlinFindUsagesWithLibraryFirTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/findUsages/KotlinFindUsagesWithStdlibFirTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/findUsages/KotlinFindUsagesWithStdlibFirTestGenerated.java index 6c8379e6eef..af2f52a8dd5 100644 --- a/idea/idea-fir/tests/org/jetbrains/kotlin/findUsages/KotlinFindUsagesWithStdlibFirTestGenerated.java +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/findUsages/KotlinFindUsagesWithStdlibFirTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/idea/completion/HighLevelJvmBasicCompletionTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/idea/completion/HighLevelJvmBasicCompletionTestGenerated.java index 96d547e3c10..c1891fbeb7f 100644 --- a/idea/idea-fir/tests/org/jetbrains/kotlin/idea/completion/HighLevelJvmBasicCompletionTestGenerated.java +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/idea/completion/HighLevelJvmBasicCompletionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/idea/completion/test/handlers/HighLevelBasicCompletionHandlerTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/idea/completion/test/handlers/HighLevelBasicCompletionHandlerTestGenerated.java index 71d7824c096..574903f31f4 100644 --- a/idea/idea-fir/tests/org/jetbrains/kotlin/idea/completion/test/handlers/HighLevelBasicCompletionHandlerTestGenerated.java +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/idea/completion/test/handlers/HighLevelBasicCompletionHandlerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/idea/completion/wheigher/HighLevelWeigherTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/idea/completion/wheigher/HighLevelWeigherTestGenerated.java index 0f44b0e5780..4d90bb0d204 100644 --- a/idea/idea-fir/tests/org/jetbrains/kotlin/idea/completion/wheigher/HighLevelWeigherTestGenerated.java +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/idea/completion/wheigher/HighLevelWeigherTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/idea/highlighter/FirHighlightingTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/idea/highlighter/FirHighlightingTestGenerated.java index 43ca483ce98..803d3c63633 100644 --- a/idea/idea-fir/tests/org/jetbrains/kotlin/idea/highlighter/FirHighlightingTestGenerated.java +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/idea/highlighter/FirHighlightingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-fir/tests/org/jetbrains/kotlin/idea/resolve/FirReferenceResolveTestGenerated.java b/idea/idea-fir/tests/org/jetbrains/kotlin/idea/resolve/FirReferenceResolveTestGenerated.java index 63c9ac08348..b1e231b4d87 100644 --- a/idea/idea-fir/tests/org/jetbrains/kotlin/idea/resolve/FirReferenceResolveTestGenerated.java +++ b/idea/idea-fir/tests/org/jetbrains/kotlin/idea/resolve/FirReferenceResolveTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirLazyDeclarationResolveTestGenerated.java b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirLazyDeclarationResolveTestGenerated.java index 212bf8832b4..5d1f4296583 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirLazyDeclarationResolveTestGenerated.java +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirLazyDeclarationResolveTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirLazyResolveTestGenerated.java b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirLazyResolveTestGenerated.java index 29e581f23bc..c2774c2bf00 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirLazyResolveTestGenerated.java +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirLazyResolveTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirMultiModuleLazyResolveTestGenerated.java b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirMultiModuleLazyResolveTestGenerated.java index 2af0a8a96b8..5ae5bfba2f2 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirMultiModuleLazyResolveTestGenerated.java +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirMultiModuleLazyResolveTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirMultiModuleResolveTestGenerated.java b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirMultiModuleResolveTestGenerated.java index 9529ecccf43..85261163fd3 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirMultiModuleResolveTestGenerated.java +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/FirMultiModuleResolveTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureAndOutOfBlockModificationTrackerConsistencyTestGenerated.java b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureAndOutOfBlockModificationTrackerConsistencyTestGenerated.java index 078f3847319..a496538d374 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureAndOutOfBlockModificationTrackerConsistencyTestGenerated.java +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureAndOutOfBlockModificationTrackerConsistencyTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureTestGenerated.java b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureTestGenerated.java index 8b7a8a167d5..ad4960da0da 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureTestGenerated.java +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/SessionsInvalidationTestGenerated.java b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/SessionsInvalidationTestGenerated.java index f128753fd00..02564cfabec 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/SessionsInvalidationTestGenerated.java +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/SessionsInvalidationTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/trackers/ProjectWideOutOfBlockKotlinModificationTrackerTestGenerated.java b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/trackers/ProjectWideOutOfBlockKotlinModificationTrackerTestGenerated.java index 38eacdb55b6..598c1658bf5 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/trackers/ProjectWideOutOfBlockKotlinModificationTrackerTestGenerated.java +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/trackers/ProjectWideOutOfBlockKotlinModificationTrackerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/fir/KtDeclarationAndFirDeclarationEqualityCheckerGenerated.java b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/fir/KtDeclarationAndFirDeclarationEqualityCheckerGenerated.java index a4a408766ae..342420eb289 100644 --- a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/fir/KtDeclarationAndFirDeclarationEqualityCheckerGenerated.java +++ b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/fir/KtDeclarationAndFirDeclarationEqualityCheckerGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/components/ExpectedExpressionTypeTestGenerated.java b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/components/ExpectedExpressionTypeTestGenerated.java index 45f4db69fa8..aaad4c25a98 100644 --- a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/components/ExpectedExpressionTypeTestGenerated.java +++ b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/components/ExpectedExpressionTypeTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/components/ReturnExpressionTargetTestGenerated.java b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/components/ReturnExpressionTargetTestGenerated.java index 64808b71ce0..5c31f919735 100644 --- a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/components/ReturnExpressionTargetTestGenerated.java +++ b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/components/ReturnExpressionTargetTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/fir/ResolveCallTestGenerated.java b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/fir/ResolveCallTestGenerated.java index d69b9ad2ebb..d61359f9fbe 100644 --- a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/fir/ResolveCallTestGenerated.java +++ b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/fir/ResolveCallTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/scopes/FileScopeTestGenerated.java b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/scopes/FileScopeTestGenerated.java index 6c028e8adb6..ac38a0465a9 100644 --- a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/scopes/FileScopeTestGenerated.java +++ b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/scopes/FileScopeTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/scopes/MemberScopeByFqNameTestGenerated.java b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/scopes/MemberScopeByFqNameTestGenerated.java index 98c71f7b2d3..5dd71740025 100644 --- a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/scopes/MemberScopeByFqNameTestGenerated.java +++ b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/scopes/MemberScopeByFqNameTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/MemoryLeakInSymbolsTestGenerated.java b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/MemoryLeakInSymbolsTestGenerated.java index 8f92f41267e..43b37e11df0 100644 --- a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/MemoryLeakInSymbolsTestGenerated.java +++ b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/MemoryLeakInSymbolsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolFromLibraryPointerRestoreTestGenerated.java b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolFromLibraryPointerRestoreTestGenerated.java index 2c08adeae03..4db3f42be10 100644 --- a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolFromLibraryPointerRestoreTestGenerated.java +++ b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolFromLibraryPointerRestoreTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolFromSourcePointerRestoreTestGenerated.java b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolFromSourcePointerRestoreTestGenerated.java index 981bd9d58ef..eda8d9b23bb 100644 --- a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolFromSourcePointerRestoreTestGenerated.java +++ b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolFromSourcePointerRestoreTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolsByFqNameBuildingTestGenerated.java b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolsByFqNameBuildingTestGenerated.java index 8f803bcb471..eeb8c721a65 100644 --- a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolsByFqNameBuildingTestGenerated.java +++ b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolsByFqNameBuildingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolsByPsiBuildingTestGenerated.java b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolsByPsiBuildingTestGenerated.java index bab8fcbd38c..dead8b60eb5 100644 --- a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolsByPsiBuildingTestGenerated.java +++ b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolsByPsiBuildingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/configuration/GradleConfigureProjectByChangingFileTestGenerated.java b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/configuration/GradleConfigureProjectByChangingFileTestGenerated.java index 1f6c4dab454..ccc67267012 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/configuration/GradleConfigureProjectByChangingFileTestGenerated.java +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/configuration/GradleConfigureProjectByChangingFileTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenInspectionTestGenerated.java b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenInspectionTestGenerated.java index 7fb6017e042..df870b006e2 100644 --- a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenInspectionTestGenerated.java +++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/KotlinMavenInspectionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/configuration/MavenConfigureProjectByChangingFileTestGenerated.java b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/configuration/MavenConfigureProjectByChangingFileTestGenerated.java index 689fa83fa26..7d550c6e0e3 100644 --- a/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/configuration/MavenConfigureProjectByChangingFileTestGenerated.java +++ b/idea/idea-maven/test/org/jetbrains/kotlin/idea/maven/configuration/MavenConfigureProjectByChangingFileTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-new-project-wizard/tests/org/jetbrains/kotlin/tools/projectWizard/wizard/ProjectTemplateNewWizardProjectImportTestGenerated.java b/idea/idea-new-project-wizard/tests/org/jetbrains/kotlin/tools/projectWizard/wizard/ProjectTemplateNewWizardProjectImportTestGenerated.java index d0a45a47c67..ab254a936dd 100644 --- a/idea/idea-new-project-wizard/tests/org/jetbrains/kotlin/tools/projectWizard/wizard/ProjectTemplateNewWizardProjectImportTestGenerated.java +++ b/idea/idea-new-project-wizard/tests/org/jetbrains/kotlin/tools/projectWizard/wizard/ProjectTemplateNewWizardProjectImportTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/idea-new-project-wizard/tests/org/jetbrains/kotlin/tools/projectWizard/wizard/YamlNewWizardProjectImportTestGenerated.java b/idea/idea-new-project-wizard/tests/org/jetbrains/kotlin/tools/projectWizard/wizard/YamlNewWizardProjectImportTestGenerated.java index 929e8356699..2f4e5a208bd 100644 --- a/idea/idea-new-project-wizard/tests/org/jetbrains/kotlin/tools/projectWizard/wizard/YamlNewWizardProjectImportTestGenerated.java +++ b/idea/idea-new-project-wizard/tests/org/jetbrains/kotlin/tools/projectWizard/wizard/YamlNewWizardProjectImportTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/AsyncStackTraceTestGenerated.java b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/AsyncStackTraceTestGenerated.java index b5e03f3c5ba..841c56b47a6 100644 --- a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/AsyncStackTraceTestGenerated.java +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/AsyncStackTraceTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/BreakpointApplicabilityTestGenerated.java b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/BreakpointApplicabilityTestGenerated.java index 498b24516fc..a43ffb9bd87 100644 --- a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/BreakpointApplicabilityTestGenerated.java +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/BreakpointApplicabilityTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/ContinuationStackTraceTestGenerated.java b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/ContinuationStackTraceTestGenerated.java index 2902ca37de2..dfdebf56c63 100644 --- a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/ContinuationStackTraceTestGenerated.java +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/ContinuationStackTraceTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/CoroutineDumpTestGenerated.java b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/CoroutineDumpTestGenerated.java index 602d0d0a4a6..d56a55efff2 100644 --- a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/CoroutineDumpTestGenerated.java +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/CoroutineDumpTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/FileRankingTestGenerated.java b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/FileRankingTestGenerated.java index 370546d1fec..3dbf1a19704 100644 --- a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/FileRankingTestGenerated.java +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/FileRankingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionTestGenerated.java b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionTestGenerated.java index d4db231afd2..31b25014a26 100644 --- a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionTestGenerated.java +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinEvaluateExpressionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinSteppingTestGenerated.java b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinSteppingTestGenerated.java index 777e8c3d723..6b39eec53a2 100644 --- a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinSteppingTestGenerated.java +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/IrKotlinSteppingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinEvaluateExpressionTestGenerated.java b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinEvaluateExpressionTestGenerated.java index a4127bec327..a0ff77b097c 100644 --- a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinEvaluateExpressionTestGenerated.java +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinEvaluateExpressionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinSteppingTestGenerated.java b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinSteppingTestGenerated.java index c6e6fce0238..60e08be64e6 100644 --- a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinSteppingTestGenerated.java +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/KotlinSteppingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/PositionManagerTestGenerated.java b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/PositionManagerTestGenerated.java index 0e93984cc6b..deec21b0e6a 100644 --- a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/PositionManagerTestGenerated.java +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/PositionManagerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/SelectExpressionForDebuggerTestGenerated.java b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/SelectExpressionForDebuggerTestGenerated.java index d64c1d7bd6e..3002135e2b9 100644 --- a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/SelectExpressionForDebuggerTestGenerated.java +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/SelectExpressionForDebuggerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/SmartStepIntoTestGenerated.java b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/SmartStepIntoTestGenerated.java index 36972b2681b..4e9cd67ca67 100644 --- a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/SmartStepIntoTestGenerated.java +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/SmartStepIntoTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/XCoroutinesStackTraceTestGenerated.java b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/XCoroutinesStackTraceTestGenerated.java index 758d9f93b5e..39055707f1c 100644 --- a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/XCoroutinesStackTraceTestGenerated.java +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/XCoroutinesStackTraceTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/sequence/exec/SequenceTraceTestCaseGenerated.java b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/sequence/exec/SequenceTraceTestCaseGenerated.java index 0da64e99e7b..d0f0be8e9ea 100644 --- a/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/sequence/exec/SequenceTraceTestCaseGenerated.java +++ b/idea/jvm-debugger/jvm-debugger-test/test/org/jetbrains/kotlin/idea/debugger/test/sequence/exec/SequenceTraceTestCaseGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceAddImportTestGenerated.java b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceAddImportTestGenerated.java index 525c5ad9cfe..336fb5576df 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceAddImportTestGenerated.java +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceAddImportTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceBasicCompletionHandlerTestGenerated.java b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceBasicCompletionHandlerTestGenerated.java index 7be52c6a9b3..7529cb1d4ef 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceBasicCompletionHandlerTestGenerated.java +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceBasicCompletionHandlerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceCompletionCharFilterTestGenerated.java b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceCompletionCharFilterTestGenerated.java index c3d7c931b51..05c5e5ef002 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceCompletionCharFilterTestGenerated.java +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceCompletionCharFilterTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceCompletionIncrementalResolveTestGenerated.java b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceCompletionIncrementalResolveTestGenerated.java index 0e5d2e6075f..aa19958cce0 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceCompletionIncrementalResolveTestGenerated.java +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceCompletionIncrementalResolveTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceHighlightingTestGenerated.java b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceHighlightingTestGenerated.java index 936dc925a7e..eefe4ab340e 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceHighlightingTestGenerated.java +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceHighlightingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceJavaToKotlinCopyPasteConversionTestGenerated.java b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceJavaToKotlinCopyPasteConversionTestGenerated.java index 7b31d208b40..3c23c05ebef 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceJavaToKotlinCopyPasteConversionTestGenerated.java +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceJavaToKotlinCopyPasteConversionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceKeywordCompletionHandlerTestGenerated.java b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceKeywordCompletionHandlerTestGenerated.java index d34495ddd65..9512da57804 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceKeywordCompletionHandlerTestGenerated.java +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceKeywordCompletionHandlerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceLiteralKotlinToKotlinCopyPasteTestGenerated.java b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceLiteralKotlinToKotlinCopyPasteTestGenerated.java index aad67210fb1..0ffa237d61a 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceLiteralKotlinToKotlinCopyPasteTestGenerated.java +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceLiteralKotlinToKotlinCopyPasteTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceNewJavaToKotlinCopyPasteConversionTestGenerated.java b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceNewJavaToKotlinCopyPasteConversionTestGenerated.java index 22eba79b560..a9973d3899a 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceNewJavaToKotlinCopyPasteConversionTestGenerated.java +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceNewJavaToKotlinCopyPasteConversionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceSmartCompletionHandlerTestGenerated.java b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceSmartCompletionHandlerTestGenerated.java index b0e4228992a..798b9c8debe 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceSmartCompletionHandlerTestGenerated.java +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceSmartCompletionHandlerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceTypingIndentationTestGenerated.java b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceTypingIndentationTestGenerated.java index cbaa6d2e6ee..9c7bd799020 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceTypingIndentationTestGenerated.java +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/PerformanceTypingIndentationTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/scripting-support/test/org/jetbrains/kotlin/idea/scratch/ScratchLineMarkersTestGenerated.java b/idea/scripting-support/test/org/jetbrains/kotlin/idea/scratch/ScratchLineMarkersTestGenerated.java index 2024a6f0b6d..fa7a698f883 100644 --- a/idea/scripting-support/test/org/jetbrains/kotlin/idea/scratch/ScratchLineMarkersTestGenerated.java +++ b/idea/scripting-support/test/org/jetbrains/kotlin/idea/scratch/ScratchLineMarkersTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/scripting-support/test/org/jetbrains/kotlin/idea/scratch/ScratchRunActionTestGenerated.java b/idea/scripting-support/test/org/jetbrains/kotlin/idea/scratch/ScratchRunActionTestGenerated.java index 383712fa1f7..608858e2398 100644 --- a/idea/scripting-support/test/org/jetbrains/kotlin/idea/scratch/ScratchRunActionTestGenerated.java +++ b/idea/scripting-support/test/org/jetbrains/kotlin/idea/scratch/ScratchRunActionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/scripting-support/test/org/jetbrains/kotlin/idea/script/ScriptTemplatesFromDependenciesTestGenerated.java b/idea/scripting-support/test/org/jetbrains/kotlin/idea/script/ScriptTemplatesFromDependenciesTestGenerated.java index 894e6d121b7..cc76f26ca3c 100644 --- a/idea/scripting-support/test/org/jetbrains/kotlin/idea/script/ScriptTemplatesFromDependenciesTestGenerated.java +++ b/idea/scripting-support/test/org/jetbrains/kotlin/idea/script/ScriptTemplatesFromDependenciesTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/DataFlowValueRenderingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/DataFlowValueRenderingTestGenerated.java index 39f22c6fb31..100475da352 100644 --- a/idea/tests/org/jetbrains/kotlin/DataFlowValueRenderingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/DataFlowValueRenderingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/addImport/AddImportTestGenerated.java b/idea/tests/org/jetbrains/kotlin/addImport/AddImportTestGenerated.java index 25804e2336c..a1583fda3c0 100644 --- a/idea/tests/org/jetbrains/kotlin/addImport/AddImportTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/addImport/AddImportTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/addImportAlias/AddImportAliasTestGenerated.java b/idea/tests/org/jetbrains/kotlin/addImportAlias/AddImportAliasTestGenerated.java index a6504bd13a7..141cf15c86f 100644 --- a/idea/tests/org/jetbrains/kotlin/addImportAlias/AddImportAliasTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/addImportAlias/AddImportAliasTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightClassLoadingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightClassLoadingTestGenerated.java index f8137a90ff4..b5ad2192456 100644 --- a/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightClassLoadingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightClassLoadingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightClassSanityTestGenerated.java b/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightClassSanityTestGenerated.java index 27d9a8ce67c..159a0fb16bd 100644 --- a/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightClassSanityTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightClassSanityTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightFacadeClassTestGenerated.java b/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightFacadeClassTestGenerated.java index 48bcd4d4c84..9c47d495154 100644 --- a/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightFacadeClassTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightFacadeClassTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightScriptLoadingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightScriptLoadingTestGenerated.java index 2fec318c54d..551f53eb9a7 100644 --- a/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightScriptLoadingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/asJava/classes/UltraLightScriptLoadingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/checkers/JavaAgainstKotlinBinariesCheckerTestGenerated.java b/idea/tests/org/jetbrains/kotlin/checkers/JavaAgainstKotlinBinariesCheckerTestGenerated.java index 9ddff115850..c77d96f570e 100644 --- a/idea/tests/org/jetbrains/kotlin/checkers/JavaAgainstKotlinBinariesCheckerTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/checkers/JavaAgainstKotlinBinariesCheckerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/checkers/JavaAgainstKotlinSourceCheckerTestGenerated.java b/idea/tests/org/jetbrains/kotlin/checkers/JavaAgainstKotlinSourceCheckerTestGenerated.java index 66740bfa5cf..a8a6753d8f4 100644 --- a/idea/tests/org/jetbrains/kotlin/checkers/JavaAgainstKotlinSourceCheckerTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/checkers/JavaAgainstKotlinSourceCheckerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/checkers/JavaAgainstKotlinSourceCheckerWithoutUltraLightTestGenerated.java b/idea/tests/org/jetbrains/kotlin/checkers/JavaAgainstKotlinSourceCheckerWithoutUltraLightTestGenerated.java index 20d0a4fa8c3..a3a816d5335 100644 --- a/idea/tests/org/jetbrains/kotlin/checkers/JavaAgainstKotlinSourceCheckerWithoutUltraLightTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/checkers/JavaAgainstKotlinSourceCheckerWithoutUltraLightTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/checkers/JsCheckerTestGenerated.java b/idea/tests/org/jetbrains/kotlin/checkers/JsCheckerTestGenerated.java index 75608eedd8d..df6b0db2a21 100644 --- a/idea/tests/org/jetbrains/kotlin/checkers/JsCheckerTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/checkers/JsCheckerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/checkers/PsiCheckerTestGenerated.java b/idea/tests/org/jetbrains/kotlin/checkers/PsiCheckerTestGenerated.java index 3a6ffcd766b..e8a89d8269f 100644 --- a/idea/tests/org/jetbrains/kotlin/checkers/PsiCheckerTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/checkers/PsiCheckerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/copyright/UpdateKotlinCopyrightTestGenerated.java b/idea/tests/org/jetbrains/kotlin/copyright/UpdateKotlinCopyrightTestGenerated.java index d882a4a5ad6..29b5b4a42f0 100644 --- a/idea/tests/org/jetbrains/kotlin/copyright/UpdateKotlinCopyrightTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/copyright/UpdateKotlinCopyrightTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesTestGenerated.java b/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesTestGenerated.java index 4d1f56ef4a6..5194e5e7c5f 100644 --- a/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesWithDisableComponentSearchTestGenerated.java b/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesWithDisableComponentSearchTestGenerated.java index 6f93d2b2418..18ad2d5f20f 100644 --- a/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesWithDisableComponentSearchTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/findUsages/FindUsagesWithDisableComponentSearchTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/findUsages/KotlinFindUsagesWithLibraryTestGenerated.java b/idea/tests/org/jetbrains/kotlin/findUsages/KotlinFindUsagesWithLibraryTestGenerated.java index d92e634bb5b..8a2a947d429 100644 --- a/idea/tests/org/jetbrains/kotlin/findUsages/KotlinFindUsagesWithLibraryTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/findUsages/KotlinFindUsagesWithLibraryTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/findUsages/KotlinFindUsagesWithStdlibTestGenerated.java b/idea/tests/org/jetbrains/kotlin/findUsages/KotlinFindUsagesWithStdlibTestGenerated.java index c69109cc1d1..9cba7de169a 100644 --- a/idea/tests/org/jetbrains/kotlin/findUsages/KotlinFindUsagesWithStdlibTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/findUsages/KotlinFindUsagesWithStdlibTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java b/idea/tests/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java index 4df86e8e637..80b826e1534 100644 --- a/idea/tests/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/formatter/FormatterTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/formatter/TypingIndentationTestBaseGenerated.java b/idea/tests/org/jetbrains/kotlin/formatter/TypingIndentationTestBaseGenerated.java index cdb1cad602d..aa772912fa8 100644 --- a/idea/tests/org/jetbrains/kotlin/formatter/TypingIndentationTestBaseGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/formatter/TypingIndentationTestBaseGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/ExpressionSelectionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/ExpressionSelectionTestGenerated.java index 4b11877c2f6..d5290475513 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/ExpressionSelectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/ExpressionSelectionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/SmartSelectionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/SmartSelectionTestGenerated.java index 9e641947eb9..5b8da674982 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/SmartSelectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/SmartSelectionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/actions/GotoTestOrCodeActionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/actions/GotoTestOrCodeActionTestGenerated.java index f1dcd49c15c..19400ad8baf 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/actions/GotoTestOrCodeActionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/actions/GotoTestOrCodeActionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java index 811007b9119..0bcdc957e9e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassForScriptTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassForScriptTestGenerated.java index fcea7f305c6..06d54b9b2b1 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassForScriptTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassForScriptTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java index 405fccdc2d2..3296bb7e55c 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiModuleLineMarkerTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiModuleLineMarkerTestGenerated.java index 5b623c4b68f..abd62198a88 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiModuleLineMarkerTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiModuleLineMarkerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiPlatformHighlightingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiPlatformHighlightingTestGenerated.java index e6b6c0e5a72..422e6bb1f8d 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiPlatformHighlightingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiPlatformHighlightingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiplatformAnalysisTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiplatformAnalysisTestGenerated.java index 46f83369c3b..6c3e532452b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiplatformAnalysisTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/MultiplatformAnalysisTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/BreadcrumbsTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/BreadcrumbsTestGenerated.java index 861e7e16420..2d0f8cc591a 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/BreadcrumbsTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/BreadcrumbsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/ChangeLocalityDetectorTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/ChangeLocalityDetectorTestGenerated.java index ab1d6157441..a69d0184e7d 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/ChangeLocalityDetectorTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/ChangeLocalityDetectorTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/ExpressionTypeTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/ExpressionTypeTestGenerated.java index 2ebc71aec65..2329e352576 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/ExpressionTypeTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/ExpressionTypeTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/InsertImportOnPasteTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/InsertImportOnPasteTestGenerated.java index 9831d361909..4b56daadf49 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/InsertImportOnPasteTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/InsertImportOnPasteTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/InspectionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/InspectionTestGenerated.java index 9c40d004c7c..f065ee03c3b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/InspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/InspectionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/LineMarkersTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/LineMarkersTestGenerated.java index 8f4a3388e52..fd42073b3ad 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/LineMarkersTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/LineMarkersTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/LineMarkersTestInLibrarySourcesGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/LineMarkersTestInLibrarySourcesGenerated.java index 0d0d9fef8d7..0e8365dda0e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/LineMarkersTestInLibrarySourcesGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/LineMarkersTestInLibrarySourcesGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/MoveOnCutPasteTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/MoveOnCutPasteTestGenerated.java index c1632fc8ee3..4da572b6a3e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/MoveOnCutPasteTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/MoveOnCutPasteTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/MultiFileInspectionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/MultiFileInspectionTestGenerated.java index edc26e85601..14fb1dc7327 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/MultiFileInspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/MultiFileInspectionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OutOfBlockModificationTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OutOfBlockModificationTestGenerated.java index 82fd081b07e..25663d5cb99 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OutOfBlockModificationTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OutOfBlockModificationTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/RenderingKDocTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/RenderingKDocTestGenerated.java index aaa23117920..1e63bcc3213 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/RenderingKDocTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/RenderingKDocTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionProviderTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionProviderTestGenerated.java index d01e9305fd5..150ebf073ae 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionProviderTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/codevision/KotlinCodeVisionProviderTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/CodeInsightActionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/CodeInsightActionTestGenerated.java index ede23caf675..64e5dc3bb09 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/CodeInsightActionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/CodeInsightActionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/GenerateHashCodeAndEqualsActionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/GenerateHashCodeAndEqualsActionTestGenerated.java index 17750306d39..50f1f6760d4 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/GenerateHashCodeAndEqualsActionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/GenerateHashCodeAndEqualsActionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/GenerateTestSupportMethodActionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/GenerateTestSupportMethodActionTestGenerated.java index 84c7a3143f0..fde958c39cc 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/GenerateTestSupportMethodActionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/GenerateTestSupportMethodActionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/GenerateToStringActionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/GenerateToStringActionTestGenerated.java index 70b67b557bb..e46b1782c55 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/GenerateToStringActionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/GenerateToStringActionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/hints/KotlinReferenceTypeHintsProviderTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/hints/KotlinReferenceTypeHintsProviderTestGenerated.java index 21373640619..6f784bb4b82 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/hints/KotlinReferenceTypeHintsProviderTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/hints/KotlinReferenceTypeHintsProviderTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/MoveLeftRightTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/MoveLeftRightTestGenerated.java index fe4066b159b..bdbabedca8c 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/MoveLeftRightTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/MoveLeftRightTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/MoveStatementTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/MoveStatementTestGenerated.java index 35039821be9..ee5c7c7077b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/MoveStatementTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/MoveStatementTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/postfix/PostfixTemplateProviderTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/postfix/PostfixTemplateProviderTestGenerated.java index eab8eabdfe8..7564a7539f9 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/postfix/PostfixTemplateProviderTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/postfix/PostfixTemplateProviderTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/surroundWith/SurroundWithTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/surroundWith/SurroundWithTestGenerated.java index 56c963a5911..e97c70d311f 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/surroundWith/SurroundWithTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/surroundWith/SurroundWithTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/unwrap/UnwrapRemoveTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/unwrap/UnwrapRemoveTestGenerated.java index 200c182913b..1d57f6fcb33 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/unwrap/UnwrapRemoveTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/unwrap/UnwrapRemoveTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/JavaToKotlinCopyPasteConversionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/JavaToKotlinCopyPasteConversionTestGenerated.java index 7a752dd93d6..6fee9cc6895 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/JavaToKotlinCopyPasteConversionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/JavaToKotlinCopyPasteConversionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/LiteralKotlinToKotlinCopyPasteTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/LiteralKotlinToKotlinCopyPasteTestGenerated.java index 4c3bcab1a47..00f24bc1906 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/LiteralKotlinToKotlinCopyPasteTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/LiteralKotlinToKotlinCopyPasteTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/LiteralTextToKotlinCopyPasteTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/LiteralTextToKotlinCopyPasteTestGenerated.java index dea43c393ad..e11df0215a0 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/LiteralTextToKotlinCopyPasteTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/LiteralTextToKotlinCopyPasteTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/TextJavaToKotlinCopyPasteConversionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/TextJavaToKotlinCopyPasteConversionTestGenerated.java index f9c0b922a29..8564de7edf1 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/TextJavaToKotlinCopyPasteConversionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/conversion/copy/TextJavaToKotlinCopyPasteConversionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/coverage/KotlinCoverageOutputFilesTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/coverage/KotlinCoverageOutputFilesTestGenerated.java index 75a041fdd1d..c6e6b71a8e8 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/coverage/KotlinCoverageOutputFilesTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/coverage/KotlinCoverageOutputFilesTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentAutoImportTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentAutoImportTestGenerated.java index 270444fbc01..19724f71517 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentAutoImportTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentAutoImportTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentCompletionHandlerTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentCompletionHandlerTestGenerated.java index 54bde85a853..c2b9411f486 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentCompletionHandlerTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentCompletionHandlerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentCompletionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentCompletionTestGenerated.java index 9a169b120f2..ca7a86686a5 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentCompletionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentCompletionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentHighlightingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentHighlightingTestGenerated.java index d08c86558d0..54beb232776 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentHighlightingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/debugger/evaluate/CodeFragmentHighlightingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateJavaToLibrarySourceTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateJavaToLibrarySourceTestGenerated.java index 5caf8699d86..a01d991e083 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateJavaToLibrarySourceTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateJavaToLibrarySourceTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToDecompiledLibraryTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToDecompiledLibraryTestGenerated.java index 1f5ecc423fb..d388cb0ad10 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToDecompiledLibraryTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToDecompiledLibraryTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToLibrarySourceTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToLibrarySourceTestGenerated.java index 06400df387b..6ec3b124086 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToLibrarySourceTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToLibrarySourceTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToLibrarySourceTestWithJSGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToLibrarySourceTestWithJSGenerated.java index 99e4ae1b0e2..7c0e60df1e3 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToLibrarySourceTestWithJSGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/navigation/NavigateToLibrarySourceTestWithJSGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/ClsStubBuilderTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/ClsStubBuilderTestGenerated.java index 2431153cbc9..9805f510860 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/ClsStubBuilderTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/ClsStubBuilderTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/LoadJavaClsStubTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/LoadJavaClsStubTestGenerated.java index 87255e45791..0c21562e521 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/LoadJavaClsStubTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/LoadJavaClsStubTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/CommonDecompiledTextFromJsMetadataTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/CommonDecompiledTextFromJsMetadataTestGenerated.java index 67ff56f6ccd..c1729a9617b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/CommonDecompiledTextFromJsMetadataTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/CommonDecompiledTextFromJsMetadataTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/CommonDecompiledTextTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/CommonDecompiledTextTestGenerated.java index 55c621d5f6d..3cd2be21039 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/CommonDecompiledTextTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/CommonDecompiledTextTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/JsDecompiledTextFromJsMetadataTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/JsDecompiledTextFromJsMetadataTestGenerated.java index 1f838deee58..a9beb4158cf 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/JsDecompiledTextFromJsMetadataTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/JsDecompiledTextFromJsMetadataTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/JvmDecompiledTextTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/JvmDecompiledTextTestGenerated.java index c957b3fb5ef..1356c984d60 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/JvmDecompiledTextTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/JvmDecompiledTextTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/editor/EnterAfterUnmatchedBraceHandlerTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/editor/EnterAfterUnmatchedBraceHandlerTestGenerated.java index 556ecd2af31..013bbd6aa86 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/editor/EnterAfterUnmatchedBraceHandlerTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/editor/EnterAfterUnmatchedBraceHandlerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/editor/MultiLineStringIndentTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/editor/MultiLineStringIndentTestGenerated.java index 7c5ebff1e72..bb4113f56d8 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/editor/MultiLineStringIndentTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/editor/MultiLineStringIndentTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/editor/backspaceHandler/BackspaceHandlerTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/editor/backspaceHandler/BackspaceHandlerTestGenerated.java index 6ae6b70551a..11c19b8858e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/editor/backspaceHandler/BackspaceHandlerTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/editor/backspaceHandler/BackspaceHandlerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/editor/quickDoc/QuickDocProviderTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/editor/quickDoc/QuickDocProviderTestGenerated.java index d6224939bcc..7685a461c81 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/editor/quickDoc/QuickDocProviderTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/editor/quickDoc/QuickDocProviderTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/filters/KotlinExceptionFilterTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/filters/KotlinExceptionFilterTestGenerated.java index 161a0d7e3e6..4274d6bb332 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/filters/KotlinExceptionFilterTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/filters/KotlinExceptionFilterTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/folding/KotlinFoldingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/folding/KotlinFoldingTestGenerated.java index a3c73c6ad7a..5fe1fee1565 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/folding/KotlinFoldingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/folding/KotlinFoldingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/hierarchy/HierarchyTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/hierarchy/HierarchyTestGenerated.java index 4b0cf5ed842..8d34315f898 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/hierarchy/HierarchyTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/hierarchy/HierarchyTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/hierarchy/HierarchyWithLibTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/hierarchy/HierarchyWithLibTestGenerated.java index 2bb353a0d98..1686c96792f 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/hierarchy/HierarchyWithLibTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/hierarchy/HierarchyWithLibTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/highlighter/DiagnosticMessageJsTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/highlighter/DiagnosticMessageJsTestGenerated.java index 48c775e991f..c4cfa7205fc 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/highlighter/DiagnosticMessageJsTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/highlighter/DiagnosticMessageJsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/highlighter/DiagnosticMessageTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/highlighter/DiagnosticMessageTestGenerated.java index fe7356c5bd4..19f21cbf4a0 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/highlighter/DiagnosticMessageTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/highlighter/DiagnosticMessageTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/highlighter/DslHighlighterTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/highlighter/DslHighlighterTestGenerated.java index ab6403ad221..7fe52bfbe14 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/highlighter/DslHighlighterTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/highlighter/DslHighlighterTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightExitPointsTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightExitPointsTestGenerated.java index e19b942152d..ac0e12cf002 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightExitPointsTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightExitPointsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java index df8a62e69e2..45143d3f8f1 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/highlighter/UsageHighlightingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/highlighter/UsageHighlightingTestGenerated.java index c462b299369..a403d953c7c 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/highlighter/UsageHighlightingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/highlighter/UsageHighlightingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/imports/JsOptimizeImportsTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/imports/JsOptimizeImportsTestGenerated.java index 9a77dcfd75c..d224aa2e50c 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/imports/JsOptimizeImportsTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/imports/JsOptimizeImportsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/imports/JvmOptimizeImportsTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/imports/JvmOptimizeImportsTestGenerated.java index 7cea1ff9044..23622619f9a 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/imports/JvmOptimizeImportsTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/imports/JvmOptimizeImportsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/index/KotlinTypeAliasByExpansionShortNameIndexTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/index/KotlinTypeAliasByExpansionShortNameIndexTestGenerated.java index dd0097e274b..4ea18e5d950 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/index/KotlinTypeAliasByExpansionShortNameIndexTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/index/KotlinTypeAliasByExpansionShortNameIndexTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java index 1923ac3731f..0d671f91375 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/inspections/MultiFileLocalInspectionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/inspections/MultiFileLocalInspectionTestGenerated.java index 5176234a2bc..1a6951b1b49 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/inspections/MultiFileLocalInspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/inspections/MultiFileLocalInspectionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/ConcatenatedStringGeneratorTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/ConcatenatedStringGeneratorTestGenerated.java index 4ad784ec5bd..c8963d7208e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/ConcatenatedStringGeneratorTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/ConcatenatedStringGeneratorTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTest2Generated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTest2Generated.java index 4cc062e3cc1..a3b87bd286b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTest2Generated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTest2Generated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index e13e89a46ad..5364f343623 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/MultiFileIntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/MultiFileIntentionTestGenerated.java index 2750d5dec31..306f09ce0f3 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/MultiFileIntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/MultiFileIntentionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/declarations/JoinLinesTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/declarations/JoinLinesTestGenerated.java index 850f8440641..2c3de9e572a 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/declarations/JoinLinesTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/declarations/JoinLinesTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/internal/BytecodeToolWindowTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/internal/BytecodeToolWindowTestGenerated.java index 5a99ecee576..38b90bc94ab 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/internal/BytecodeToolWindowTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/internal/BytecodeToolWindowTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/kdoc/KDocHighlightingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/kdoc/KDocHighlightingTestGenerated.java index cf4de71a4ed..97672dcc946 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/kdoc/KDocHighlightingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/kdoc/KDocHighlightingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/kdoc/KDocTypingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/kdoc/KDocTypingTestGenerated.java index d9092dcf794..1329f384baf 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/kdoc/KDocTypingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/kdoc/KDocTypingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/kdoc/KdocResolveTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/kdoc/KdocResolveTestGenerated.java index bc202f2b9d5..7f4ee13f43b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/kdoc/KdocResolveTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/kdoc/KdocResolveTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/navigation/GotoDeclarationTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/navigation/GotoDeclarationTestGenerated.java index 5b2649e2bc0..82d2331e845 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/navigation/GotoDeclarationTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/navigation/GotoDeclarationTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/navigation/GotoSuperTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/navigation/GotoSuperTestGenerated.java index 3b695534901..4c98a520cf0 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/navigation/GotoSuperTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/navigation/GotoSuperTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/navigation/GotoTypeDeclarationTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/navigation/GotoTypeDeclarationTestGenerated.java index a972eff0767..1d0e12ee31d 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/navigation/GotoTypeDeclarationTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/navigation/GotoTypeDeclarationTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoImplementationMultiModuleTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoImplementationMultiModuleTestGenerated.java index 6399b67a1d7..8977748a7fd 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoImplementationMultiModuleTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoImplementationMultiModuleTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoImplementationTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoImplementationTestGenerated.java index e40e0c2f7d0..932c9d8cd83 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoImplementationTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoImplementationTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoRelatedSymbolMultiModuleTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoRelatedSymbolMultiModuleTestGenerated.java index fb16dd57f67..13aa1fffddb 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoRelatedSymbolMultiModuleTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoRelatedSymbolMultiModuleTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoSuperMultiModuleTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoSuperMultiModuleTestGenerated.java index 3c24b0cfb1d..e15b914a2d3 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoSuperMultiModuleTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoSuperMultiModuleTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoTestGenerated.java index fd9e7fdc4f3..8dfd20c831e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/navigation/KotlinGotoTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/navigationToolbar/KotlinNavBarTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/navigationToolbar/KotlinNavBarTestGenerated.java index 5e0fea4465a..a088a670f13 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/navigationToolbar/KotlinNavBarTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/navigationToolbar/KotlinNavBarTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/ParameterInfoTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/ParameterInfoTestGenerated.java index 600eed7753b..f1c22128834 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/ParameterInfoTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/ParameterInfoTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java index 5d652650a92..413c71cdcbd 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiFileTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiModuleTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiModuleTestGenerated.java index 6636f875e49..b940ab06d9b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiModuleTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixMultiModuleTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index 5ebe7a341de..2d431daa1df 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/NameSuggestionProviderTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/NameSuggestionProviderTestGenerated.java index cddd693d43b..c3790ec3da8 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/NameSuggestionProviderTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/NameSuggestionProviderTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/copy/CopyTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/copy/CopyTestGenerated.java index 286426d3358..16436b54fee 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/copy/CopyTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/copy/CopyTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/copy/MultiModuleCopyTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/copy/MultiModuleCopyTestGenerated.java index b950cf29921..8fa92910682 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/copy/MultiModuleCopyTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/copy/MultiModuleCopyTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/inline/InlineTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/inline/InlineTestGenerated.java index 850367d12e3..5f386c0d95a 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/inline/InlineTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/inline/InlineTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/ExtractionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/ExtractionTestGenerated.java index eabd044dc30..4347af3ab82 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/ExtractionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/ExtractionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java index 9bde6d812a6..65839a8e016 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MoveTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MultiModuleMoveTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MultiModuleMoveTestGenerated.java index c552cf22358..d640378a8a8 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MultiModuleMoveTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/move/MultiModuleMoveTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/pullUp/PullUpTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/pullUp/PullUpTestGenerated.java index 1903e9df72c..460231ec2d1 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/pullUp/PullUpTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/pullUp/PullUpTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/pushDown/PushDownTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/pushDown/PushDownTestGenerated.java index 4a10c8efe5e..c5e19fa853e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/pushDown/PushDownTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/pushDown/PushDownTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/MultiModuleRenameTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/MultiModuleRenameTestGenerated.java index ecdd3e19c9a..da1c0e8f325 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/MultiModuleRenameTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/MultiModuleRenameTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/RenameTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/RenameTestGenerated.java index 0a6a062b31f..ec3b471f3a8 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/RenameTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/rename/RenameTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/safeDelete/MultiModuleSafeDeleteTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/safeDelete/MultiModuleSafeDeleteTestGenerated.java index 206c13b6806..b7e55a3bd05 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/safeDelete/MultiModuleSafeDeleteTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/safeDelete/MultiModuleSafeDeleteTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/safeDelete/SafeDeleteTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/safeDelete/SafeDeleteTestGenerated.java index c8108880c47..097a5319a74 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/safeDelete/SafeDeleteTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/safeDelete/SafeDeleteTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/repl/IdeReplCompletionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/repl/IdeReplCompletionTestGenerated.java index 1a9ae136f60..d6cd3227c23 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/repl/IdeReplCompletionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/repl/IdeReplCompletionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/resolve/AdditionalResolveDescriptorRendererTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/resolve/AdditionalResolveDescriptorRendererTestGenerated.java index 8fe4f5f5d4e..6730064c4ee 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/resolve/AdditionalResolveDescriptorRendererTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/resolve/AdditionalResolveDescriptorRendererTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/resolve/PartialBodyResolveTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/resolve/PartialBodyResolveTestGenerated.java index fb126e8b0b3..d036a3e5b5a 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/resolve/PartialBodyResolveTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/resolve/PartialBodyResolveTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveInJavaTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveInJavaTestGenerated.java index aa34057a583..ad674042b5a 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveInJavaTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveInJavaTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveInLibrarySourcesTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveInLibrarySourcesTestGenerated.java index d4269a9f24e..99741d83a29 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveInLibrarySourcesTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveInLibrarySourcesTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveTestGenerated.java index 8ee4a6f234c..f03a2add44a 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveWithLibTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveWithLibTestGenerated.java index 9d406613060..d3ba3807715 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveWithLibTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceResolveWithLibTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceToCompiledKotlinResolveInJavaTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceToCompiledKotlinResolveInJavaTestGenerated.java index 58fb2c31598..bf1a74f475f 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceToCompiledKotlinResolveInJavaTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceToCompiledKotlinResolveInJavaTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceToJavaWithWrongFileStructureTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceToJavaWithWrongFileStructureTestGenerated.java index 743967149be..8c48fc0b855 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceToJavaWithWrongFileStructureTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/resolve/ReferenceToJavaWithWrongFileStructureTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/resolve/ResolveModeComparisonTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/resolve/ResolveModeComparisonTestGenerated.java index a6232481b2c..c160a615aef 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/resolve/ResolveModeComparisonTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/resolve/ResolveModeComparisonTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationCompletionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationCompletionTestGenerated.java index 3dbbbcb2f2b..b578fd9c255 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationCompletionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationCompletionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationHighlightingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationHighlightingTestGenerated.java index 0277111fbc0..00759c657f0 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationHighlightingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationHighlightingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationInsertImportOnPasteTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationInsertImportOnPasteTestGenerated.java index 6dfd9fa84a2..3d61892eae6 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationInsertImportOnPasteTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationInsertImportOnPasteTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationNavigationTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationNavigationTestGenerated.java index 51e4eb619de..a0c01ae4022 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationNavigationTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/script/ScriptConfigurationNavigationTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/script/ScriptDefinitionsOrderTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/script/ScriptDefinitionsOrderTestGenerated.java index 4232d32aed3..068e8a8578e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/script/ScriptDefinitionsOrderTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/script/ScriptDefinitionsOrderTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerLeafGroupingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerLeafGroupingTestGenerated.java index e03dd7a2622..036db5b141a 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerLeafGroupingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerLeafGroupingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerMultiplatformTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerMultiplatformTestGenerated.java index 5de24f22f00..15506c646b2 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerMultiplatformTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerMultiplatformTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerNullnessGroupingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerNullnessGroupingTestGenerated.java index 9a302b4c00b..30ee79a68af 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerNullnessGroupingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerNullnessGroupingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerTreeTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerTreeTestGenerated.java index d362101e910..5b295c5a694 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerTreeTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/slicer/SlicerTreeTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/structureView/KotlinFileStructureTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/structureView/KotlinFileStructureTestGenerated.java index e7573bf6108..863d41f8acc 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/structureView/KotlinFileStructureTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/structureView/KotlinFileStructureTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/stubs/MultiFileHighlightingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/stubs/MultiFileHighlightingTestGenerated.java index daeac78e713..ec163aace8b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/stubs/MultiFileHighlightingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/stubs/MultiFileHighlightingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/stubs/ResolveByStubTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/stubs/ResolveByStubTestGenerated.java index 3701f7375e5..b144cc2d50d 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/stubs/ResolveByStubTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/stubs/ResolveByStubTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/idea/stubs/StubBuilderTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/stubs/StubBuilderTestGenerated.java index 28e756c5d91..268eaf90192 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/stubs/StubBuilderTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/stubs/StubBuilderTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/psi/patternMatching/PsiUnifierTestGenerated.java b/idea/tests/org/jetbrains/kotlin/psi/patternMatching/PsiUnifierTestGenerated.java index 7d6b6077081..8c27bd371ad 100644 --- a/idea/tests/org/jetbrains/kotlin/psi/patternMatching/PsiUnifierTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/psi/patternMatching/PsiUnifierTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/search/AnnotatedMembersSearchTestGenerated.java b/idea/tests/org/jetbrains/kotlin/search/AnnotatedMembersSearchTestGenerated.java index 1960b0afa9e..7a2e2f0c4ed 100644 --- a/idea/tests/org/jetbrains/kotlin/search/AnnotatedMembersSearchTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/search/AnnotatedMembersSearchTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/search/InheritorsSearchTestGenerated.java b/idea/tests/org/jetbrains/kotlin/search/InheritorsSearchTestGenerated.java index 72a4be45350..6d9afb53fad 100644 --- a/idea/tests/org/jetbrains/kotlin/search/InheritorsSearchTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/search/InheritorsSearchTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/idea/tests/org/jetbrains/kotlin/shortenRefs/ShortenRefsTestGenerated.java b/idea/tests/org/jetbrains/kotlin/shortenRefs/ShortenRefsTestGenerated.java index 4a526095a1b..b165cb0d227 100644 --- a/idea/tests/org/jetbrains/kotlin/shortenRefs/ShortenRefsTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/shortenRefs/ShortenRefsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterForWebDemoTestGenerated.java b/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterForWebDemoTestGenerated.java index e2bb3d797ae..842ade6b92a 100644 --- a/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterForWebDemoTestGenerated.java +++ b/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterForWebDemoTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterMultiFileTestGenerated.java b/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterMultiFileTestGenerated.java index c0c8fa6d8aa..1fdda0a41b9 100644 --- a/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterMultiFileTestGenerated.java +++ b/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterMultiFileTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterSingleFileTestGenerated.java b/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterSingleFileTestGenerated.java index d5c168286fc..f950964db9f 100644 --- a/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterSingleFileTestGenerated.java +++ b/j2k/tests/org/jetbrains/kotlin/j2k/JavaToKotlinConverterSingleFileTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/DataContainerVersionChangedTestGenerated.java b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/DataContainerVersionChangedTestGenerated.java index 79b5c1e45c2..e6187d62e7d 100644 --- a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/DataContainerVersionChangedTestGenerated.java +++ b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/DataContainerVersionChangedTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalCacheVersionChangedTestGenerated.java b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalCacheVersionChangedTestGenerated.java index dba3c2db6f2..fbd79fb342e 100644 --- a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalCacheVersionChangedTestGenerated.java +++ b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalCacheVersionChangedTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalJsJpsTestGenerated.java b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalJsJpsTestGenerated.java index e181fc85bed..60fe26dcd93 100644 --- a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalJsJpsTestGenerated.java +++ b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalJsJpsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalJvmJpsTestGenerated.java b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalJvmJpsTestGenerated.java index 99f1a17016e..ffd63718730 100644 --- a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalJvmJpsTestGenerated.java +++ b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalJvmJpsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalLazyCachesTestGenerated.java b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalLazyCachesTestGenerated.java index 3f67e15c7bb..2fbe2a1e904 100644 --- a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalLazyCachesTestGenerated.java +++ b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/IncrementalLazyCachesTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/JsKlibLookupTrackerTestGenerated.java b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/JsKlibLookupTrackerTestGenerated.java index 8b59e851b06..0d2f4a2beb8 100644 --- a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/JsKlibLookupTrackerTestGenerated.java +++ b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/JsKlibLookupTrackerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/JsLookupTrackerTestGenerated.java b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/JsLookupTrackerTestGenerated.java index 89e80da5ae6..1234f1b33bc 100644 --- a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/JsLookupTrackerTestGenerated.java +++ b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/JsLookupTrackerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/JvmLookupTrackerTestGenerated.java b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/JvmLookupTrackerTestGenerated.java index 3403a74d25d..0c0cf2847d6 100644 --- a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/JvmLookupTrackerTestGenerated.java +++ b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/JvmLookupTrackerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/MultiplatformJpsTestWithGeneratedContentGenerated.java b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/MultiplatformJpsTestWithGeneratedContentGenerated.java index 27653a6270b..747ea41ecaf 100644 --- a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/MultiplatformJpsTestWithGeneratedContentGenerated.java +++ b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/build/MultiplatformJpsTestWithGeneratedContentGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/incremental/JsProtoComparisonTestGenerated.java b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/incremental/JsProtoComparisonTestGenerated.java index e0ade944522..bc9ea513f77 100644 --- a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/incremental/JsProtoComparisonTestGenerated.java +++ b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/incremental/JsProtoComparisonTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/incremental/JvmProtoComparisonTestGenerated.java b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/incremental/JvmProtoComparisonTestGenerated.java index 39e16c795f2..1573b5af26a 100644 --- a/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/incremental/JvmProtoComparisonTestGenerated.java +++ b/jps-plugin/jps-tests/test/org/jetbrains/kotlin/jps/incremental/JvmProtoComparisonTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/DceTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/DceTestGenerated.java index 04c068e42fa..1fbe774e37e 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/DceTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/DceTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsLineNumberTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsLineNumberTestGenerated.java index 7f0bcdcb847..51b67ea799c 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsLineNumberTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsLineNumberTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java index f77582329d5..af044a740bd 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index 8f1efbc235b..c7d1f85aee0 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenInlineES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenInlineES6TestGenerated.java index d1510db06e2..baf319def9c 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenInlineES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenInlineES6TestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsTypeScriptExportES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsTypeScriptExportES6TestGenerated.java index 9e539bd6eda..94fdf66a942 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsTypeScriptExportES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsTypeScriptExportES6TestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java index 655850b56ca..0a4d53b5d16 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxErrorTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxErrorTestGenerated.java index f87eb67f83e..7c960da1864 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxErrorTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxErrorTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index 663f2595cbf..01a8b2c3154 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenInlineTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenInlineTestGenerated.java index de2035eace0..3ae0f317bbf 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenInlineTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenInlineTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsTypeScriptExportTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsTypeScriptExportTestGenerated.java index 8ad857f44b4..5726ca3d2ae 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsTypeScriptExportTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsTypeScriptExportTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java index 470f7db8908..304d497b667 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index edef42e9e5b..e4ae8e42cd8 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenInlineTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenInlineTestGenerated.java index bcc68863e7d..1453d0bc88d 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenInlineTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenInlineTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsLegacyPrimitiveArraysBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsLegacyPrimitiveArraysBoxTestGenerated.java index 07ef06ac735..15e7138dd0b 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsLegacyPrimitiveArraysBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsLegacyPrimitiveArraysBoxTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/LegacyJsTypeScriptExportTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/LegacyJsTypeScriptExportTestGenerated.java index b9e05b3078d..b9b0061f6b0 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/LegacyJsTypeScriptExportTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/LegacyJsTypeScriptExportTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/OutputPrefixPostfixTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/OutputPrefixPostfixTestGenerated.java index f5539abaa20..7b819506967 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/OutputPrefixPostfixTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/OutputPrefixPostfixTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/SourceMapGenerationSmokeTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/SourceMapGenerationSmokeTestGenerated.java index 5e7766fb699..88168ce6a79 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/SourceMapGenerationSmokeTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/SourceMapGenerationSmokeTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java index 94203a9f9f9..c0b3f5fc551 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/tools/kotlinp/test/org/jetbrains/kotlin/kotlinp/test/KotlinpTestGenerated.java b/libraries/tools/kotlinp/test/org/jetbrains/kotlin/kotlinp/test/KotlinpTestGenerated.java index eb6bb062a0f..beb44181522 100644 --- a/libraries/tools/kotlinp/test/org/jetbrains/kotlin/kotlinp/test/KotlinpTestGenerated.java +++ b/libraries/tools/kotlinp/test/org/jetbrains/kotlin/kotlinp/test/KotlinpTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/tests/org/jetbrains/kotlin/tools/projectWizard/cli/ProjectTemplateBuildFileGenerationTestGenerated.java b/libraries/tools/new-project-wizard/new-project-wizard-cli/tests/org/jetbrains/kotlin/tools/projectWizard/cli/ProjectTemplateBuildFileGenerationTestGenerated.java index 38c1f30e2ca..b99618c9692 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/tests/org/jetbrains/kotlin/tools/projectWizard/cli/ProjectTemplateBuildFileGenerationTestGenerated.java +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/tests/org/jetbrains/kotlin/tools/projectWizard/cli/ProjectTemplateBuildFileGenerationTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/tools/new-project-wizard/new-project-wizard-cli/tests/org/jetbrains/kotlin/tools/projectWizard/cli/YamlBuildFileGenerationTestGenerated.java b/libraries/tools/new-project-wizard/new-project-wizard-cli/tests/org/jetbrains/kotlin/tools/projectWizard/cli/YamlBuildFileGenerationTestGenerated.java index ba04d6acf83..46aede072b8 100644 --- a/libraries/tools/new-project-wizard/new-project-wizard-cli/tests/org/jetbrains/kotlin/tools/projectWizard/cli/YamlBuildFileGenerationTestGenerated.java +++ b/libraries/tools/new-project-wizard/new-project-wizard-cli/tests/org/jetbrains/kotlin/tools/projectWizard/cli/YamlBuildFileGenerationTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverterMultiFileTestGenerated.java b/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverterMultiFileTestGenerated.java index e83973cb4b3..3aea66355ba 100644 --- a/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverterMultiFileTestGenerated.java +++ b/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverterMultiFileTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverterSingleFileTestGenerated.java b/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverterSingleFileTestGenerated.java index 8ecf6b6427a..abdae347e82 100644 --- a/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverterSingleFileTestGenerated.java +++ b/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverterSingleFileTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinCopyPasteConversionTestGenerated.java b/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinCopyPasteConversionTestGenerated.java index 83b959606b8..4531fc29cfd 100644 --- a/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinCopyPasteConversionTestGenerated.java +++ b/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinCopyPasteConversionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/nj2k/tests/org/jetbrains/kotlin/nj2k/TextNewJavaToKotlinCopyPasteConversionTestGenerated.java b/nj2k/tests/org/jetbrains/kotlin/nj2k/TextNewJavaToKotlinCopyPasteConversionTestGenerated.java index 4369f008d53..b10d4b46993 100644 --- a/nj2k/tests/org/jetbrains/kotlin/nj2k/TextNewJavaToKotlinCopyPasteConversionTestGenerated.java +++ b/nj2k/tests/org/jetbrains/kotlin/nj2k/TextNewJavaToKotlinCopyPasteConversionTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/nj2k/tests/org/jetbrains/kotlin/nj2k/inference/common/CommonConstraintCollectorTestGenerated.java b/nj2k/tests/org/jetbrains/kotlin/nj2k/inference/common/CommonConstraintCollectorTestGenerated.java index 7307ae99d13..2908a90665c 100644 --- a/nj2k/tests/org/jetbrains/kotlin/nj2k/inference/common/CommonConstraintCollectorTestGenerated.java +++ b/nj2k/tests/org/jetbrains/kotlin/nj2k/inference/common/CommonConstraintCollectorTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/nj2k/tests/org/jetbrains/kotlin/nj2k/inference/mutability/MutabilityInferenceTestGenerated.java b/nj2k/tests/org/jetbrains/kotlin/nj2k/inference/mutability/MutabilityInferenceTestGenerated.java index 03b0b1cf360..df6eab3731e 100644 --- a/nj2k/tests/org/jetbrains/kotlin/nj2k/inference/mutability/MutabilityInferenceTestGenerated.java +++ b/nj2k/tests/org/jetbrains/kotlin/nj2k/inference/mutability/MutabilityInferenceTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/nj2k/tests/org/jetbrains/kotlin/nj2k/inference/nullability/NullabilityInferenceTestGenerated.java b/nj2k/tests/org/jetbrains/kotlin/nj2k/inference/nullability/NullabilityInferenceTestGenerated.java index 58b4f973c40..0c53973da86 100644 --- a/nj2k/tests/org/jetbrains/kotlin/nj2k/inference/nullability/NullabilityInferenceTestGenerated.java +++ b/nj2k/tests/org/jetbrains/kotlin/nj2k/inference/nullability/NullabilityInferenceTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/allopen/allopen-cli/test/org/jetbrains/kotlin/allopen/BytecodeListingTestForAllOpenGenerated.java b/plugins/allopen/allopen-cli/test/org/jetbrains/kotlin/allopen/BytecodeListingTestForAllOpenGenerated.java index ba671abe42e..9fb66f3ddc8 100644 --- a/plugins/allopen/allopen-cli/test/org/jetbrains/kotlin/allopen/BytecodeListingTestForAllOpenGenerated.java +++ b/plugins/allopen/allopen-cli/test/org/jetbrains/kotlin/allopen/BytecodeListingTestForAllOpenGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTestGenerated.java b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTestGenerated.java index 79140be5d1f..7d9e9206ccf 100644 --- a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTestGenerated.java +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBoxTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBytecodeListingTestGenerated.java b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBytecodeListingTestGenerated.java index 24de7ac5a61..6b7b1c841b6 100644 --- a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBytecodeListingTestGenerated.java +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelBytecodeListingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBoxTestGenerated.java b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBoxTestGenerated.java index 04c65a03978..a4408f34d0a 100644 --- a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBoxTestGenerated.java +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBoxTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBytecodeListingTestGenerated.java b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBytecodeListingTestGenerated.java index 07311bf4481..a3379fc37f4 100644 --- a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBytecodeListingTestGenerated.java +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/parcel/ParcelIrBytecodeListingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/synthetic/test/AndroidBoxTestGenerated.java b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/synthetic/test/AndroidBoxTestGenerated.java index ed6e06fb93f..ff66a3fcbf9 100644 --- a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/synthetic/test/AndroidBoxTestGenerated.java +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/synthetic/test/AndroidBoxTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/synthetic/test/AndroidBytecodeShapeTestGenerated.java b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/synthetic/test/AndroidBytecodeShapeTestGenerated.java index b9f706b47dc..9238717e054 100644 --- a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/synthetic/test/AndroidBytecodeShapeTestGenerated.java +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/synthetic/test/AndroidBytecodeShapeTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/synthetic/test/AndroidIrBoxTestGenerated.java b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/synthetic/test/AndroidIrBoxTestGenerated.java index 9b4f62a8f10..b35e50c77e5 100644 --- a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/synthetic/test/AndroidIrBoxTestGenerated.java +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/synthetic/test/AndroidIrBoxTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/synthetic/test/AndroidSyntheticPropertyDescriptorTestGenerated.java b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/synthetic/test/AndroidSyntheticPropertyDescriptorTestGenerated.java index 9150ec4b115..4b571ff9c1b 100644 --- a/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/synthetic/test/AndroidSyntheticPropertyDescriptorTestGenerated.java +++ b/plugins/android-extensions/android-extensions-compiler/test/org/jetbrains/kotlin/android/synthetic/test/AndroidSyntheticPropertyDescriptorTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/fir/fir-plugin-prototype/tests/org/jetbrains/kotlin/fir/plugin/FirAllOpenDiagnosticTestGenerated.java b/plugins/fir/fir-plugin-prototype/tests/org/jetbrains/kotlin/fir/plugin/FirAllOpenDiagnosticTestGenerated.java index c7d8aacd7e0..7edf8d18b7e 100644 --- a/plugins/fir/fir-plugin-prototype/tests/org/jetbrains/kotlin/fir/plugin/FirAllOpenDiagnosticTestGenerated.java +++ b/plugins/fir/fir-plugin-prototype/tests/org/jetbrains/kotlin/fir/plugin/FirAllOpenDiagnosticTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/CompareJvmAbiTestGenerated.java b/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/CompareJvmAbiTestGenerated.java index b8ae2ad9c10..8c342b2d4ef 100644 --- a/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/CompareJvmAbiTestGenerated.java +++ b/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/CompareJvmAbiTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/CompileAgainstJvmAbiTestGenerated.java b/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/CompileAgainstJvmAbiTestGenerated.java index 197202ef040..a86c043b5fc 100644 --- a/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/CompileAgainstJvmAbiTestGenerated.java +++ b/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/CompileAgainstJvmAbiTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/JvmAbiContentTestGenerated.java b/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/JvmAbiContentTestGenerated.java index fdead7d1a16..fbbb87cf1d4 100644 --- a/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/JvmAbiContentTestGenerated.java +++ b/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/JvmAbiContentTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/kapt3/kapt3-cli/test/org/jetbrains/kotlin/kapt/cli/test/ArgumentParsingTestGenerated.java b/plugins/kapt3/kapt3-cli/test/org/jetbrains/kotlin/kapt/cli/test/ArgumentParsingTestGenerated.java index 9863d6c6535..8fc6d667ef1 100644 --- a/plugins/kapt3/kapt3-cli/test/org/jetbrains/kotlin/kapt/cli/test/ArgumentParsingTestGenerated.java +++ b/plugins/kapt3/kapt3-cli/test/org/jetbrains/kotlin/kapt/cli/test/ArgumentParsingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/kapt3/kapt3-cli/test/org/jetbrains/kotlin/kapt/cli/test/KaptToolIntegrationTestGenerated.java b/plugins/kapt3/kapt3-cli/test/org/jetbrains/kotlin/kapt/cli/test/KaptToolIntegrationTestGenerated.java index c690fb167b9..9c880effdfb 100644 --- a/plugins/kapt3/kapt3-cli/test/org/jetbrains/kotlin/kapt/cli/test/KaptToolIntegrationTestGenerated.java +++ b/plugins/kapt3/kapt3-cli/test/org/jetbrains/kotlin/kapt/cli/test/KaptToolIntegrationTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java index 04424b8ac39..1a862e3d1d4 100644 --- a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java +++ b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/IrClassFileToSourceStubConverterTestGenerated.java b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/IrClassFileToSourceStubConverterTestGenerated.java index 0d4b258cd98..c9b4da61a23 100644 --- a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/IrClassFileToSourceStubConverterTestGenerated.java +++ b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/IrClassFileToSourceStubConverterTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/IrKotlinKaptContextTestGenerated.java b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/IrKotlinKaptContextTestGenerated.java index 089c7289d02..ecec51479d0 100644 --- a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/IrKotlinKaptContextTestGenerated.java +++ b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/IrKotlinKaptContextTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/KotlinKaptContextTestGenerated.java b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/KotlinKaptContextTestGenerated.java index f2370e9cd18..b1c351bc7c9 100644 --- a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/KotlinKaptContextTestGenerated.java +++ b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/KotlinKaptContextTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationIrBytecodeListingTestGenerated.java b/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationIrBytecodeListingTestGenerated.java index 6e1ffafbdfc..296fbecf204 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationIrBytecodeListingTestGenerated.java +++ b/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationIrBytecodeListingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationPluginBytecodeListingTestGenerated.java b/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationPluginBytecodeListingTestGenerated.java index ba7aec4bc52..43aceead965 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationPluginBytecodeListingTestGenerated.java +++ b/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationPluginBytecodeListingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationPluginDiagnosticTestGenerated.java b/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationPluginDiagnosticTestGenerated.java index 80ef3b54c19..aea196ded15 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationPluginDiagnosticTestGenerated.java +++ b/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationPluginDiagnosticTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/BlackBoxCodegenTestForNoArgGenerated.java b/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/BlackBoxCodegenTestForNoArgGenerated.java index e58d85a283f..055d81cd212 100644 --- a/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/BlackBoxCodegenTestForNoArgGenerated.java +++ b/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/BlackBoxCodegenTestForNoArgGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/BytecodeListingTestForNoArgGenerated.java b/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/BytecodeListingTestForNoArgGenerated.java index fcc6d255bcb..b74b58e03e8 100644 --- a/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/BytecodeListingTestForNoArgGenerated.java +++ b/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/BytecodeListingTestForNoArgGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/DiagnosticsTestForNoArgGenerated.java b/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/DiagnosticsTestForNoArgGenerated.java index c6d90ac438c..2ed8c05308d 100644 --- a/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/DiagnosticsTestForNoArgGenerated.java +++ b/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/DiagnosticsTestForNoArgGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/IrBlackBoxCodegenTestForNoArgGenerated.java b/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/IrBlackBoxCodegenTestForNoArgGenerated.java index 5f0aae27db3..6710f7b6026 100644 --- a/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/IrBlackBoxCodegenTestForNoArgGenerated.java +++ b/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/IrBlackBoxCodegenTestForNoArgGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/IrBytecodeListingTestForNoArgGenerated.java b/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/IrBytecodeListingTestForNoArgGenerated.java index 151ea23ac4e..64198929455 100644 --- a/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/IrBytecodeListingTestForNoArgGenerated.java +++ b/plugins/noarg/noarg-cli/test/org/jetbrains/kotlin/noarg/IrBytecodeListingTestForNoArgGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeBoxTestGenerated.java b/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeBoxTestGenerated.java index 86a3ae9d9a6..4b64f286f96 100644 --- a/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeBoxTestGenerated.java +++ b/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeBoxTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeBytecodeListingTestGenerated.java b/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeBytecodeListingTestGenerated.java index babd9780b5e..8c0a40e1c8a 100644 --- a/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeBytecodeListingTestGenerated.java +++ b/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeBytecodeListingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeIrBoxTestGenerated.java b/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeIrBoxTestGenerated.java index 7e57b435772..cf4ba8134ec 100644 --- a/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeIrBoxTestGenerated.java +++ b/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeIrBoxTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeIrBytecodeListingTestGenerated.java b/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeIrBytecodeListingTestGenerated.java index 3ecc19ee6f6..a9b3944abc1 100644 --- a/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeIrBytecodeListingTestGenerated.java +++ b/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeIrBytecodeListingTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/parcelize/parcelize-ide/tests/org/jetbrains/kotlin/pacelize/ide/test/ParcelizeCheckerTestGenerated.java b/plugins/parcelize/parcelize-ide/tests/org/jetbrains/kotlin/pacelize/ide/test/ParcelizeCheckerTestGenerated.java index 72c0c5b81a8..0000bb862c7 100644 --- a/plugins/parcelize/parcelize-ide/tests/org/jetbrains/kotlin/pacelize/ide/test/ParcelizeCheckerTestGenerated.java +++ b/plugins/parcelize/parcelize-ide/tests/org/jetbrains/kotlin/pacelize/ide/test/ParcelizeCheckerTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/parcelize/parcelize-ide/tests/org/jetbrains/kotlin/pacelize/ide/test/ParcelizeQuickFixTestGenerated.java b/plugins/parcelize/parcelize-ide/tests/org/jetbrains/kotlin/pacelize/ide/test/ParcelizeQuickFixTestGenerated.java index c240abc7050..d27852e678c 100644 --- a/plugins/parcelize/parcelize-ide/tests/org/jetbrains/kotlin/pacelize/ide/test/ParcelizeQuickFixTestGenerated.java +++ b/plugins/parcelize/parcelize-ide/tests/org/jetbrains/kotlin/pacelize/ide/test/ParcelizeQuickFixTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/sam-with-receiver/sam-with-receiver-cli/test/org/jetbrains/kotlin/samWithReceiver/SamWithReceiverScriptTestGenerated.java b/plugins/sam-with-receiver/sam-with-receiver-cli/test/org/jetbrains/kotlin/samWithReceiver/SamWithReceiverScriptTestGenerated.java index a2218f254a4..f563d124508 100644 --- a/plugins/sam-with-receiver/sam-with-receiver-cli/test/org/jetbrains/kotlin/samWithReceiver/SamWithReceiverScriptTestGenerated.java +++ b/plugins/sam-with-receiver/sam-with-receiver-cli/test/org/jetbrains/kotlin/samWithReceiver/SamWithReceiverScriptTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/plugins/sam-with-receiver/sam-with-receiver-cli/test/org/jetbrains/kotlin/samWithReceiver/SamWithReceiverTestGenerated.java b/plugins/sam-with-receiver/sam-with-receiver-cli/test/org/jetbrains/kotlin/samWithReceiver/SamWithReceiverTestGenerated.java index 652152d9e5e..a9a606fcbf3 100644 --- a/plugins/sam-with-receiver/sam-with-receiver-cli/test/org/jetbrains/kotlin/samWithReceiver/SamWithReceiverTestGenerated.java +++ b/plugins/sam-with-receiver/sam-with-receiver-cli/test/org/jetbrains/kotlin/samWithReceiver/SamWithReceiverTestGenerated.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ From acd29481bd9ca68739c73140f0bdbd9b9cdb22b4 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Sun, 3 Jan 2021 22:31:06 +0100 Subject: [PATCH 50/71] Regenerate sources of builtins and stdlib --- core/builtins/native/kotlin/Arrays.kt | 2 +- core/builtins/native/kotlin/Primitives.kt | 2 +- core/builtins/src/kotlin/Iterators.kt | 2 +- core/builtins/src/kotlin/ProgressionIterators.kt | 2 +- core/builtins/src/kotlin/Progressions.kt | 2 +- core/builtins/src/kotlin/Ranges.kt | 2 +- libraries/stdlib/common/src/generated/_Arrays.kt | 2 +- libraries/stdlib/common/src/generated/_Collections.kt | 2 +- libraries/stdlib/common/src/generated/_Comparisons.kt | 2 +- libraries/stdlib/common/src/generated/_Maps.kt | 2 +- libraries/stdlib/common/src/generated/_Ranges.kt | 2 +- libraries/stdlib/common/src/generated/_Sequences.kt | 2 +- libraries/stdlib/common/src/generated/_Sets.kt | 2 +- libraries/stdlib/common/src/generated/_Strings.kt | 2 +- libraries/stdlib/common/src/generated/_UArrays.kt | 2 +- libraries/stdlib/common/src/generated/_UCollections.kt | 2 +- libraries/stdlib/common/src/generated/_UComparisons.kt | 2 +- libraries/stdlib/common/src/generated/_URanges.kt | 2 +- libraries/stdlib/common/src/generated/_USequences.kt | 2 +- libraries/stdlib/js-ir/src/generated/_ArraysJs.kt | 2 +- libraries/stdlib/js-ir/src/generated/_CollectionsJs.kt | 2 +- libraries/stdlib/js-ir/src/generated/_ComparisonsJs.kt | 2 +- libraries/stdlib/js-ir/src/generated/_StringsJs.kt | 2 +- libraries/stdlib/js-ir/src/generated/_UArraysJs.kt | 2 +- libraries/stdlib/js/src/generated/_ArraysJs.kt | 2 +- libraries/stdlib/js/src/generated/_CollectionsJs.kt | 2 +- libraries/stdlib/js/src/generated/_ComparisonsJs.kt | 2 +- libraries/stdlib/js/src/generated/_StringsJs.kt | 2 +- libraries/stdlib/js/src/generated/_UArraysJs.kt | 2 +- libraries/stdlib/jvm/runtime/kotlin/jvm/functions/Functions.kt | 2 +- .../stdlib/jvm/runtime/kotlin/jvm/internal/ArrayIterators.kt | 2 +- libraries/stdlib/jvm/src/generated/_ArraysJvm.kt | 2 +- libraries/stdlib/jvm/src/generated/_CollectionsJvm.kt | 2 +- libraries/stdlib/jvm/src/generated/_ComparisonsJvm.kt | 2 +- libraries/stdlib/jvm/src/generated/_SequencesJvm.kt | 2 +- libraries/stdlib/jvm/src/generated/_StringsJvm.kt | 2 +- libraries/stdlib/jvm/src/generated/_UArraysJvm.kt | 2 +- libraries/stdlib/unsigned/src/kotlin/UByte.kt | 2 +- libraries/stdlib/unsigned/src/kotlin/UByteArray.kt | 2 +- libraries/stdlib/unsigned/src/kotlin/UInt.kt | 2 +- libraries/stdlib/unsigned/src/kotlin/UIntArray.kt | 2 +- libraries/stdlib/unsigned/src/kotlin/UIntRange.kt | 2 +- libraries/stdlib/unsigned/src/kotlin/UIterators.kt | 2 +- libraries/stdlib/unsigned/src/kotlin/ULong.kt | 2 +- libraries/stdlib/unsigned/src/kotlin/ULongArray.kt | 2 +- libraries/stdlib/unsigned/src/kotlin/ULongRange.kt | 2 +- libraries/stdlib/unsigned/src/kotlin/UShort.kt | 2 +- libraries/stdlib/unsigned/src/kotlin/UShortArray.kt | 2 +- libraries/stdlib/wasm/src/generated/_ArraysWasm.kt | 2 +- libraries/stdlib/wasm/src/generated/_CollectionsWasm.kt | 2 +- libraries/stdlib/wasm/src/generated/_ComparisonsWasm.kt | 2 +- libraries/stdlib/wasm/src/generated/_StringsWasm.kt | 2 +- libraries/stdlib/wasm/src/generated/_UArraysWasm.kt | 2 +- 53 files changed, 53 insertions(+), 53 deletions(-) diff --git a/core/builtins/native/kotlin/Arrays.kt b/core/builtins/native/kotlin/Arrays.kt index b5eb9a894f1..8fb6a6225e6 100644 --- a/core/builtins/native/kotlin/Arrays.kt +++ b/core/builtins/native/kotlin/Arrays.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/core/builtins/native/kotlin/Primitives.kt b/core/builtins/native/kotlin/Primitives.kt index 3833a6d9293..e6a49bbfb61 100644 --- a/core/builtins/native/kotlin/Primitives.kt +++ b/core/builtins/native/kotlin/Primitives.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/core/builtins/src/kotlin/Iterators.kt b/core/builtins/src/kotlin/Iterators.kt index 2bb4904081b..7b3e67aa23f 100644 --- a/core/builtins/src/kotlin/Iterators.kt +++ b/core/builtins/src/kotlin/Iterators.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/core/builtins/src/kotlin/ProgressionIterators.kt b/core/builtins/src/kotlin/ProgressionIterators.kt index 3d9f228d15c..3ef513d272c 100644 --- a/core/builtins/src/kotlin/ProgressionIterators.kt +++ b/core/builtins/src/kotlin/ProgressionIterators.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/core/builtins/src/kotlin/Progressions.kt b/core/builtins/src/kotlin/Progressions.kt index bff4e443d73..366285f1076 100644 --- a/core/builtins/src/kotlin/Progressions.kt +++ b/core/builtins/src/kotlin/Progressions.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/core/builtins/src/kotlin/Ranges.kt b/core/builtins/src/kotlin/Ranges.kt index 77b9a314398..3c85fef2116 100644 --- a/core/builtins/src/kotlin/Ranges.kt +++ b/core/builtins/src/kotlin/Ranges.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/common/src/generated/_Arrays.kt b/libraries/stdlib/common/src/generated/_Arrays.kt index a9139866a6a..12343bbf70f 100644 --- a/libraries/stdlib/common/src/generated/_Arrays.kt +++ b/libraries/stdlib/common/src/generated/_Arrays.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/common/src/generated/_Collections.kt b/libraries/stdlib/common/src/generated/_Collections.kt index 4d2004e1fda..02c3bbf3c7b 100644 --- a/libraries/stdlib/common/src/generated/_Collections.kt +++ b/libraries/stdlib/common/src/generated/_Collections.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/common/src/generated/_Comparisons.kt b/libraries/stdlib/common/src/generated/_Comparisons.kt index 1384fc0b29d..410330d7a9d 100644 --- a/libraries/stdlib/common/src/generated/_Comparisons.kt +++ b/libraries/stdlib/common/src/generated/_Comparisons.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/common/src/generated/_Maps.kt b/libraries/stdlib/common/src/generated/_Maps.kt index a9314a02973..c8fdf62bd7a 100644 --- a/libraries/stdlib/common/src/generated/_Maps.kt +++ b/libraries/stdlib/common/src/generated/_Maps.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/common/src/generated/_Ranges.kt b/libraries/stdlib/common/src/generated/_Ranges.kt index 3c59a49aec9..5b8eff037b1 100644 --- a/libraries/stdlib/common/src/generated/_Ranges.kt +++ b/libraries/stdlib/common/src/generated/_Ranges.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/common/src/generated/_Sequences.kt b/libraries/stdlib/common/src/generated/_Sequences.kt index ea87d1d46c5..5076ae68c56 100644 --- a/libraries/stdlib/common/src/generated/_Sequences.kt +++ b/libraries/stdlib/common/src/generated/_Sequences.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/common/src/generated/_Sets.kt b/libraries/stdlib/common/src/generated/_Sets.kt index fe317888346..0599935c164 100644 --- a/libraries/stdlib/common/src/generated/_Sets.kt +++ b/libraries/stdlib/common/src/generated/_Sets.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/common/src/generated/_Strings.kt b/libraries/stdlib/common/src/generated/_Strings.kt index b86a799c3b9..8df986d7804 100644 --- a/libraries/stdlib/common/src/generated/_Strings.kt +++ b/libraries/stdlib/common/src/generated/_Strings.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/common/src/generated/_UArrays.kt b/libraries/stdlib/common/src/generated/_UArrays.kt index f911da0a238..a63fb2f6180 100644 --- a/libraries/stdlib/common/src/generated/_UArrays.kt +++ b/libraries/stdlib/common/src/generated/_UArrays.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/common/src/generated/_UCollections.kt b/libraries/stdlib/common/src/generated/_UCollections.kt index 5a068f6b781..116221b2b1f 100644 --- a/libraries/stdlib/common/src/generated/_UCollections.kt +++ b/libraries/stdlib/common/src/generated/_UCollections.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/common/src/generated/_UComparisons.kt b/libraries/stdlib/common/src/generated/_UComparisons.kt index 8344e0e21d9..f9de0ed96b2 100644 --- a/libraries/stdlib/common/src/generated/_UComparisons.kt +++ b/libraries/stdlib/common/src/generated/_UComparisons.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/common/src/generated/_URanges.kt b/libraries/stdlib/common/src/generated/_URanges.kt index c308b5544b8..4e3ce0e9891 100644 --- a/libraries/stdlib/common/src/generated/_URanges.kt +++ b/libraries/stdlib/common/src/generated/_URanges.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/common/src/generated/_USequences.kt b/libraries/stdlib/common/src/generated/_USequences.kt index beb75fdf8f9..fc3108d4f8e 100644 --- a/libraries/stdlib/common/src/generated/_USequences.kt +++ b/libraries/stdlib/common/src/generated/_USequences.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/js-ir/src/generated/_ArraysJs.kt b/libraries/stdlib/js-ir/src/generated/_ArraysJs.kt index 81bc399d1a8..fde309db189 100644 --- a/libraries/stdlib/js-ir/src/generated/_ArraysJs.kt +++ b/libraries/stdlib/js-ir/src/generated/_ArraysJs.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/js-ir/src/generated/_CollectionsJs.kt b/libraries/stdlib/js-ir/src/generated/_CollectionsJs.kt index 44d8c3663a9..f3d0c4c2c93 100644 --- a/libraries/stdlib/js-ir/src/generated/_CollectionsJs.kt +++ b/libraries/stdlib/js-ir/src/generated/_CollectionsJs.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/js-ir/src/generated/_ComparisonsJs.kt b/libraries/stdlib/js-ir/src/generated/_ComparisonsJs.kt index 23e1846d40a..002948c2bff 100644 --- a/libraries/stdlib/js-ir/src/generated/_ComparisonsJs.kt +++ b/libraries/stdlib/js-ir/src/generated/_ComparisonsJs.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/js-ir/src/generated/_StringsJs.kt b/libraries/stdlib/js-ir/src/generated/_StringsJs.kt index 3a04908e4de..f7ef8db5330 100644 --- a/libraries/stdlib/js-ir/src/generated/_StringsJs.kt +++ b/libraries/stdlib/js-ir/src/generated/_StringsJs.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/js-ir/src/generated/_UArraysJs.kt b/libraries/stdlib/js-ir/src/generated/_UArraysJs.kt index 7e3630eecf5..8ba260f0a73 100644 --- a/libraries/stdlib/js-ir/src/generated/_UArraysJs.kt +++ b/libraries/stdlib/js-ir/src/generated/_UArraysJs.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/js/src/generated/_ArraysJs.kt b/libraries/stdlib/js/src/generated/_ArraysJs.kt index dab9c3c7ee8..689e24bbac7 100644 --- a/libraries/stdlib/js/src/generated/_ArraysJs.kt +++ b/libraries/stdlib/js/src/generated/_ArraysJs.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/js/src/generated/_CollectionsJs.kt b/libraries/stdlib/js/src/generated/_CollectionsJs.kt index 44d8c3663a9..f3d0c4c2c93 100644 --- a/libraries/stdlib/js/src/generated/_CollectionsJs.kt +++ b/libraries/stdlib/js/src/generated/_CollectionsJs.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/js/src/generated/_ComparisonsJs.kt b/libraries/stdlib/js/src/generated/_ComparisonsJs.kt index 23e1846d40a..002948c2bff 100644 --- a/libraries/stdlib/js/src/generated/_ComparisonsJs.kt +++ b/libraries/stdlib/js/src/generated/_ComparisonsJs.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/js/src/generated/_StringsJs.kt b/libraries/stdlib/js/src/generated/_StringsJs.kt index 3a04908e4de..f7ef8db5330 100644 --- a/libraries/stdlib/js/src/generated/_StringsJs.kt +++ b/libraries/stdlib/js/src/generated/_StringsJs.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/js/src/generated/_UArraysJs.kt b/libraries/stdlib/js/src/generated/_UArraysJs.kt index 7e3630eecf5..8ba260f0a73 100644 --- a/libraries/stdlib/js/src/generated/_UArraysJs.kt +++ b/libraries/stdlib/js/src/generated/_UArraysJs.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/jvm/runtime/kotlin/jvm/functions/Functions.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/functions/Functions.kt index 9dc38e17414..ca74e74db75 100644 --- a/libraries/stdlib/jvm/runtime/kotlin/jvm/functions/Functions.kt +++ b/libraries/stdlib/jvm/runtime/kotlin/jvm/functions/Functions.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/ArrayIterators.kt b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/ArrayIterators.kt index e2bd6d842b2..553ddeba6d1 100644 --- a/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/ArrayIterators.kt +++ b/libraries/stdlib/jvm/runtime/kotlin/jvm/internal/ArrayIterators.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/jvm/src/generated/_ArraysJvm.kt b/libraries/stdlib/jvm/src/generated/_ArraysJvm.kt index 256cb556ae0..ce326743c2e 100644 --- a/libraries/stdlib/jvm/src/generated/_ArraysJvm.kt +++ b/libraries/stdlib/jvm/src/generated/_ArraysJvm.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/jvm/src/generated/_CollectionsJvm.kt b/libraries/stdlib/jvm/src/generated/_CollectionsJvm.kt index 05b9d2a613d..6c118a039e2 100644 --- a/libraries/stdlib/jvm/src/generated/_CollectionsJvm.kt +++ b/libraries/stdlib/jvm/src/generated/_CollectionsJvm.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/jvm/src/generated/_ComparisonsJvm.kt b/libraries/stdlib/jvm/src/generated/_ComparisonsJvm.kt index 3556db5edc4..c922d8cd9ba 100644 --- a/libraries/stdlib/jvm/src/generated/_ComparisonsJvm.kt +++ b/libraries/stdlib/jvm/src/generated/_ComparisonsJvm.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/jvm/src/generated/_SequencesJvm.kt b/libraries/stdlib/jvm/src/generated/_SequencesJvm.kt index c2857a051b4..c0b7d36b3c8 100644 --- a/libraries/stdlib/jvm/src/generated/_SequencesJvm.kt +++ b/libraries/stdlib/jvm/src/generated/_SequencesJvm.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/jvm/src/generated/_StringsJvm.kt b/libraries/stdlib/jvm/src/generated/_StringsJvm.kt index 4889fc842fc..30df1e5256b 100644 --- a/libraries/stdlib/jvm/src/generated/_StringsJvm.kt +++ b/libraries/stdlib/jvm/src/generated/_StringsJvm.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/jvm/src/generated/_UArraysJvm.kt b/libraries/stdlib/jvm/src/generated/_UArraysJvm.kt index 18b289e1d38..52604127ff7 100644 --- a/libraries/stdlib/jvm/src/generated/_UArraysJvm.kt +++ b/libraries/stdlib/jvm/src/generated/_UArraysJvm.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/unsigned/src/kotlin/UByte.kt b/libraries/stdlib/unsigned/src/kotlin/UByte.kt index ce262944047..108e04f0f03 100644 --- a/libraries/stdlib/unsigned/src/kotlin/UByte.kt +++ b/libraries/stdlib/unsigned/src/kotlin/UByte.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/unsigned/src/kotlin/UByteArray.kt b/libraries/stdlib/unsigned/src/kotlin/UByteArray.kt index 65b0a9b4970..63d885be908 100644 --- a/libraries/stdlib/unsigned/src/kotlin/UByteArray.kt +++ b/libraries/stdlib/unsigned/src/kotlin/UByteArray.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/unsigned/src/kotlin/UInt.kt b/libraries/stdlib/unsigned/src/kotlin/UInt.kt index c5273c3698d..cd5527c5410 100644 --- a/libraries/stdlib/unsigned/src/kotlin/UInt.kt +++ b/libraries/stdlib/unsigned/src/kotlin/UInt.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/unsigned/src/kotlin/UIntArray.kt b/libraries/stdlib/unsigned/src/kotlin/UIntArray.kt index 89857ebef76..e414edd52ce 100644 --- a/libraries/stdlib/unsigned/src/kotlin/UIntArray.kt +++ b/libraries/stdlib/unsigned/src/kotlin/UIntArray.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/unsigned/src/kotlin/UIntRange.kt b/libraries/stdlib/unsigned/src/kotlin/UIntRange.kt index 48c77534f4a..521f61e047c 100644 --- a/libraries/stdlib/unsigned/src/kotlin/UIntRange.kt +++ b/libraries/stdlib/unsigned/src/kotlin/UIntRange.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/unsigned/src/kotlin/UIterators.kt b/libraries/stdlib/unsigned/src/kotlin/UIterators.kt index 2a92503267f..5924a516726 100644 --- a/libraries/stdlib/unsigned/src/kotlin/UIterators.kt +++ b/libraries/stdlib/unsigned/src/kotlin/UIterators.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/unsigned/src/kotlin/ULong.kt b/libraries/stdlib/unsigned/src/kotlin/ULong.kt index db03542cfef..6984c1da4ff 100644 --- a/libraries/stdlib/unsigned/src/kotlin/ULong.kt +++ b/libraries/stdlib/unsigned/src/kotlin/ULong.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/unsigned/src/kotlin/ULongArray.kt b/libraries/stdlib/unsigned/src/kotlin/ULongArray.kt index 4947e140da3..c26ef7505b1 100644 --- a/libraries/stdlib/unsigned/src/kotlin/ULongArray.kt +++ b/libraries/stdlib/unsigned/src/kotlin/ULongArray.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/unsigned/src/kotlin/ULongRange.kt b/libraries/stdlib/unsigned/src/kotlin/ULongRange.kt index b1d2dbd2561..de833930884 100644 --- a/libraries/stdlib/unsigned/src/kotlin/ULongRange.kt +++ b/libraries/stdlib/unsigned/src/kotlin/ULongRange.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/unsigned/src/kotlin/UShort.kt b/libraries/stdlib/unsigned/src/kotlin/UShort.kt index 055ac1055f0..cae4537e5bf 100644 --- a/libraries/stdlib/unsigned/src/kotlin/UShort.kt +++ b/libraries/stdlib/unsigned/src/kotlin/UShort.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/unsigned/src/kotlin/UShortArray.kt b/libraries/stdlib/unsigned/src/kotlin/UShortArray.kt index 5c464c8a9cb..fa980913d11 100644 --- a/libraries/stdlib/unsigned/src/kotlin/UShortArray.kt +++ b/libraries/stdlib/unsigned/src/kotlin/UShortArray.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/wasm/src/generated/_ArraysWasm.kt b/libraries/stdlib/wasm/src/generated/_ArraysWasm.kt index df7fd477c9a..70e189a99fb 100644 --- a/libraries/stdlib/wasm/src/generated/_ArraysWasm.kt +++ b/libraries/stdlib/wasm/src/generated/_ArraysWasm.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/wasm/src/generated/_CollectionsWasm.kt b/libraries/stdlib/wasm/src/generated/_CollectionsWasm.kt index 776281e0520..b8b3bf3a5c6 100644 --- a/libraries/stdlib/wasm/src/generated/_CollectionsWasm.kt +++ b/libraries/stdlib/wasm/src/generated/_CollectionsWasm.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/wasm/src/generated/_ComparisonsWasm.kt b/libraries/stdlib/wasm/src/generated/_ComparisonsWasm.kt index d19edc4f00b..bb961f65f42 100644 --- a/libraries/stdlib/wasm/src/generated/_ComparisonsWasm.kt +++ b/libraries/stdlib/wasm/src/generated/_ComparisonsWasm.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/wasm/src/generated/_StringsWasm.kt b/libraries/stdlib/wasm/src/generated/_StringsWasm.kt index 9ed5b20ff09..c2897106762 100644 --- a/libraries/stdlib/wasm/src/generated/_StringsWasm.kt +++ b/libraries/stdlib/wasm/src/generated/_StringsWasm.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ diff --git a/libraries/stdlib/wasm/src/generated/_UArraysWasm.kt b/libraries/stdlib/wasm/src/generated/_UArraysWasm.kt index a42075114c8..d3f798a6da7 100644 --- a/libraries/stdlib/wasm/src/generated/_UArraysWasm.kt +++ b/libraries/stdlib/wasm/src/generated/_UArraysWasm.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2021 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. */ From ee2ae0c4712a1d698d72f9ccc8acf8acb79f8a57 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 23 Dec 2020 19:14:00 +0100 Subject: [PATCH 51/71] JVM IR: remove obsolete -Xir-check-local-names This flag was added a long time ago, at the time when we weren't sure if we were going to keep the naming of local and anonymous classes completely equal to the naming in the old backend. Now that we've decided that we won't keep it equal and there are a lot of differences already, it's not useful anymore. --- .../kotlin/codegen/state/GenerationState.kt | 11 ++-- .../arguments/K2JVMCompilerArguments.kt | 7 --- .../kotlin/config/JvmAnalysisFlags.kt | 3 - .../jetbrains/kotlin/backend/jvm/JvmLower.kt | 2 - .../lower/CheckLocalNamesWithOldBackend.kt | 59 ------------------- compiler/testData/cli/jvm/extraHelp.out | 1 - 6 files changed, 7 insertions(+), 76 deletions(-) delete mode 100644 compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/CheckLocalNamesWithOldBackend.kt diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt index 844cfe00604..ddc5fc3e414 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/state/GenerationState.kt @@ -108,7 +108,7 @@ class GenerationState private constructor( fun wantsDiagnostics(v: Boolean) = apply { wantsDiagnostics = v } - var jvmBackendClassResolver: JvmBackendClassResolver = JvmBackendClassResolverForModuleWithDependencies(module); private set + private var jvmBackendClassResolver: JvmBackendClassResolver = JvmBackendClassResolverForModuleWithDependencies(module) fun jvmBackendClassResolver(v: JvmBackendClassResolver) = apply { jvmBackendClassResolver = v } @@ -153,8 +153,10 @@ class GenerationState private constructor( val deserializationConfiguration: DeserializationConfiguration = CompilerDeserializationConfiguration(configuration.languageVersionSettings) - val deprecationProvider = - DeprecationResolver(LockBasedStorageManager.NO_LOCKS, configuration.languageVersionSettings, CoroutineCompatibilitySupport.ENABLED, JavaDeprecationSettings) + val deprecationProvider = DeprecationResolver( + LockBasedStorageManager.NO_LOCKS, configuration.languageVersionSettings, CoroutineCompatibilitySupport.ENABLED, + JavaDeprecationSettings + ) init { val icComponents = configuration.get(JVMConfigurationKeys.INCREMENTAL_COMPILATION_COMPONENTS) @@ -250,6 +252,7 @@ class GenerationState private constructor( class ForScript { // quite a mess, this one is an input from repl interpreter var earlierScriptsForReplInterpreter: List? = null + // and the rest is an output from the codegen var resultFieldName: String? = null var resultTypeString: String? = null @@ -346,7 +349,7 @@ class GenerationState private constructor( fun beforeCompile() { markUsed() - if (!isIrBackend || languageVersionSettings.getFlag(JvmAnalysisFlags.irCheckLocalNames)) { + if (!isIrBackend) { CodegenBinding.initTrace(this) } } diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt index 25ff966572d..1ce3fb3efa4 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt @@ -88,12 +88,6 @@ class K2JVMCompilerArguments : CommonCompilerArguments() { @Argument(value = "-Xno-use-ir", description = "Do not use the IR backend. Useful for a custom-built compiler where IR backend is enabled by default") var noUseIR: Boolean by FreezableVar(false) - @Argument( - value = "-Xir-check-local-names", - description = "Check that names of local classes and anonymous objects are the same in the IR backend as in the old backend" - ) - var irCheckLocalNames: Boolean by FreezableVar(false) - @Argument( value = "-Xallow-unstable-dependencies", description = "Do not report errors on classes in dependencies, which were compiled by an unstable version of the Kotlin compiler" @@ -446,7 +440,6 @@ class K2JVMCompilerArguments : CommonCompilerArguments() { result[JvmAnalysisFlags.inheritMultifileParts] = inheritMultifileParts result[JvmAnalysisFlags.sanitizeParentheses] = sanitizeParentheses result[JvmAnalysisFlags.suppressMissingBuiltinsError] = suppressMissingBuiltinsError - result[JvmAnalysisFlags.irCheckLocalNames] = irCheckLocalNames result[JvmAnalysisFlags.enableJvmPreview] = enableJvmPreview result[AnalysisFlags.allowUnstableDependencies] = allowUnstableDependencies || useFir result[JvmAnalysisFlags.disableUltraLightClasses] = disableUltraLightClasses diff --git a/compiler/config.jvm/src/org/jetbrains/kotlin/config/JvmAnalysisFlags.kt b/compiler/config.jvm/src/org/jetbrains/kotlin/config/JvmAnalysisFlags.kt index 38f1b62fdce..dd97e61cb3e 100644 --- a/compiler/config.jvm/src/org/jetbrains/kotlin/config/JvmAnalysisFlags.kt +++ b/compiler/config.jvm/src/org/jetbrains/kotlin/config/JvmAnalysisFlags.kt @@ -27,9 +27,6 @@ object JvmAnalysisFlags { @JvmStatic val suppressMissingBuiltinsError by AnalysisFlag.Delegates.Boolean - @JvmStatic - val irCheckLocalNames by AnalysisFlag.Delegates.Boolean - @JvmStatic val disableUltraLightClasses by AnalysisFlag.Delegates.Boolean diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmLower.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmLower.kt index 312247d2af8..47e43f02d84 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmLower.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmLower.kt @@ -374,8 +374,6 @@ private val jvmFilePhases = listOf( replaceKFunctionInvokeWithFunctionInvokePhase, kotlinNothingValueExceptionPhase, - checkLocalNamesWithOldBackendPhase, - renameFieldsPhase, fakeInliningLocalVariablesLowering, diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/CheckLocalNamesWithOldBackend.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/CheckLocalNamesWithOldBackend.kt deleted file mode 100644 index 37d739f5170..00000000000 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/CheckLocalNamesWithOldBackend.kt +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.backend.jvm.lower - -import org.jetbrains.kotlin.backend.common.FileLoweringPass -import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase -import org.jetbrains.kotlin.backend.jvm.JvmBackendContext -import org.jetbrains.kotlin.codegen.binding.CodegenBinding -import org.jetbrains.kotlin.config.JvmAnalysisFlags -import org.jetbrains.kotlin.ir.IrElement -import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI -import org.jetbrains.kotlin.ir.declarations.IrClass -import org.jetbrains.kotlin.ir.declarations.IrFile -import org.jetbrains.kotlin.ir.util.render -import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid -import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid -import org.jetbrains.kotlin.ir.visitors.acceptVoid - -val checkLocalNamesWithOldBackendPhase = makeIrFilePhase( - { context -> - if (context.state.languageVersionSettings.getFlag(JvmAnalysisFlags.irCheckLocalNames)) - CheckLocalNamesWithOldBackend(context) - else - FileLoweringPass.Empty - }, - name = "CheckLocalNamesWithOldBackend", - description = "With -Xir-check-local-names, check that names for local classes and anonymous objects are the same in the IR backend as in the old backend" -) - -class CheckLocalNamesWithOldBackend(private val context: JvmBackendContext) : FileLoweringPass, IrElementVisitorVoid { - override fun lower(irFile: IrFile) { - irFile.acceptVoid(this) - } - - @OptIn(ObsoleteDescriptorBasedAPI::class) - override fun visitClass(declaration: IrClass) { - val actualName = context.getLocalClassType(declaration)?.internalName - if (actualName != null) { - val expectedName = context.state.bindingTrace.get(CodegenBinding.ASM_TYPE, declaration.symbol.descriptor)?.internalName - if (expectedName != null && expectedName != actualName) { - throw AssertionError( - "Incorrect name for the class.\n" + - "IR: ${declaration.render()}\n" + - "Descriptor: ${declaration.descriptor}\n" + - "Expected name: $expectedName\n" + - "Actual name: $actualName" - ) - } - } - super.visitClass(declaration) - } - - override fun visitElement(element: IrElement) { - element.acceptChildrenVoid(this) - } -} diff --git a/compiler/testData/cli/jvm/extraHelp.out b/compiler/testData/cli/jvm/extraHelp.out index 111025d9443..0146bea18d5 100644 --- a/compiler/testData/cli/jvm/extraHelp.out +++ b/compiler/testData/cli/jvm/extraHelp.out @@ -31,7 +31,6 @@ where advanced options include: Works as `--enable-preview` in Java. All class files are marked as preview-generated thus it won't be possible to use them in release environment -Xfriend-paths= Paths to output directories for friend modules (whose internals should be visible) -Xmultifile-parts-inherit Compile multifile classes as a hierarchy of parts and facade - -Xir-check-local-names Check that names of local classes and anonymous objects are the same in the IR backend as in the old backend -Xmodule-path= Paths where to find Java 9+ modules -Xjava-package-prefix Package prefix for Java files -Xjava-source-roots= Paths to directories with Java source files From 41c4693ebf4f394b58a66164ddc206ad82ce1096 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 30 Dec 2020 18:00:10 +0100 Subject: [PATCH 52/71] Build: remove obsolete -Xir-binary-with-stable-abi It's no longer needed after eef06cded39 and 3e3ffee2a04. --- build.gradle.kts | 1 - libraries/commonConfiguration.gradle | 7 +------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 9409019b664..87b7c9483f2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -445,7 +445,6 @@ allprojects { if (useJvmIrBackend) { useIR = true - freeCompilerArgs += "-Xir-binary-with-stable-abi" } } } diff --git a/libraries/commonConfiguration.gradle b/libraries/commonConfiguration.gradle index 23357b2fe3c..fad6c58bdb2 100644 --- a/libraries/commonConfiguration.gradle +++ b/libraries/commonConfiguration.gradle @@ -198,12 +198,7 @@ ext.configureLegacyPublishing = { Project project -> ext.configureJvmIrBackend = { Project project -> project.tasks.withType(KotlinCompile.class) { task -> task.kotlinOptions { - if (project.kotlinBuildProperties.useIRForLibraries) { - useIR = true - freeCompilerArgs += ["-Xir-binary-with-stable-abi"] - } else { - useIR = false - } + useIR = project.kotlinBuildProperties.useIRForLibraries } } } From db3bebb531c6a4a91ee583d00f0094922f0ed310 Mon Sep 17 00:00:00 2001 From: Nelson Osacky Date: Tue, 5 Jan 2021 16:40:25 +0100 Subject: [PATCH 53/71] Add Revved up by Gradle Enterprise badge to Readme --- ReadMe.md | 1 + 1 file changed, 1 insertion(+) diff --git a/ReadMe.md b/ReadMe.md index 219e30c02de..fc1d8b944da 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -2,6 +2,7 @@ [![TeamCity (simple build status)](https://img.shields.io/teamcity/http/teamcity.jetbrains.com/s/Kotlin_KotlinPublic_Compiler.svg)](https://teamcity.jetbrains.com/buildConfiguration/Kotlin_KotlinPublic_Compiler?branch=%3Cdefault%3E&buildTypeTab=overview&mode=builds) [![Maven Central](https://img.shields.io/maven-central/v/org.jetbrains.kotlin/kotlin-maven-plugin.svg)](https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.jetbrains.kotlin%22) [![GitHub license](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat)](https://www.apache.org/licenses/LICENSE-2.0) +[![Revved up by Gradle Enterprise](https://img.shields.io/badge/Revved%20up%20by-Gradle%20Enterprise-06A0CE?logo=Gradle&labelColor=02303A)](https://ge.jetbrains.com/scans?search.rootProjectNames=Kotlin) # Kotlin Programming Language From 82abc80215facfd5794679fba84121e6d1bc96d7 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 4 Jan 2021 12:28:59 +0100 Subject: [PATCH 54/71] Move old changelogs to docs/changelogs/ --- ChangeLog.md | 8 ++++---- ChangeLog-1.0.X.md => docs/changelogs/ChangeLog-1.0.X.md | 0 ChangeLog-1.1.X.md => docs/changelogs/ChangeLog-1.1.X.md | 0 ChangeLog-1.2.X.md => docs/changelogs/ChangeLog-1.2.X.md | 0 ChangeLog-1.3.X.md => docs/changelogs/ChangeLog-1.3.X.md | 0 5 files changed, 4 insertions(+), 4 deletions(-) rename ChangeLog-1.0.X.md => docs/changelogs/ChangeLog-1.0.X.md (100%) rename ChangeLog-1.1.X.md => docs/changelogs/ChangeLog-1.1.X.md (100%) rename ChangeLog-1.2.X.md => docs/changelogs/ChangeLog-1.2.X.md (100%) rename ChangeLog-1.3.X.md => docs/changelogs/ChangeLog-1.3.X.md (100%) diff --git a/ChangeLog.md b/ChangeLog.md index ab087ce3a0e..5dc58e7b1c0 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -2387,7 +2387,7 @@ ## Recent ChangeLogs: -### [ChangeLog-1.3.X](ChangeLog-1.3.X.md) -### [ChangeLog-1.2.X](ChangeLog-1.2.X.md) -### [ChangeLog-1.1.X](ChangeLog-1.1.X.md) -### [ChangeLog-1.0.X](ChangeLog-1.0.X.md) \ No newline at end of file +### [ChangeLog-1.3.X](docs/changelogs/ChangeLog-1.3.X.md) +### [ChangeLog-1.2.X](docs/changelogs/ChangeLog-1.2.X.md) +### [ChangeLog-1.1.X](docs/changelogs/ChangeLog-1.1.X.md) +### [ChangeLog-1.0.X](docs/changelogs/ChangeLog-1.0.X.md) diff --git a/ChangeLog-1.0.X.md b/docs/changelogs/ChangeLog-1.0.X.md similarity index 100% rename from ChangeLog-1.0.X.md rename to docs/changelogs/ChangeLog-1.0.X.md diff --git a/ChangeLog-1.1.X.md b/docs/changelogs/ChangeLog-1.1.X.md similarity index 100% rename from ChangeLog-1.1.X.md rename to docs/changelogs/ChangeLog-1.1.X.md diff --git a/ChangeLog-1.2.X.md b/docs/changelogs/ChangeLog-1.2.X.md similarity index 100% rename from ChangeLog-1.2.X.md rename to docs/changelogs/ChangeLog-1.2.X.md diff --git a/ChangeLog-1.3.X.md b/docs/changelogs/ChangeLog-1.3.X.md similarity index 100% rename from ChangeLog-1.3.X.md rename to docs/changelogs/ChangeLog-1.3.X.md From 77836f1aa9de0951b04558913f84cbece9bbed14 Mon Sep 17 00:00:00 2001 From: Kristoffer Andersen Date: Thu, 19 Nov 2020 14:25:17 +0100 Subject: [PATCH 55/71] [Test] Port checkVariableTable suspend lambda tests Reveals discrepancy in LVT presence on lambda implementations on the old and new backend. The generated code in the constructors of Suspend Lambda objects is identical, but the IR backend generates an LVT with the constructor parameters. The user has to be very insistent to see this ("for step into" + disabling "Show only kotlin variables"), but it is an observable difference. --- .../nonStaticSimple.kt | 9 ---- .../nonStaticStateMachine.kt | 16 ------ .../staticSimple.kt | 6 --- .../staticSimpleReceiver.kt | 9 ---- .../staticStateMachine.kt | 13 ----- .../staticStateMachineReceiver.kt | 16 ------ .../suspend/completion/nonStaticSimple.kt | 18 +++++++ .../completion/nonStaticStateMachine.kt | 42 ++++++++++++++++ .../suspend/completion/staticSimple.kt | 8 +++ .../completion/staticSimpleReceiver.kt | 19 +++++++ .../suspend/completion/staticStateMachine.kt | 38 ++++++++++++++ .../completion/staticStateMachineReceiver.kt | 42 ++++++++++++++++ ...CheckLocalVariablesTableTestGenerated.java | 43 ---------------- .../IrLocalVariableTestGenerated.java | 50 +++++++++++++++++++ .../LocalVariableTestGenerated.java | 50 +++++++++++++++++++ ...CheckLocalVariablesTableTestGenerated.java | 43 ---------------- 16 files changed, 267 insertions(+), 155 deletions(-) delete mode 100644 compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticSimple.kt delete mode 100644 compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticStateMachine.kt delete mode 100644 compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimple.kt delete mode 100644 compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimpleReceiver.kt delete mode 100644 compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachine.kt delete mode 100644 compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachineReceiver.kt create mode 100644 compiler/testData/debug/localVariables/suspend/completion/nonStaticSimple.kt create mode 100644 compiler/testData/debug/localVariables/suspend/completion/nonStaticStateMachine.kt create mode 100644 compiler/testData/debug/localVariables/suspend/completion/staticSimple.kt create mode 100644 compiler/testData/debug/localVariables/suspend/completion/staticSimpleReceiver.kt create mode 100644 compiler/testData/debug/localVariables/suspend/completion/staticStateMachine.kt create mode 100644 compiler/testData/debug/localVariables/suspend/completion/staticStateMachineReceiver.kt diff --git a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticSimple.kt b/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticSimple.kt deleted file mode 100644 index 2849c568667..00000000000 --- a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticSimple.kt +++ /dev/null @@ -1,9 +0,0 @@ -// WITH_RUNTIME - -class A { - suspend fun foo() {} -} - -// METHOD : A.foo(Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -// VARIABLE : NAME=this TYPE=LA; INDEX=0 -// VARIABLE : NAME=$completion TYPE=Lkotlin/coroutines/Continuation; INDEX=1 diff --git a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticStateMachine.kt b/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticStateMachine.kt deleted file mode 100644 index 3ac0b4e09c2..00000000000 --- a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticStateMachine.kt +++ /dev/null @@ -1,16 +0,0 @@ -// WITH_RUNTIME - -class A { - suspend fun foo() {} - suspend fun foo1(l: Long) { - foo() - foo() - val dead = l - } -} - -// METHOD : A.foo1(JLkotlin/coroutines/Continuation;)Ljava/lang/Object; -// VARIABLE : NAME=this TYPE=LA; INDEX=0 -// VARIABLE : NAME=l TYPE=J INDEX=1 -// VARIABLE : NAME=$continuation TYPE=Lkotlin/coroutines/Continuation; INDEX=7 -// VARIABLE : NAME=$result TYPE=Ljava/lang/Object; INDEX=6 \ No newline at end of file diff --git a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimple.kt b/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimple.kt deleted file mode 100644 index d22a38a73c9..00000000000 --- a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimple.kt +++ /dev/null @@ -1,6 +0,0 @@ -// WITH_RUNTIME - -suspend fun foo() {} - -// METHOD : StaticSimpleKt.foo(Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -// VARIABLE : NAME=$completion TYPE=Lkotlin/coroutines/Continuation; INDEX=0 diff --git a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimpleReceiver.kt b/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimpleReceiver.kt deleted file mode 100644 index 157328a2b72..00000000000 --- a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimpleReceiver.kt +++ /dev/null @@ -1,9 +0,0 @@ -// WITH_RUNTIME - -class A - -suspend fun A.foo() {} - -// METHOD : StaticSimpleReceiverKt.foo(LA;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -// VARIABLE : NAME=$this$foo TYPE=LA; INDEX=0 -// VARIABLE : NAME=$completion TYPE=Lkotlin/coroutines/Continuation; INDEX=1 \ No newline at end of file diff --git a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachine.kt b/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachine.kt deleted file mode 100644 index 7c146204423..00000000000 --- a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachine.kt +++ /dev/null @@ -1,13 +0,0 @@ -// WITH_RUNTIME - -suspend fun foo() {} -suspend fun foo1(l: Long) { - foo() - foo() - val dead = l -} - -// METHOD : StaticStateMachineKt.foo1(JLkotlin/coroutines/Continuation;)Ljava/lang/Object; -// VARIABLE : NAME=l TYPE=J INDEX=0 -// VARIABLE : NAME=$continuation TYPE=Lkotlin/coroutines/Continuation; INDEX=6 -// VARIABLE : NAME=$result TYPE=Ljava/lang/Object; INDEX=5 \ No newline at end of file diff --git a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachineReceiver.kt b/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachineReceiver.kt deleted file mode 100644 index 21bfd7101b6..00000000000 --- a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachineReceiver.kt +++ /dev/null @@ -1,16 +0,0 @@ -// WITH_RUNTIME - -class A - -suspend fun A.foo() {} -suspend fun A.foo1(l: Long) { - foo() - foo() - val dead = l -} - -// METHOD : StaticStateMachineReceiverKt.foo1(LA;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; -// VARIABLE : NAME=$this$foo1 TYPE=LA; INDEX=0 -// VARIABLE : NAME=l TYPE=J INDEX=1 -// VARIABLE : NAME=$continuation TYPE=Lkotlin/coroutines/Continuation; INDEX=7 -// VARIABLE : NAME=$result TYPE=Ljava/lang/Object; INDEX=6 \ No newline at end of file diff --git a/compiler/testData/debug/localVariables/suspend/completion/nonStaticSimple.kt b/compiler/testData/debug/localVariables/suspend/completion/nonStaticSimple.kt new file mode 100644 index 00000000000..6e62ee0f772 --- /dev/null +++ b/compiler/testData/debug/localVariables/suspend/completion/nonStaticSimple.kt @@ -0,0 +1,18 @@ + +// WITH_COROUTINES +// FILE: test.kt +class A { + suspend fun foo() {} +} + +suspend fun box() { + A().foo() +} + +// LOCAL VARIABLES +// test.kt:9 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:4 : +// test.kt:9 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:5 foo: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:9 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:10 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation \ No newline at end of file diff --git a/compiler/testData/debug/localVariables/suspend/completion/nonStaticStateMachine.kt b/compiler/testData/debug/localVariables/suspend/completion/nonStaticStateMachine.kt new file mode 100644 index 00000000000..73ea5bdbd3c --- /dev/null +++ b/compiler/testData/debug/localVariables/suspend/completion/nonStaticStateMachine.kt @@ -0,0 +1,42 @@ + +// WITH_COROUTINES +// FILE: test.kt +class A { + suspend fun foo() {} + suspend fun foo1(l: Long) { + foo() + foo() + val dead = l + } +} + +suspend fun box() { + A().foo1(42) +} + +// The lambda object constructor has a local variables table on the IR backend. + +// LOCAL VARIABLES +// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:4 : +// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:6 foo1: +// CoroutineUtil.kt:28 getContext: + +// LOCAL VARIABLES JVM +// test.kt:-1 : +// LOCAL VARIABLES JVM_IR +// test.kt:-1 : $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation + +// LOCAL VARIABLES +// test.kt:6 foo1: +// test.kt:7 foo1: $continuation:kotlin.coroutines.Continuation=A$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:5 foo: $completion:kotlin.coroutines.Continuation=A$foo1$1 +// test.kt:7 foo1: $continuation:kotlin.coroutines.Continuation=A$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:8 foo1: $continuation:kotlin.coroutines.Continuation=A$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:5 foo: $completion:kotlin.coroutines.Continuation=A$foo1$1 +// test.kt:8 foo1: $continuation:kotlin.coroutines.Continuation=A$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:9 foo1: $continuation:kotlin.coroutines.Continuation=A$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:10 foo1: $continuation:kotlin.coroutines.Continuation=A$foo1$1, $result:java.lang.Object=null +// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:15 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation \ No newline at end of file diff --git a/compiler/testData/debug/localVariables/suspend/completion/staticSimple.kt b/compiler/testData/debug/localVariables/suspend/completion/staticSimple.kt new file mode 100644 index 00000000000..0418c042856 --- /dev/null +++ b/compiler/testData/debug/localVariables/suspend/completion/staticSimple.kt @@ -0,0 +1,8 @@ + +// WITH_COROUTINES +// FILE: test.kt +suspend fun box() {} + + +// LOCAL VARIABLES +// test.kt:4 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation \ No newline at end of file diff --git a/compiler/testData/debug/localVariables/suspend/completion/staticSimpleReceiver.kt b/compiler/testData/debug/localVariables/suspend/completion/staticSimpleReceiver.kt new file mode 100644 index 00000000000..07fd19a09be --- /dev/null +++ b/compiler/testData/debug/localVariables/suspend/completion/staticSimpleReceiver.kt @@ -0,0 +1,19 @@ + +// WITH_COROUTINES +// FILE: test.kt +class A + +suspend fun A.foo() {} + +suspend fun box() { + A().foo() +} + + +// LOCAL VARIABLES +// test.kt:9 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:4 : +// test.kt:9 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:6 foo: $this$foo:A=A, $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:9 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:10 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation \ No newline at end of file diff --git a/compiler/testData/debug/localVariables/suspend/completion/staticStateMachine.kt b/compiler/testData/debug/localVariables/suspend/completion/staticStateMachine.kt new file mode 100644 index 00000000000..3f126c8a530 --- /dev/null +++ b/compiler/testData/debug/localVariables/suspend/completion/staticStateMachine.kt @@ -0,0 +1,38 @@ + +// WITH_COROUTINES +// FILE: test.kt +suspend fun foo() {} +suspend fun foo1(l: Long) { + foo() + foo() + val dead = l +} + +suspend fun box() { + foo1(42) +} + +// The lambda object constructor has a local variables table on the IR backend. + +// LOCAL VARIABLES +// test.kt:12 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:5 foo1: +// CoroutineUtil.kt:28 getContext: + +// LOCAL VARIABLES JVM +// test.kt:-1 : +// LOCAL VARIABLES JVM_IR +// test.kt:-1 : $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation + +// LOCAL VARIABLES +// test.kt:5 foo1: +// test.kt:6 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:4 foo: $completion:kotlin.coroutines.Continuation=TestKt$foo1$1 +// test.kt:6 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:7 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:4 foo: $completion:kotlin.coroutines.Continuation=TestKt$foo1$1 +// test.kt:7 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:8 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:9 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null +// test.kt:12 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:13 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation \ No newline at end of file diff --git a/compiler/testData/debug/localVariables/suspend/completion/staticStateMachineReceiver.kt b/compiler/testData/debug/localVariables/suspend/completion/staticStateMachineReceiver.kt new file mode 100644 index 00000000000..78dcbc8ed67 --- /dev/null +++ b/compiler/testData/debug/localVariables/suspend/completion/staticStateMachineReceiver.kt @@ -0,0 +1,42 @@ + +// WITH_COROUTINES +// FILE: test.kt +class A + +suspend fun A.foo() {} +suspend fun A.foo1(l: Long) { + foo() + foo() + val dead = l +} + +suspend fun box() { + A().foo1(42) +} + +// The lambda object constructor has a local variables table on the IR backend. + +// LOCAL VARIABLES +// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:4 : +// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:7 foo1: +// CoroutineUtil.kt:28 getContext: + +// LOCAL VARIABLES JVM +// test.kt:-1 : +// LOCAL VARIABLES JVM_IR +// test.kt:-1 : $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation + +// LOCAL VARIABLES +// test.kt:7 foo1: +// test.kt:8 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, $this$foo1:A=A, l:long=42:long +// test.kt:6 foo: $this$foo:A=A, $completion:kotlin.coroutines.Continuation=TestKt$foo1$1 +// test.kt:8 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, $this$foo1:A=A, l:long=42:long +// test.kt:9 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, $this$foo1:A=A, l:long=42:long +// test.kt:6 foo: $this$foo:A=A, $completion:kotlin.coroutines.Continuation=TestKt$foo1$1 +// test.kt:9 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:10 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:11 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null +// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:15 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation \ No newline at end of file diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/CheckLocalVariablesTableTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/CheckLocalVariablesTableTestGenerated.java index bdfa98306c0..267f391e8fd 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/CheckLocalVariablesTableTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/CheckLocalVariablesTableTestGenerated.java @@ -105,49 +105,6 @@ public class CheckLocalVariablesTableTestGenerated extends AbstractCheckLocalVar runTest("compiler/testData/checkLocalVariablesTable/underscoreNames.kt"); } - @TestMetadata("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class CompletionInSuspendFunction extends AbstractCheckLocalVariablesTableTest { - private void runTest(String testDataFilePath) throws Exception { - KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath); - } - - public void testAllFilesPresentInCompletionInSuspendFunction() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); - } - - @TestMetadata("nonStaticSimple.kt") - public void testNonStaticSimple() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticSimple.kt"); - } - - @TestMetadata("nonStaticStateMachine.kt") - public void testNonStaticStateMachine() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticStateMachine.kt"); - } - - @TestMetadata("staticSimple.kt") - public void testStaticSimple() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimple.kt"); - } - - @TestMetadata("staticSimpleReceiver.kt") - public void testStaticSimpleReceiver() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimpleReceiver.kt"); - } - - @TestMetadata("staticStateMachine.kt") - public void testStaticStateMachine() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachine.kt"); - } - - @TestMetadata("staticStateMachineReceiver.kt") - public void testStaticStateMachineReceiver() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachineReceiver.kt"); - } - } - @TestMetadata("compiler/testData/checkLocalVariablesTable/parametersInSuspendLambda") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/IrLocalVariableTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/IrLocalVariableTestGenerated.java index cf169e4c627..4094a1216a5 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/IrLocalVariableTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/IrLocalVariableTestGenerated.java @@ -178,5 +178,55 @@ public class IrLocalVariableTestGenerated extends AbstractIrLocalVariableTest { public void testUnderscoreNames() throws Exception { runTest("compiler/testData/debug/localVariables/suspend/underscoreNames.kt"); } + + @TestMetadata("compiler/testData/debug/localVariables/suspend/completion") + @TestDataPath("$PROJECT_ROOT") + @RunWith(BlockJUnit4ClassRunner.class) + public static class Completion extends AbstractIrLocalVariableTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM_IR, testDataFilePath); + } + + @Test + public void testAllFilesPresentInCompletion() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/suspend/completion"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); + } + + @Test + @TestMetadata("nonStaticSimple.kt") + public void testNonStaticSimple() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/nonStaticSimple.kt"); + } + + @Test + @TestMetadata("nonStaticStateMachine.kt") + public void testNonStaticStateMachine() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/nonStaticStateMachine.kt"); + } + + @Test + @TestMetadata("staticSimple.kt") + public void testStaticSimple() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/staticSimple.kt"); + } + + @Test + @TestMetadata("staticSimpleReceiver.kt") + public void testStaticSimpleReceiver() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/staticSimpleReceiver.kt"); + } + + @Test + @TestMetadata("staticStateMachine.kt") + public void testStaticStateMachine() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/staticStateMachine.kt"); + } + + @Test + @TestMetadata("staticStateMachineReceiver.kt") + public void testStaticStateMachineReceiver() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/staticStateMachineReceiver.kt"); + } + } } } diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/LocalVariableTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/LocalVariableTestGenerated.java index 13ad6cec59b..f2d72bf62ae 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/LocalVariableTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/LocalVariableTestGenerated.java @@ -178,5 +178,55 @@ public class LocalVariableTestGenerated extends AbstractLocalVariableTest { public void testUnderscoreNames() throws Exception { runTest("compiler/testData/debug/localVariables/suspend/underscoreNames.kt"); } + + @TestMetadata("compiler/testData/debug/localVariables/suspend/completion") + @TestDataPath("$PROJECT_ROOT") + @RunWith(BlockJUnit4ClassRunner.class) + public static class Completion extends AbstractLocalVariableTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath); + } + + @Test + public void testAllFilesPresentInCompletion() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/suspend/completion"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); + } + + @Test + @TestMetadata("nonStaticSimple.kt") + public void testNonStaticSimple() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/nonStaticSimple.kt"); + } + + @Test + @TestMetadata("nonStaticStateMachine.kt") + public void testNonStaticStateMachine() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/nonStaticStateMachine.kt"); + } + + @Test + @TestMetadata("staticSimple.kt") + public void testStaticSimple() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/staticSimple.kt"); + } + + @Test + @TestMetadata("staticSimpleReceiver.kt") + public void testStaticSimpleReceiver() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/staticSimpleReceiver.kt"); + } + + @Test + @TestMetadata("staticStateMachine.kt") + public void testStaticStateMachine() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/staticStateMachine.kt"); + } + + @Test + @TestMetadata("staticStateMachineReceiver.kt") + public void testStaticStateMachineReceiver() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/staticStateMachineReceiver.kt"); + } + } } } diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCheckLocalVariablesTableTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCheckLocalVariablesTableTestGenerated.java index 12498023710..d26c883b88e 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCheckLocalVariablesTableTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCheckLocalVariablesTableTestGenerated.java @@ -105,49 +105,6 @@ public class IrCheckLocalVariablesTableTestGenerated extends AbstractIrCheckLoca runTest("compiler/testData/checkLocalVariablesTable/underscoreNames.kt"); } - @TestMetadata("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class CompletionInSuspendFunction extends AbstractIrCheckLocalVariablesTableTest { - private void runTest(String testDataFilePath) throws Exception { - KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM_IR, testDataFilePath); - } - - public void testAllFilesPresentInCompletionInSuspendFunction() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); - } - - @TestMetadata("nonStaticSimple.kt") - public void testNonStaticSimple() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticSimple.kt"); - } - - @TestMetadata("nonStaticStateMachine.kt") - public void testNonStaticStateMachine() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticStateMachine.kt"); - } - - @TestMetadata("staticSimple.kt") - public void testStaticSimple() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimple.kt"); - } - - @TestMetadata("staticSimpleReceiver.kt") - public void testStaticSimpleReceiver() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimpleReceiver.kt"); - } - - @TestMetadata("staticStateMachine.kt") - public void testStaticStateMachine() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachine.kt"); - } - - @TestMetadata("staticStateMachineReceiver.kt") - public void testStaticStateMachineReceiver() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachineReceiver.kt"); - } - } - @TestMetadata("compiler/testData/checkLocalVariablesTable/parametersInSuspendLambda") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) From ffdcda89143fc1901b8370a6734c03d23396c482 Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Tue, 5 Jan 2021 13:02:03 +0100 Subject: [PATCH 56/71] [build] Fix JDK detection on Mac OS X 11 (Big Sur) #KTI-443 fixed --- buildSrc/src/main/kotlin/jdksFinder.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/kotlin/jdksFinder.kt b/buildSrc/src/main/kotlin/jdksFinder.kt index b0afb396955..6c2216304e4 100644 --- a/buildSrc/src/main/kotlin/jdksFinder.kt +++ b/buildSrc/src/main/kotlin/jdksFinder.kt @@ -101,8 +101,12 @@ fun MutableCollection.discoverJdks(project: Project) { } } -private val macOsJavaHomeOutRegexes = listOf(Regex("""\s+(\S+),\s+(\S+):\s+".*?"\s+(.+)"""), - Regex("""\s+(\S+)\s+\((.*?)\):\s+(.+)""")) +private val macOsJavaHomeOutRegexes = + listOf( + Regex("""\s+(\S+),\s+(\S+):\s+".*?"\s+(.+)"""), + Regex("""\s+(\S+)\s+\((.*?)\):\s+(.+)"""), + Regex("""\s+(\S+)\s+\((.*?)\)\s+"[^"]*"\s+-\s+"[^"]*"\s(.+)""") +) fun MutableCollection.discoverJdksOnMacOS(project: Project) { val procBuilder = ProcessBuilder("/usr/libexec/java_home", "-V").redirectErrorStream(true) From 1bd6cc823c63659185d1c380846ab1a6c2fdacba Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Thu, 10 Dec 2020 15:36:40 +0100 Subject: [PATCH 57/71] Fix provided properties access generation The presense of accessors in the descriptor led to the wrong code generation in some cases. #KT-43176 fixed --- .../customScript/providedPropsInLambda.kts | 10 ++++ .../CustomScriptCodegenTestGenerated.java | 5 ++ .../jsr223/test/KotlinJsr223ScriptEngineIT.kt | 30 ++++++++++ .../ScriptProvidedPropertyDescriptor.kt | 60 +------------------ 4 files changed, 48 insertions(+), 57 deletions(-) create mode 100644 compiler/testData/codegen/customScript/providedPropsInLambda.kts diff --git a/compiler/testData/codegen/customScript/providedPropsInLambda.kts b/compiler/testData/codegen/customScript/providedPropsInLambda.kts new file mode 100644 index 00000000000..890c1fedfc4 --- /dev/null +++ b/compiler/testData/codegen/customScript/providedPropsInLambda.kts @@ -0,0 +1,10 @@ + +// KOTLIN_SCRIPT_DEFINITION: org.jetbrains.kotlin.codegen.TestScriptWithSimpleEnvVars + +// envVar: stringVar1=abracadabra + +fun foo(body: () -> String): String = body() + +val res = foo { stringVar1.drop(5) } + +// expected: res=adabra diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/CustomScriptCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/CustomScriptCodegenTestGenerated.java index e9967d96aec..ab17c238138 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/CustomScriptCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/CustomScriptCodegenTestGenerated.java @@ -34,6 +34,11 @@ public class CustomScriptCodegenTestGenerated extends AbstractCustomScriptCodege runTest("compiler/testData/codegen/customScript/pathPattern5.kts"); } + @TestMetadata("providedPropsInLambda.kts") + public void testProvidedPropsInLambda_kts() throws Exception { + runTest("compiler/testData/codegen/customScript/providedPropsInLambda.kts"); + } + @TestMetadata("simpleEnvVars.kts") public void testSimpleEnvVars_kts() throws Exception { runTest("compiler/testData/codegen/customScript/simpleEnvVars.kts"); diff --git a/libraries/scripting/jsr223-test/test/kotlin/script/experimental/jsr223/test/KotlinJsr223ScriptEngineIT.kt b/libraries/scripting/jsr223-test/test/kotlin/script/experimental/jsr223/test/KotlinJsr223ScriptEngineIT.kt index 633afacc00f..9ed9afbb973 100644 --- a/libraries/scripting/jsr223-test/test/kotlin/script/experimental/jsr223/test/KotlinJsr223ScriptEngineIT.kt +++ b/libraries/scripting/jsr223-test/test/kotlin/script/experimental/jsr223/test/KotlinJsr223ScriptEngineIT.kt @@ -18,6 +18,12 @@ private const val KOTLIN_JSR223_RESOLVE_FROM_CLASSLOADER_PROPERTY = "kotlin.jsr2 @Suppress("unused") // accessed from the tests below val shouldBeVisibleFromRepl = 7 +@Suppress("unused") // accessed from the tests below +fun callLambda(x: Int, aFunction: (Int) -> Int): Int = aFunction.invoke(x) + +@Suppress("unused") // accessed from the tests below +inline fun inlineCallLambda(x: Int, aFunction: (Int) -> Int): Int = aFunction.invoke(x) + class KotlinJsr223ScriptEngineIT { init { @@ -297,6 +303,30 @@ obj Assert.assertEquals(42, result) } + @Test + fun testResolveFromContextLambda() { + val scriptEngine = ScriptEngineManager().getEngineByExtension("kts")!! + + val script1 = """ + kotlin.script.experimental.jsr223.test.callLambda(4) { x -> + x % aValue + } + """ + + val script2 = """ + kotlin.script.experimental.jsr223.test.inlineCallLambda(5) { x -> + x % aValue + } + """ + + scriptEngine.put("aValue", 3) + + val res1 = scriptEngine.eval(script1) + Assert.assertEquals(1, res1) + val res2 = scriptEngine.eval(script2) + Assert.assertEquals(2, res2) + } + @Test fun testResolveFromContextDirectExperimental() { val prevProp = System.setProperty(KOTLIN_JSR223_RESOLVE_FROM_CLASSLOADER_PROPERTY, "true") diff --git a/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/resolve/ScriptProvidedPropertyDescriptor.kt b/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/resolve/ScriptProvidedPropertyDescriptor.kt index 599750b9b3b..68878e47238 100644 --- a/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/resolve/ScriptProvidedPropertyDescriptor.kt +++ b/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/resolve/ScriptProvidedPropertyDescriptor.kt @@ -8,9 +8,6 @@ package org.jetbrains.kotlin.scripting.resolve import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.annotations.Annotations import org.jetbrains.kotlin.descriptors.impl.PropertyDescriptorImpl -import org.jetbrains.kotlin.descriptors.impl.PropertyGetterDescriptorImpl -import org.jetbrains.kotlin.descriptors.impl.PropertySetterDescriptorImpl -import org.jetbrains.kotlin.descriptors.impl.ValueParameterDescriptorImpl import org.jetbrains.kotlin.name.Name class ScriptProvidedPropertyDescriptor( @@ -24,7 +21,7 @@ class ScriptProvidedPropertyDescriptor( null, Annotations.EMPTY, Modality.FINAL, - DescriptorVisibilities.PRIVATE, + DescriptorVisibilities.PUBLIC, isVar, name, CallableMemberDescriptor.Kind.SYNTHESIZED, @@ -34,58 +31,7 @@ class ScriptProvidedPropertyDescriptor( ) { init { setType(typeDescriptor.defaultType, emptyList(), receiver, null) - initialize( - makePropertyGetterDescriptor(), - if (!isVar) null else makePropertySetterDescriptor() - ) + // TODO: consider delegation instead + initialize(null, null, null, null) } } - -private fun PropertyDescriptorImpl.makePropertyGetterDescriptor() = - PropertyGetterDescriptorImpl( - this, - Annotations.EMPTY, - this.modality, - this.visibility, - /* isDefault = */ - false, /* isExternal = */ - false, /* isInline = */ - false, - this.kind, - null, - SourceElement.NO_SOURCE - ).also { - it.initialize(returnType) - } - -private fun PropertyDescriptorImpl.makePropertySetterDescriptor() = - PropertySetterDescriptorImpl( - this, - Annotations.EMPTY, - this.modality, - this.visibility, - /* isDefault = */ - false, /* isExternal = */ - false, /* isInline = */ - false, - this.kind, - null, - SourceElement.NO_SOURCE - ).also { - it.initialize( - ValueParameterDescriptorImpl( - this, - null, - 0, - Annotations.EMPTY, - Name.special(""), - returnType, - /* declaresDefaultValue = */ - false, /* isCrossinline = */ - false, /* isNoinline = */ - false, - null, - SourceElement.NO_SOURCE - ) - ) - } From 534342a5662ac93a033f9fc613e474839d9a289f Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Mon, 4 Jan 2021 19:37:09 +0100 Subject: [PATCH 58/71] [minor] use new kotlin.io.path API in tests --- .../test/org/jetbrains/kotlin/mainKts/test/mainKtsIT.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsIT.kt b/libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsIT.kt index cfc0aa9c456..6fda4248334 100644 --- a/libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsIT.kt +++ b/libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsIT.kt @@ -113,7 +113,7 @@ fun runWithKotlincAndMainKts( scriptPath: String, expectedOutPatterns: List = emptyList(), expectedExitCode: Int = 0, - cacheDir: File? = null + cacheDir: Path? = null ) { val paths = PathUtil.kotlinPathsForDistDirectory runWithKotlinc( @@ -123,7 +123,7 @@ fun runWithKotlincAndMainKts( Assert.assertTrue("kotlin-main-kts.jar not found, run dist task: ${it.absolutePath}", it.exists()) } ), - additionalEnvVars = listOf(COMPILED_SCRIPTS_CACHE_DIR_ENV_VAR to (cacheDir?.absolutePath ?: "")) + additionalEnvVars = listOf(COMPILED_SCRIPTS_CACHE_DIR_ENV_VAR to (cacheDir?.toAbsolutePath()?.toString() ?: "")) ) } @@ -143,9 +143,9 @@ fun runWithK2JVMCompilerAndMainKts( scriptPath: String, expectedOutPatterns: List = emptyList(), expectedExitCode: Int = 0, - cacheDir: File? = null + cacheDir: Path? = null ) { - withProperty(COMPILED_SCRIPTS_CACHE_DIR_PROPERTY, cacheDir?.absolutePath ?: "") { + withProperty(COMPILED_SCRIPTS_CACHE_DIR_PROPERTY, cacheDir?.toAbsolutePath()?.toString() ?: "") { runWithK2JVMCompiler( scriptPath, expectedOutPatterns, expectedExitCode, classpath = listOf( From 9a7d1948a7a6e8aacf922cf0c2dd7a2e5a5020bd Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Wed, 25 Nov 2020 21:28:07 +0100 Subject: [PATCH 59/71] Implement support for -Xdefault-script-extension cli option --- .../arguments/K2JVMCompilerArguments.kt | 7 ++ compiler/testData/cli/jvm/extraHelp.out | 2 + .../cli/jvm/wrongScriptWithKtSource.out | 2 +- .../scripting/definitions/ScriptDefinition.kt | 6 +- .../AbstractScriptEvaluationExtension.kt | 48 ++++++++--- .../compiler/plugin/impl/errorReporting.kt | 3 +- .../plugin/ScriptingWithCliCompilerTest.kt | 80 +++++++++++++++++++ .../scripting/compiler/plugin/testUtil.kt | 22 +++-- 8 files changed, 148 insertions(+), 22 deletions(-) diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt index 1ce3fb3efa4..0c4252ef04c 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/K2JVMCompilerArguments.kt @@ -308,6 +308,13 @@ class K2JVMCompilerArguments : CommonCompilerArguments() { ) var jvmDefault: String by FreezableVar(JvmDefaultMode.DEFAULT.description) + @Argument( + value = "-Xdefault-script-extension", + valueDescription = "