diff --git a/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestGenerated.java index f7712001e92..195043f4718 100644 --- a/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestGenerated.java @@ -3369,6 +3369,16 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirOldFronte runTest("compiler/testData/diagnostics/tests/checkArguments/booleanExpressions.kt"); } + @TestMetadata("kt17691.kt") + public void testKt17691() throws Exception { + runTest("compiler/testData/diagnostics/tests/checkArguments/kt17691.kt"); + } + + @TestMetadata("kt17691WithEnabledFeature.kt") + public void testKt17691WithEnabledFeature() throws Exception { + runTest("compiler/testData/diagnostics/tests/checkArguments/kt17691WithEnabledFeature.kt"); + } + @TestMetadata("kt1897_diagnostic_part.kt") public void testKt1897_diagnostic_part() throws Exception { runTest("compiler/testData/diagnostics/tests/checkArguments/kt1897_diagnostic_part.kt"); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java index 81ea542f41b..c0880cc2c7d 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/Errors.java @@ -628,6 +628,8 @@ public interface Errors { DiagnosticFactory1 FORBIDDEN_VARARG_PARAMETER_TYPE = DiagnosticFactory1.create(ERROR, PARAMETER_VARARG_MODIFIER); + DiagnosticFactory0 CHANGING_ARGUMENTS_EXECUTION_ORDER_FOR_NAMED_VARARGS = DiagnosticFactory0.create(WARNING); + // Named parameters DiagnosticFactory0 DEFAULT_VALUE_NOT_ALLOWED_IN_OVERRIDE = DiagnosticFactory0.create(ERROR, PARAMETER_DEFAULT_VALUE); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java index 00b2efff57c..a0a200f05b4 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/diagnostics/rendering/DefaultErrorMessages.java @@ -269,6 +269,9 @@ public class DefaultErrorMessages { MAP.put(USELESS_VARARG_ON_PARAMETER, "Vararg on this parameter is useless"); MAP.put(MULTIPLE_VARARG_PARAMETERS, "Multiple vararg-parameters are prohibited"); MAP.put(FORBIDDEN_VARARG_PARAMETER_TYPE, "Forbidden vararg parameter type: {0}", RENDER_TYPE); + MAP.put(CHANGING_ARGUMENTS_EXECUTION_ORDER_FOR_NAMED_VARARGS, "Arguments execution order is going to be changed in a future release." + + "The expression for named vararg argument will be executed in the order in which it was listed, not at the end." + + "See KT-17691 for more details."); MAP.put(EXPECTED_DECLARATION_WITH_BODY, "Expected declaration must not have a body"); MAP.put(EXPECTED_CLASS_CONSTRUCTOR_DELEGATION_CALL, "Explicit delegation call for constructor of an expected class is not allowed"); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/PlatformConfiguratorBase.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/PlatformConfiguratorBase.kt index c4cbf08a06a..5f5a9aba0f9 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/PlatformConfiguratorBase.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/PlatformConfiguratorBase.kt @@ -54,7 +54,7 @@ private val DEFAULT_CALL_CHECKERS = listOf( NamedFunAsExpressionChecker, ContractNotAllowedCallChecker, ReifiedTypeParameterSubstitutionChecker(), MissingDependencySupertypeChecker.ForCalls, AbstractClassInstantiationChecker, SuspendConversionCallChecker, UnitConversionCallChecker, FunInterfaceConstructorReferenceChecker, NullableExtensionOperatorWithSafeCallChecker, - ReferencingToUnderscoreNamedParameterOfCatchBlockChecker + ReferencingToUnderscoreNamedParameterOfCatchBlockChecker, VarargWrongExecutionOrderChecker ) private val DEFAULT_TYPE_CHECKERS = emptyList() private val DEFAULT_CLASSIFIER_USAGE_CHECKERS = listOf( diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/checkers/VarargWrongExecutionOrderChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/checkers/VarargWrongExecutionOrderChecker.kt new file mode 100644 index 00000000000..c18deff6c4b --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/checkers/VarargWrongExecutionOrderChecker.kt @@ -0,0 +1,41 @@ +/* + * 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.resolve.calls.checkers + +import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.config.LanguageFeature +import org.jetbrains.kotlin.diagnostics.Errors +import org.jetbrains.kotlin.psi.KtValueArgument +import org.jetbrains.kotlin.resolve.calls.callUtil.getParameterForArgument +import org.jetbrains.kotlin.resolve.calls.components.isVararg +import org.jetbrains.kotlin.resolve.calls.model.* + +object VarargWrongExecutionOrderChecker : CallChecker { + override fun check(resolvedCall: ResolvedCall<*>, reportOn: PsiElement, context: CallCheckerContext) { + val isCorrectExecutionOrderForVarargArgumentsAlreadyUsed = + context.languageVersionSettings.getFeatureSupport(LanguageFeature.UseCorrectExecutionOrderForVarargArguments) == LanguageFeature.State.ENABLED + + if (isCorrectExecutionOrderForVarargArgumentsAlreadyUsed) return + + val valueArguments = resolvedCall.call.valueArguments + + val varargIndex = valueArguments.indexOfFirst { + resolvedCall.getParameterForArgument(it)?.isVararg == true + }.takeIf { it != -1 } ?: return + val nonVarargIndex = valueArguments.indexOfLast { + resolvedCall.getParameterForArgument(it)?.isVararg != true + }.takeIf { it != -1 } ?: return + + if (varargIndex > nonVarargIndex) return + + val varargValueArgument = valueArguments[varargIndex] + + if (!varargValueArgument.isNamed() || varargValueArgument !is PsiElement) return + + // If named form for vararg is used then we can have only one real value argument on a call site + context.trace.report(Errors.CHANGING_ARGUMENTS_EXECUTION_ORDER_FOR_NAMED_VARARGS.on(varargValueArgument)) + } +} diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/KotlinToResolvedCallTransformer.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/KotlinToResolvedCallTransformer.kt index 2cf7d52ff64..f88a0e9cec9 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/KotlinToResolvedCallTransformer.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/KotlinToResolvedCallTransformer.kt @@ -630,7 +630,7 @@ sealed class NewAbstractResolvedCall() : ResolvedCall private fun createValueArguments(): Map = LinkedHashMap().also { result -> val needToUseCorrectExecutionOrderForVarargArguments = - languageVersionSettings.getFeatureSupport(LanguageFeature.UseCorrectExecutionOrderForVarargArguments) == LanguageFeature.State.ENABLED + languageVersionSettings.supportsFeature(LanguageFeature.UseCorrectExecutionOrderForVarargArguments) var varargMappings: MutableList>? = null for ((originalParameter, resolvedCallArgument) in argumentMappingByOriginal) { val resultingParameter = resultingDescriptor.valueParameters[originalParameter.index] diff --git a/compiler/testData/codegen/box/argumentOrder/kt17691.kt b/compiler/testData/codegen/box/argumentOrder/kt17691.kt index 8718236b66a..349bd79cbd9 100644 --- a/compiler/testData/codegen/box/argumentOrder/kt17691.kt +++ b/compiler/testData/codegen/box/argumentOrder/kt17691.kt @@ -1,6 +1,8 @@ // !LANGUAGE: -UseCorrectExecutionOrderForVarargArguments // WITH_RUNTIME -// KJS_WITH_FULL_RUNTIME +// TARGET_BACKEND: JVM +// IGNORE_BACKEND: JVM_IR +// IGNORE_BACKEND_FIR: JVM_IR fun foo(vararg x: Unit, y: Any) {} diff --git a/compiler/testData/codegen/box/argumentOrder/kt17691WithEnabledFeature.kt b/compiler/testData/codegen/box/argumentOrder/kt17691WithEnabledFeature.kt index 48c994256fa..405ccda5630 100644 --- a/compiler/testData/codegen/box/argumentOrder/kt17691WithEnabledFeature.kt +++ b/compiler/testData/codegen/box/argumentOrder/kt17691WithEnabledFeature.kt @@ -1,6 +1,7 @@ // !LANGUAGE: +UseCorrectExecutionOrderForVarargArguments // WITH_RUNTIME // KJS_WITH_FULL_RUNTIME +// IGNORE_BACKEND_FIR: JVM_IR fun foo(vararg x: Unit, y: Any) {} diff --git a/compiler/testData/diagnostics/tests/checkArguments/SpreadVarargs.kt b/compiler/testData/diagnostics/tests/checkArguments/SpreadVarargs.kt index aae553ed551..4955c8da00c 100644 --- a/compiler/testData/diagnostics/tests/checkArguments/SpreadVarargs.kt +++ b/compiler/testData/diagnostics/tests/checkArguments/SpreadVarargs.kt @@ -25,9 +25,9 @@ fun main() { join(1, "4", *a) join(1, "4", *a, *a, "3") join(1, "4", *a, *b, "3") - join(a = a, x = 1) - join(a = b, x = 1) - join(a = a, x = 1) + join(a = a, x = 1) + join(a = b, x = 1) + join(a = a, x = 1) joinG(1, "2") joinG(*1, "2") @@ -40,7 +40,7 @@ fun main() { joinG(1, "4", *a, "3") joinG(1, "4", *a) joinG(1, "4", *a, *a, "3") - joinG(a = a, x = 1) + joinG(a = a, x = 1) joinG(1, "2") joinG(*1, "2") @@ -53,7 +53,7 @@ fun main() { joinG(1, "4", *a, "3") joinG(1, "4", *a) joinG(1, "4", *a, *a, "3") - joinG(a = a, x = 1) + joinG(a = a, x = 1) val x1 = joinT(1, "2") checkSubtype(x1) @@ -69,7 +69,7 @@ fun main() { checkSubtype(x9) val x10 = joinT(1, "4", *a, *a, "3") checkSubtype(x10) - val x11 = joinT(a = a, x = 1) + val x11 = joinT(a = a, x = 1) checkSubtype(x11) val x12 = joinT(x = 1, a = a) checkSubtype(x12) diff --git a/compiler/testData/diagnostics/tests/checkArguments/kt17691.fir.kt b/compiler/testData/diagnostics/tests/checkArguments/kt17691.fir.kt new file mode 100644 index 00000000000..8a2d5d61e6b --- /dev/null +++ b/compiler/testData/diagnostics/tests/checkArguments/kt17691.fir.kt @@ -0,0 +1,25 @@ +// !DIAGNOSTICS: -UNUSED_PARAMETER +// !LANGUAGE: -UseCorrectExecutionOrderForVarargArguments +// WITH_RUNTIME + +fun foo(vararg x: Unit, y: Any) {} + +fun main() { + foo({ }(), y = { }()) + foo(x = *arrayOf({ }()), y = { }()) + foo(x = arrayOf({ }()), y = { }()) + foo(*arrayOf({ }()), y = { }()) +} + +fun foo2(vararg x: Unit, y: Any, z: Any) {} + +fun main2() { + foo2(y = { }(), x = arrayOf({ }()), z = { }()) +} + +fun foo3(vararg x: Unit, y: Any, z: Any = { }()) {} + +fun main3() { + // no warning, execution order is already right + foo3(y = { }(), x = arrayOf({ }())) +} diff --git a/compiler/testData/diagnostics/tests/checkArguments/kt17691.kt b/compiler/testData/diagnostics/tests/checkArguments/kt17691.kt new file mode 100644 index 00000000000..8da0abc1840 --- /dev/null +++ b/compiler/testData/diagnostics/tests/checkArguments/kt17691.kt @@ -0,0 +1,25 @@ +// !DIAGNOSTICS: -UNUSED_PARAMETER +// !LANGUAGE: -UseCorrectExecutionOrderForVarargArguments +// WITH_RUNTIME + +fun foo(vararg x: Unit, y: Any) {} + +fun main() { + foo({ }(), y = { }()) + foo(x = *arrayOf({ }()), y = { }()) + foo(x = arrayOf({ }()), y = { }()) + foo(*arrayOf({ }()), y = { }()) +} + +fun foo2(vararg x: Unit, y: Any, z: Any) {} + +fun main2() { + foo2(y = { }(), x = arrayOf({ }()), z = { }()) +} + +fun foo3(vararg x: Unit, y: Any, z: Any = { }()) {} + +fun main3() { + // no warning, execution order is already right + foo3(y = { }(), x = arrayOf({ }())) +} diff --git a/compiler/testData/diagnostics/tests/checkArguments/kt17691.txt b/compiler/testData/diagnostics/tests/checkArguments/kt17691.txt new file mode 100644 index 00000000000..56ad223e155 --- /dev/null +++ b/compiler/testData/diagnostics/tests/checkArguments/kt17691.txt @@ -0,0 +1,8 @@ +package + +public fun foo(/*0*/ vararg x: kotlin.Unit /*kotlin.Array*/, /*1*/ y: kotlin.Any): kotlin.Unit +public fun foo2(/*0*/ vararg x: kotlin.Unit /*kotlin.Array*/, /*1*/ y: kotlin.Any, /*2*/ z: kotlin.Any): kotlin.Unit +public fun foo3(/*0*/ vararg x: kotlin.Unit /*kotlin.Array*/, /*1*/ y: kotlin.Any, /*2*/ z: kotlin.Any = ...): kotlin.Unit +public fun main(): kotlin.Unit +public fun main2(): kotlin.Unit +public fun main3(): kotlin.Unit diff --git a/compiler/testData/diagnostics/tests/checkArguments/kt17691WithEnabledFeature.fir.kt b/compiler/testData/diagnostics/tests/checkArguments/kt17691WithEnabledFeature.fir.kt new file mode 100644 index 00000000000..b64e64e6b28 --- /dev/null +++ b/compiler/testData/diagnostics/tests/checkArguments/kt17691WithEnabledFeature.fir.kt @@ -0,0 +1,25 @@ +// !DIAGNOSTICS: -UNUSED_PARAMETER +// !LANGUAGE: +UseCorrectExecutionOrderForVarargArguments +// WITH_RUNTIME + +fun foo(vararg x: Unit, y: Any) {} + +fun main() { + foo({ }(), y = { }()) + foo(x = *arrayOf({ }()), y = { }()) + foo(x = arrayOf({ }()), y = { }()) + foo(*arrayOf({ }()), y = { }()) +} + +fun foo2(vararg x: Unit, y: Any, z: Any) {} + +fun main2() { + foo2(y = { }(), x = arrayOf({ }()), z = { }()) +} + +fun foo3(vararg x: Unit, y: Any, z: Any = { }()) {} + +fun main3() { + // no warning, execution order is already right + foo3(y = { }(), x = arrayOf({ }())) +} diff --git a/compiler/testData/diagnostics/tests/checkArguments/kt17691WithEnabledFeature.kt b/compiler/testData/diagnostics/tests/checkArguments/kt17691WithEnabledFeature.kt new file mode 100644 index 00000000000..6357b521810 --- /dev/null +++ b/compiler/testData/diagnostics/tests/checkArguments/kt17691WithEnabledFeature.kt @@ -0,0 +1,25 @@ +// !DIAGNOSTICS: -UNUSED_PARAMETER +// !LANGUAGE: +UseCorrectExecutionOrderForVarargArguments +// WITH_RUNTIME + +fun foo(vararg x: Unit, y: Any) {} + +fun main() { + foo({ }(), y = { }()) + foo(x = *arrayOf({ }()), y = { }()) + foo(x = arrayOf({ }()), y = { }()) + foo(*arrayOf({ }()), y = { }()) +} + +fun foo2(vararg x: Unit, y: Any, z: Any) {} + +fun main2() { + foo2(y = { }(), x = arrayOf({ }()), z = { }()) +} + +fun foo3(vararg x: Unit, y: Any, z: Any = { }()) {} + +fun main3() { + // no warning, execution order is already right + foo3(y = { }(), x = arrayOf({ }())) +} diff --git a/compiler/testData/diagnostics/tests/checkArguments/kt17691WithEnabledFeature.txt b/compiler/testData/diagnostics/tests/checkArguments/kt17691WithEnabledFeature.txt new file mode 100644 index 00000000000..56ad223e155 --- /dev/null +++ b/compiler/testData/diagnostics/tests/checkArguments/kt17691WithEnabledFeature.txt @@ -0,0 +1,8 @@ +package + +public fun foo(/*0*/ vararg x: kotlin.Unit /*kotlin.Array*/, /*1*/ y: kotlin.Any): kotlin.Unit +public fun foo2(/*0*/ vararg x: kotlin.Unit /*kotlin.Array*/, /*1*/ y: kotlin.Any, /*2*/ z: kotlin.Any): kotlin.Unit +public fun foo3(/*0*/ vararg x: kotlin.Unit /*kotlin.Array*/, /*1*/ y: kotlin.Any, /*2*/ z: kotlin.Any = ...): kotlin.Unit +public fun main(): kotlin.Unit +public fun main2(): kotlin.Unit +public fun main3(): kotlin.Unit diff --git a/compiler/testData/diagnostics/tests/namedArguments/mixedNamedPosition/varargs.kt b/compiler/testData/diagnostics/tests/namedArguments/mixedNamedPosition/varargs.kt index 8e171bdd5c0..18e4c5d763f 100644 --- a/compiler/testData/diagnostics/tests/namedArguments/mixedNamedPosition/varargs.kt +++ b/compiler/testData/diagnostics/tests/namedArguments/mixedNamedPosition/varargs.kt @@ -29,12 +29,12 @@ fun foo4( fun main() { foo1(1, 2, p2 = "3", 4.0) - foo1(p1 = intArrayOf(1, 2), "3", p3 = 4.0) + foo1(p1 = intArrayOf(1, 2), "3", p3 = 4.0) foo1(p2 = "3", 4.0) foo2(p1 = 1, "2", "3", p3 = 4.0) - foo2(1, p2 = arrayOf("2", "3"), 4.0) + foo2(1, p2 = arrayOf("2", "3"), 4.0) foo2(1, p3 = 3.0) foo3(p1 = 1, "2", 3.0, 4.0) @@ -52,6 +52,6 @@ fun main() { foo2(1, p3 = 2.0, *arrayOf("3", "4")) foo2(1, p3 = 2.0, p2 = arrayOf("3", "4")) - foo3(1, p3 = doubleArrayOf(2.0, 3.0), "4") - foo3(1, p3 = doubleArrayOf(2.0, 3.0), p2 = "4") + foo3(1, p3 = doubleArrayOf(2.0, 3.0), "4") + foo3(1, p3 = doubleArrayOf(2.0, 3.0), p2 = "4") } diff --git a/compiler/testData/diagnostics/tests/varargs/assignArrayToVararagInNamedForm_1_3.kt b/compiler/testData/diagnostics/tests/varargs/assignArrayToVararagInNamedForm_1_3.kt index af94f1b47ce..1b1b29427a3 100644 --- a/compiler/testData/diagnostics/tests/varargs/assignArrayToVararagInNamedForm_1_3.kt +++ b/compiler/testData/diagnostics/tests/varargs/assignArrayToVararagInNamedForm_1_3.kt @@ -24,13 +24,13 @@ fun test_ann(s: String, arr: Array) { foo() @Ann(*[""], x = 1) foo() - @Ann(s = [""], x = 1) + @Ann(s = [""], x = 1) foo() - @Ann(s = *[""], x = 1) + @Ann(s = *[""], x = 1) foo() @Ann("", x = 1) foo() - @Ann(s = "", x = 1) + @Ann(s = "", x = 1) foo() } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/varargs/assignArrayToVararagInNamedForm_1_4.kt b/compiler/testData/diagnostics/tests/varargs/assignArrayToVararagInNamedForm_1_4.kt index d74bf038a54..092998e528c 100644 --- a/compiler/testData/diagnostics/tests/varargs/assignArrayToVararagInNamedForm_1_4.kt +++ b/compiler/testData/diagnostics/tests/varargs/assignArrayToVararagInNamedForm_1_4.kt @@ -24,13 +24,13 @@ fun test_ann(s: String, arr: Array) { foo() @Ann(*[""], x = 1) foo() - @Ann(s = [""], x = 1) + @Ann(s = [""], x = 1) foo() - @Ann(s = *[""], x = 1) + @Ann(s = *[""], x = 1) foo() @Ann("", x = 1) foo() - @Ann(s = "", x = 1) + @Ann(s = "", x = 1) foo() } diff --git a/compiler/testData/diagnostics/tests/varargs/assigningArraysToVarargsInAnnotations.kt b/compiler/testData/diagnostics/tests/varargs/assigningArraysToVarargsInAnnotations.kt index e830c54b743..4c3911d35c7 100644 --- a/compiler/testData/diagnostics/tests/varargs/assigningArraysToVarargsInAnnotations.kt +++ b/compiler/testData/diagnostics/tests/varargs/assigningArraysToVarargsInAnnotations.kt @@ -33,7 +33,7 @@ fun jTest1() {} @JavaAnn(value = ["value"]) fun jTest2() {} -@JavaAnn(value = ["value"], path = ["path"]) +@JavaAnn(value = ["value"], path = ["path"]) fun jTest3() {} diff --git a/compiler/testData/diagnostics/tests/varargs/noAssigningArraysToVarargsFeature.kt b/compiler/testData/diagnostics/tests/varargs/noAssigningArraysToVarargsFeature.kt index 203747e07d8..6496325002f 100644 --- a/compiler/testData/diagnostics/tests/varargs/noAssigningArraysToVarargsFeature.kt +++ b/compiler/testData/diagnostics/tests/varargs/noAssigningArraysToVarargsFeature.kt @@ -30,7 +30,7 @@ fun jTest1() {} @JavaAnn(value = ["value"]) fun jTest2() {} -@JavaAnn(value = ["value"], path = ["path"]) +@JavaAnn(value = ["value"], path = ["path"]) fun jTest3() {} annotation class IntAnn(vararg val i: Int) diff --git a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameters/valueArrayAndOtherDefault.kt b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameters/valueArrayAndOtherDefault.kt index ee2422d2d7e..0ffb8a37a9f 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameters/valueArrayAndOtherDefault.kt +++ b/compiler/testData/diagnostics/testsWithStdLib/annotations/annotationParameters/valueArrayAndOtherDefault.kt @@ -26,5 +26,5 @@ public @interface A { @A fun test8() {} @A(x = Any::class, *arrayOf("5", "6"), "7", y = 3) fun test9() {} -@A(x = Any::class, value = ["5", "6"], "7", y = 3) fun test10() {} -@A(x = Any::class, value = ["5", "6", "7"], y = 3) fun test11() {} +@A(x = Any::class, value = ["5", "6"], "7", y = 3) fun test10() {} +@A(x = Any::class, value = ["5", "6", "7"], y = 3) fun test11() {} diff --git a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.10.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.10.fir.kt new file mode 100644 index 00000000000..16bac3cb0fd --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.10.fir.kt @@ -0,0 +1,63 @@ +// !LANGUAGE: +NewInference +// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION +// SKIP_TXT + + +// FILE: TestCase.kt +// TESTCASE NUMBER: 1 +package testsCase1 + +import libPackageCase1.* + +fun case1() { + listOf(elements = arrayOf(1), body = { "" }) +} +// FILE: Lib.kt +package libPackageCase1 + +fun listOf(vararg elements: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: TestCase.kt +// TESTCASE NUMBER: 2 +package testsCase2 +import libPackageCase2.* + +fun case2() { + listOf(elements = arrayOf(1), body = { "" }) +} + + +class A { + operator fun invoke(): T = TODO() +} + +// FILE: Lib.kt +package libPackageCase2 +import testsCase2.* + +fun listOf(vararg elements: T = TODO(), body: () -> T = { TODO() }): List = TODO() +val listOf: A + get() = A() + +// FILE: TestCase.kt +// TESTCASE NUMBER: 3 +package testsCase3 +import libPackageCase3.* + +fun case3() { + listOf(elements = arrayOf(1), body = { "" }) +} + + +class A { + operator fun invoke(vararg elements: T = TODO(), body: () -> T = { TODO() }): List = TODO() +} + +// FILE: Lib.kt +package libPackageCase3 +import testsCase3.* + +private fun listOf(vararg elements: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +val listOf: A + get() = A() diff --git a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.10.kt b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.10.kt index 1a20cd623a5..49dd591a308 100644 --- a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.10.kt +++ b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.10.kt @@ -1,4 +1,3 @@ -// FIR_IDENTICAL // !LANGUAGE: +NewInference // !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION // SKIP_TXT @@ -21,7 +20,7 @@ package testsCase1 import libPackageCase1.* fun case1() { - listOf(elements = arrayOf(1), body = { "" }) + listOf(elements = arrayOf(1), body = { "" }) } // FILE: Lib.kt package libPackageCase1 @@ -34,7 +33,7 @@ package testsCase2 import libPackageCase2.* fun case2() { - listOf(elements = arrayOf(1), body = { "" }) + listOf(elements = arrayOf(1), body = { "" }) } @@ -56,7 +55,7 @@ package testsCase3 import libPackageCase3.* fun case3() { - listOf(elements = arrayOf(1), body = { "" }) + listOf(elements = arrayOf(1), body = { "" }) } diff --git a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.12.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.12.fir.kt new file mode 100644 index 00000000000..a98a950b1da --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.12.fir.kt @@ -0,0 +1,154 @@ +// !LANGUAGE: +NewInference +// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE -EXTENSION_SHADOWED_BY_MEMBER -EXTENSION_FUNCTION_SHADOWED_BY_MEMBER_PROPERTY_WITH_INVOKE +// SKIP_TXT + + +// FILE: TestCase.kt +// TESTCASE NUMBER: 1 +package testsCase1 + +import libPackageCase1.* +import libPackageCase1Explicit.listOf + +class Case1() { + fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + fun case1() { + fun Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + listOf(elements1 = arrayOf(1), body = { "" }) + } +} +// FILE: Lib.kt +package libPackageCase1 +import testsCase1.* + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +fun Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: Lib.kt +package libPackageCase1Explicit +import testsCase1.* + +fun Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +package testsCase1 +fun Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + +// FILE: TestCase.kt +// TESTCASE NUMBER: 2 +package testsCase2 +import libPackageCase2.* +import libPackageCase2Explicit.listOf + +class Case2() { + fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + val listOf: A + get() = A() + + fun case1() { + fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + listOf(elements1 = arrayOf(1), body = { "" }) + } +} + +class A { + operator fun invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +} +// FILE: Lib.kt +package libPackageCase2 +import testsCase2.* + +val Case2.listOf: A + get() = A() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: Lib.kt +package libPackageCase2Explicit +import testsCase2.* + +val Case2.listOf: A + get() = A() + +fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +package testsCase2 +val Case2.listOf: A + get() = A() + +fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + +// FILE: TestCase.kt +// TESTCASE NUMBER: 3 +package testsCase3 +import libPackageCase3.* +import libPackageCase3Explicit.listOf + +class Case3() { + fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = + { TODO() }): List = TODO() + + val listOf: A + get() = A() + + fun case1() { + fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + listOf(elements1 = arrayOf(1), body = { "" }) + } +} + +class A { + operator fun invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +} +// FILE: Lib.kt +// TESTCASE NUMBER: 3 + +package libPackageCase3 +import testsCase3.* + +val Case3.listOf: A + get() = A() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: Lib.kt +// TESTCASE NUMBER: 3 + +package libPackageCase3Explicit +import testsCase3.* + +val Case3.listOf: A + get() = A() + +fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +// TESTCASE NUMBER: 3 + +package testsCase3 +val Case3.listOf: A + get() = A() + +fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() diff --git a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.12.kt b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.12.kt index 1c27cb5b15a..c7322b46a43 100644 --- a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.12.kt +++ b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.12.kt @@ -1,4 +1,3 @@ -// FIR_IDENTICAL // !LANGUAGE: +NewInference // !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE -EXTENSION_SHADOWED_BY_MEMBER -EXTENSION_FUNCTION_SHADOWED_BY_MEMBER_PROPERTY_WITH_INVOKE // SKIP_TXT @@ -27,7 +26,7 @@ class Case1() { fun case1() { fun Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } } // FILE: Lib.kt @@ -67,7 +66,7 @@ class Case2() { fun case1() { fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } } @@ -121,7 +120,7 @@ class Case3() { fun case1() { fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } } diff --git a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.13.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.13.fir.kt new file mode 100644 index 00000000000..e58839bf267 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.13.fir.kt @@ -0,0 +1,183 @@ +// !LANGUAGE: +NewInference +// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE -EXTENSION_FUNCTION_SHADOWED_BY_MEMBER_PROPERTY_WITH_INVOKE +// SKIP_TXT + + +// FILE: TestCase.kt +// TESTCASE NUMBER: 1 +package testsCase1 + +import libPackageCase1.* +import libPackageCase1Explicit.listOf + +class Case1() { + + fun case1_0() { + fun Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + listOf(elements1 = arrayOf(1), body = { "" }) + + fun case1_1() { + fun Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + listOf(elements1 = arrayOf(1), body = { "" }) + } + } + +} + +// FILE: Lib.kt +package libPackageCase1 +import testsCase1.* + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +fun Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: Lib.kt +package libPackageCase1Explicit +import testsCase1.* + +fun Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +package testsCase1 +fun Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + +// FILE: TestCase.kt + +/* + * TESTCASE NUMBER: 2 + * UNEXPECTED BEHAVIOUR + * ISSUES: KT-37179 + */ +package testsCase2 +import libPackageCase2.* +import libPackageCase2Explicit.listOf + +class Case2() { + + fun case1_0() { + fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + listOf(elements1 = arrayOf(1), body = { "" }) + + fun case1_1() { + fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + listOf(elements1 = arrayOf(1), body = { "" }) + } + } + + val Case2.listOf: A + get() = A() + + fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = + { TODO() }): List = TODO() + + fun case2_0() { + listOf(elements1 = arrayOf(1), body = { "" }) + } + +} + +class A { + operator fun invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +} + +// FILE: Lib.kt +// TESTCASE NUMBER: 2 +package libPackageCase2 +import testsCase2.* + +val Case2.listOf: A + get() = A() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: Lib.kt +// TESTCASE NUMBER: 2 + +package libPackageCase2Explicit +import testsCase2.* + +fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +// TESTCASE NUMBER: 2 + +package testsCase2 +fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + +// FILE: TestCase.kt + +/* + * TESTCASE NUMBER: 3 + * UNEXPECTED BEHAVIOUR + * ISSUES: KT-37179 + */ +package testsCase3 +import libPackageCase3.* +import libPackageCase3Explicit.listOf + +class Case3() { + + fun case1_0() { + //fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + listOf(elements1 = arrayOf(1), body = { "" }) + + fun case1_1() { + // fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + listOf(elements1 = arrayOf(1), body = { "" }) + } + } + + val Case3.listOf: A + get() = A() + + //fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + fun case2_0() { + listOf(elements1 = arrayOf(1), body = { "" }) + } + +} + +class A { + operator fun invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +} + +// FILE: Lib.kt +// TESTCASE NUMBER: 3 +package libPackageCase3 +import testsCase3.* + +val Case3.listOf: A + get() = A() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: Lib.kt +// TESTCASE NUMBER: 3 + +package libPackageCase3Explicit +import testsCase3.* + +fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +// TESTCASE NUMBER: 3 +package testsCase3 +fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() diff --git a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.13.kt b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.13.kt index d1c9e6f59e3..0f52b935059 100644 --- a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.13.kt +++ b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.13.kt @@ -1,4 +1,3 @@ -// FIR_IDENTICAL // !LANGUAGE: +NewInference // !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE -EXTENSION_FUNCTION_SHADOWED_BY_MEMBER_PROPERTY_WITH_INVOKE // SKIP_TXT @@ -26,11 +25,11 @@ class Case1() { fun case1_0() { fun Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) fun case1_1() { fun Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } } @@ -73,11 +72,11 @@ class Case2() { fun case1_0() { fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) fun case1_1() { fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } } @@ -88,7 +87,7 @@ class Case2() { { TODO() }): List = TODO() fun case2_0() { - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } } @@ -142,11 +141,11 @@ class Case3() { fun case1_0() { //fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) fun case1_1() { // fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } } @@ -156,7 +155,7 @@ class Case3() { //fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() fun case2_0() { - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } } diff --git a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.14.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.14.fir.kt new file mode 100644 index 00000000000..908e9031210 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.14.fir.kt @@ -0,0 +1,126 @@ +// !LANGUAGE: +NewInference +// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE +// SKIP_TXT + + +// FILE: TestCase.kt +// TESTCASE NUMBER: 1 + +package testsCase1 + +import libPackageCase1.* +import libPackageCase1Explicit.listOf + +class Case1() { + + fun case1() { + listOf(elements1 = arrayOf(1), body = { "" }) + } +} + +// FILE: Lib.kt +package libPackageCase1 +import testsCase1.* + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +fun Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: Lib.kt +package libPackageCase1Explicit +import testsCase1.* + +fun Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +package testsCase1 +fun Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + +// FILE: TestCase.kt +// TESTCASE NUMBER: 2 + +package testsCase2 +import libPackageCase2.* +import libPackageCase2Explicit.listOf + +class Case2() { + + fun case1() { + listOf(elements1 = arrayOf(1), body = { "" }) + } +} + +class A { + operator fun invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +} + +// FILE: Lib.kt +package libPackageCase2 +import testsCase2.* + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: Lib.kt +package libPackageCase2Explicit +import testsCase2.* + +val Case2.listOf: A + get() = A() + +fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +package testsCase2 +fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + +// FILE: TestCase.kt +// TESTCASE NUMBER: 3 + +package testsCase3 +import libPackageCase3.* +import libPackageCase3Explicit.listOf + +class Case3() { + + fun case1() { + listOf(elements1 = arrayOf(1), body = { "" }) + } +} + +class A { + operator fun invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +} + +// FILE: Lib.kt +package libPackageCase3 +import testsCase3.* + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: Lib.kt +package libPackageCase3Explicit +import testsCase3.* + +val Case3.listOf: A + get() = A() + +private fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +package testsCase3 +fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() diff --git a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.14.kt b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.14.kt index 6b60f120725..2b674b854b9 100644 --- a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.14.kt +++ b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.14.kt @@ -1,4 +1,3 @@ -// FIR_IDENTICAL // !LANGUAGE: +NewInference // !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE // SKIP_TXT @@ -25,7 +24,7 @@ import libPackageCase1Explicit.listOf class Case1() { fun case1() { - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } } @@ -61,7 +60,7 @@ import libPackageCase2Explicit.listOf class Case2() { fun case1() { - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } } @@ -104,7 +103,7 @@ import libPackageCase3Explicit.listOf class Case3() { fun case1() { - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } } diff --git a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.15.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.15.fir.kt new file mode 100644 index 00000000000..e14e2cc4a4c --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.15.fir.kt @@ -0,0 +1,116 @@ +// !LANGUAGE: +NewInference +// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE +// SKIP_TXT + + +// FILE: TestCase.kt +// TESTCASE NUMBER: 1 +package testsCase1 + +import libPackageCase1.* +import libPackageCase1Explicit.listOf + +class Case1() { + + fun case1() { + listOf(elements1 = arrayOf(1), body = { "" }) + } +} + +// FILE: Lib.kt +package libPackageCase1 +import testsCase1.* + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +fun Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: Lib.kt +package libPackageCase1Explicit + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +package testsCase1 +fun Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + +// FILE: TestCase.kt +// TESTCASE NUMBER: 2 +package testsCase2 +import libPackageCase2.* +import libPackageCase2Explicit.listOf + +class Case2() { + + fun case1() { + listOf(elements1 = arrayOf(1), body = { "" }) + } +} + +class A { + operator fun invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +} + +// FILE: Lib.kt +package libPackageCase2 +import testsCase2.* + +val Case2.listOf: A + get() = A() + +fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: Lib.kt +package libPackageCase2Explicit + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +package testsCase2 +fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +val Case2.listOf: A + get() = A() + +// FILE: TestCase.kt +// TESTCASE NUMBER: 3 +package testsCase3 +import libPackageCase3.* +import libPackageCase3Explicit.listOf + +class Case3() { + + fun case1() { + listOf(elements1 = arrayOf(1), body = { "" }) + } +} + +class A { + operator fun invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +} + +// FILE: Lib.kt +package libPackageCase3 +import testsCase3.* + +fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: Lib.kt +package libPackageCase3Explicit + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +package testsCase3 + +val Case3.listOf: A + get() = A() + +private fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() diff --git a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.15.kt b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.15.kt index db8edb5c363..1c6aa9e2581 100644 --- a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.15.kt +++ b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.15.kt @@ -1,4 +1,3 @@ -// FIR_IDENTICAL // !LANGUAGE: +NewInference // !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE // SKIP_TXT @@ -24,7 +23,7 @@ import libPackageCase1Explicit.listOf class Case1() { fun case1() { - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } } @@ -56,7 +55,7 @@ import libPackageCase2Explicit.listOf class Case2() { fun case1() { - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } } @@ -96,7 +95,7 @@ import libPackageCase3Explicit.listOf class Case3() { fun case1() { - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } } diff --git a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.16.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.16.fir.kt new file mode 100644 index 00000000000..b368b9dd019 --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.16.fir.kt @@ -0,0 +1,113 @@ +// !LANGUAGE: +NewInference +// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE +// SKIP_TXT + + +// FILE: TestCase.kt +// TESTCASE NUMBER: 1 +package testsCase1 + +import libPackageCase1.* +import libPackageCase1Explicit.listOf + +class Case1() { + + fun case() { + listOf(elements1 = arrayOf(1), body = { "" }) + } +} + +// FILE: Lib.kt +package libPackageCase1 +import testsCase1.* + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +fun Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: Lib.kt +package libPackageCase1Explicit + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +package testsCase1 + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + +// FILE: TestCase.kt +// TESTCASE NUMBER: 2 +package testsCase2 +import libPackageCase2.* +import libPackageCase2Explicit.listOf + +class Case2() { + + fun case() { + listOf(elements1 = arrayOf(1), body = { "" }) + } +} + +class A { + operator fun invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +} + + +// FILE: Lib.kt +package libPackageCase2 +import testsCase2.* + +val Case2.listOf: A + get() = A() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +fun Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: Lib.kt +package libPackageCase2Explicit + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +package testsCase2 + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + +// FILE: TestCase.kt +// TESTCASE NUMBER: 3 +package testsCase3 +import libPackageCase3.* +import libPackageCase3Explicit.listOf + +class Case3() { + + fun case() { + listOf(elements1 = arrayOf(1), body = { "" }) + } +} + +class A { + operator fun invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +} + + +// FILE: Lib.kt +package libPackageCase3 +import testsCase3.* + +val Case3.listOf: A + get() = A() + +fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +private fun Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: Lib.kt +package libPackageCase3Explicit + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +package testsCase3 + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() diff --git a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.16.kt b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.16.kt index 0700c439313..de40fcd2f0b 100644 --- a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.16.kt +++ b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.16.kt @@ -1,4 +1,3 @@ -// FIR_IDENTICAL // !LANGUAGE: +NewInference // !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE // SKIP_TXT @@ -24,7 +23,7 @@ import libPackageCase1Explicit.listOf class Case1() { fun case() { - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } } @@ -55,7 +54,7 @@ import libPackageCase2Explicit.listOf class Case2() { fun case() { - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } } @@ -94,7 +93,7 @@ import libPackageCase3Explicit.listOf class Case3() { fun case() { - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } } diff --git a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.8.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.8.fir.kt new file mode 100644 index 00000000000..5f5e42e606e --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.8.fir.kt @@ -0,0 +1,96 @@ +// !LANGUAGE: +NewInference +// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE +// SKIP_TXT + + +// FILE: TestCase.kt +// TESTCASE NUMBER: 1 +package testsCase1 + +import libPackageCase1.* +import libPackageCase1Explicit.listOf + +fun case1() { + listOf(elements1 = arrayOf(1), body = { "" }) +} + +// FILE: Lib.kt +package libPackageCase1 + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: Lib.kt +package libPackageCase1Explicit + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +package testsCase1 + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + +// FILE: TestCase.kt +// TESTCASE NUMBER: 2 +package testsCase2 +import libPackageCase2.* +import libPackageCase2Explicit.listOf + +fun case2() { + listOf(elements1 = arrayOf(1), body = { "" }) +} + +class A { + operator fun invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +} +// FILE: Lib.kt +package libPackageCase2 + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: Lib.kt +package libPackageCase2Explicit +import testsCase2.* + +val listOf: A + get() = A() + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +package testsCase2 + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + +// FILE: TestCase.kt +// TESTCASE NUMBER: 3 +package testsCase3 +import libPackageCase3.* +import libPackageCase3Explicit.listOf + +fun case3() { + listOf(elements1 = arrayOf(1), body = { "" }) +} + +class A { + operator fun invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +} +// FILE: Lib.kt +package libPackageCase3 + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: Lib.kt +package libPackageCase3Explicit +import testsCase3.* + +val listOf: A + get() = A() + +private fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +package testsCase3 + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() diff --git a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.8.kt b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.8.kt index 1f29fa8d28a..9d937afb0f3 100644 --- a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.8.kt +++ b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.8.kt @@ -1,4 +1,3 @@ -// FIR_IDENTICAL // !LANGUAGE: +NewInference // !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE // SKIP_TXT @@ -22,7 +21,7 @@ import libPackageCase1.* import libPackageCase1Explicit.listOf fun case1() { - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } // FILE: Lib.kt @@ -48,7 +47,7 @@ import libPackageCase2.* import libPackageCase2Explicit.listOf fun case2() { - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } class A { @@ -81,7 +80,7 @@ import libPackageCase3.* import libPackageCase3Explicit.listOf fun case3() { - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } class A { diff --git a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.9.fir.kt b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.9.fir.kt new file mode 100644 index 00000000000..824ac59fd0c --- /dev/null +++ b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.9.fir.kt @@ -0,0 +1,79 @@ +// !LANGUAGE: +NewInference +// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE +// SKIP_TXT + + +// FILE: TestCase.kt +// TESTCASE NUMBER: 1 +package testsCase1 + +import libPackageCase1.* + +fun case1() { + listOf(elements1 = arrayOf(1), body = { "" }) +} + +// FILE: Lib.kt +package libPackageCase1 + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +package testsCase1 + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: TestCase.kt +// TESTCASE NUMBER: 2 +package testsCase2 +import libPackageCase2.* + +fun case2() { + listOf(elements1 = arrayOf(1), body = { "" }) +} + +// FILE: Lib.kt +package libPackageCase2 + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +package testsCase2 +import testsCase2.* + +public val listOf: A + get() = A() + +class A { + operator fun invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +} + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + + +// FILE: TestCase.kt +// TESTCASE NUMBER: 3 +package testsCase3 +import libPackageCase3.* + +fun case3() { + listOf(elements1 = arrayOf(1), body = { "" }) +} + +// FILE: Lib.kt +package libPackageCase3 + +public fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() + +// FILE: LibtestsPack.kt +package testsCase3 +import testsCase3.* + +public val listOf: A + get() = A() + +class A { + operator fun invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() +} + +private fun listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List = TODO() diff --git a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.9.kt b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.9.kt index 9f88f7bf47e..d409292a19e 100644 --- a/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.9.kt +++ b/compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-trailing-lambda-expressions/p-1/pos/2.9.kt @@ -1,4 +1,3 @@ -// FIR_IDENTICAL // !LANGUAGE: +NewInference // !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE // SKIP_TXT @@ -21,7 +20,7 @@ package testsCase1 import libPackageCase1.* fun case1() { - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } // FILE: Lib.kt @@ -40,7 +39,7 @@ package testsCase2 import libPackageCase2.* fun case2() { - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } // FILE: Lib.kt @@ -68,7 +67,7 @@ package testsCase3 import libPackageCase3.* fun case3() { - listOf(elements1 = arrayOf(1), body = { "" }) + listOf(elements1 = arrayOf(1), body = { "" }) } // FILE: Lib.kt diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java index 3f50d272804..0d171e649b0 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java @@ -3376,6 +3376,16 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTestWithFirVali runTest("compiler/testData/diagnostics/tests/checkArguments/booleanExpressions.kt"); } + @TestMetadata("kt17691.kt") + public void testKt17691() throws Exception { + runTest("compiler/testData/diagnostics/tests/checkArguments/kt17691.kt"); + } + + @TestMetadata("kt17691WithEnabledFeature.kt") + public void testKt17691WithEnabledFeature() throws Exception { + runTest("compiler/testData/diagnostics/tests/checkArguments/kt17691WithEnabledFeature.kt"); + } + @TestMetadata("kt1897_diagnostic_part.kt") public void testKt1897_diagnostic_part() throws Exception { runTest("compiler/testData/diagnostics/tests/checkArguments/kt1897_diagnostic_part.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java index 9c0559d1093..b48fa166fd4 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java @@ -3371,6 +3371,16 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing runTest("compiler/testData/diagnostics/tests/checkArguments/booleanExpressions.kt"); } + @TestMetadata("kt17691.kt") + public void testKt17691() throws Exception { + runTest("compiler/testData/diagnostics/tests/checkArguments/kt17691.kt"); + } + + @TestMetadata("kt17691WithEnabledFeature.kt") + public void testKt17691WithEnabledFeature() throws Exception { + runTest("compiler/testData/diagnostics/tests/checkArguments/kt17691WithEnabledFeature.kt"); + } + @TestMetadata("kt1897_diagnostic_part.kt") public void testKt1897_diagnostic_part() throws Exception { runTest("compiler/testData/diagnostics/tests/checkArguments/kt1897_diagnostic_part.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 164c0f4679c..89ccaa28486 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -355,6 +355,16 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/argumentOrder/extensionInClass.kt"); } + @TestMetadata("kt17691.kt") + public void testKt17691() throws Exception { + runTest("compiler/testData/codegen/box/argumentOrder/kt17691.kt"); + } + + @TestMetadata("kt17691WithEnabledFeature.kt") + public void testKt17691WithEnabledFeature() throws Exception { + runTest("compiler/testData/codegen/box/argumentOrder/kt17691WithEnabledFeature.kt"); + } + @TestMetadata("kt9277.kt") public void testKt9277() throws Exception { runTest("compiler/testData/codegen/box/argumentOrder/kt9277.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index 2ad1494708d..3872398bde7 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -140,11 +140,6 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes runTest("compiler/testData/codegen/box/argumentOrder/extensionInClass.kt"); } - @TestMetadata("kt17691.kt") - public void testKt17691() throws Exception { - runTest("compiler/testData/codegen/box/argumentOrder/kt17691.kt"); - } - @TestMetadata("kt17691WithEnabledFeature.kt") public void testKt17691WithEnabledFeature() throws Exception { runTest("compiler/testData/codegen/box/argumentOrder/kt17691WithEnabledFeature.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index f3d056cd111..36a2de23c57 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -140,11 +140,6 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/argumentOrder/extensionInClass.kt"); } - @TestMetadata("kt17691.kt") - public void testKt17691() throws Exception { - runTest("compiler/testData/codegen/box/argumentOrder/kt17691.kt"); - } - @TestMetadata("kt17691WithEnabledFeature.kt") public void testKt17691WithEnabledFeature() throws Exception { runTest("compiler/testData/codegen/box/argumentOrder/kt17691WithEnabledFeature.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index deb24e6c0b1..90c62d404a1 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -140,11 +140,6 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/argumentOrder/extensionInClass.kt"); } - @TestMetadata("kt17691.kt") - public void testKt17691() throws Exception { - runTest("compiler/testData/codegen/box/argumentOrder/kt17691.kt"); - } - @TestMetadata("kt17691WithEnabledFeature.kt") public void testKt17691WithEnabledFeature() throws Exception { runTest("compiler/testData/codegen/box/argumentOrder/kt17691WithEnabledFeature.kt");