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 a0e90e7dfe1..857d8acdf99 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 @@ -10986,11 +10986,6 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirOldFronte runTest("compiler/testData/diagnostics/tests/inference/nothingType/inferArgumentToNothingFromNullConstant.kt"); } - @TestMetadata("inferenceWithRecursiveGenericsAndNothing.kt") - public void testInferenceWithRecursiveGenericsAndNothing() throws Exception { - runTest("compiler/testData/diagnostics/tests/inference/nothingType/inferenceWithRecursiveGenericsAndNothing.kt"); - } - @TestMetadata("kt24490.kt") public void testKt24490() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/nothingType/kt24490.kt"); diff --git a/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestWithStdlibGenerated.java b/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestWithStdlibGenerated.java index f998ff0bc16..873cae3d933 100644 --- a/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestWithStdlibGenerated.java +++ b/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestWithStdlibGenerated.java @@ -2384,11 +2384,6 @@ public class FirOldFrontendDiagnosticsTestWithStdlibGenerated extends AbstractFi runTest("compiler/testData/diagnostics/testsWithStdLib/regression/kt34391.kt"); } - @TestMetadata("kt37554.kt") - public void testKt37554() throws Exception { - runTest("compiler/testData/diagnostics/testsWithStdLib/regression/kt37554.kt"); - } - @TestMetadata("kt9820_javaFunctionTypeInheritor.kt") public void testKt9820_javaFunctionTypeInheritor() throws Exception { runTest("compiler/testData/diagnostics/testsWithStdLib/regression/kt9820_javaFunctionTypeInheritor.kt"); diff --git a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/inference/components/VariableFixationFinder.kt b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/inference/components/VariableFixationFinder.kt index 606fe30c04e..9949c4162a8 100644 --- a/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/inference/components/VariableFixationFinder.kt +++ b/compiler/resolution/src/org/jetbrains/kotlin/resolve/calls/inference/components/VariableFixationFinder.kt @@ -19,7 +19,6 @@ package org.jetbrains.kotlin.resolve.calls.inference.components import org.jetbrains.kotlin.resolve.calls.inference.components.KotlinConstraintSystemCompleter.ConstraintSystemCompletionMode import org.jetbrains.kotlin.resolve.calls.inference.components.KotlinConstraintSystemCompleter.ConstraintSystemCompletionMode.PARTIAL import org.jetbrains.kotlin.resolve.calls.inference.model.Constraint -import org.jetbrains.kotlin.resolve.calls.inference.model.ConstraintKind import org.jetbrains.kotlin.resolve.calls.inference.model.DeclaredUpperBoundConstraintPosition import org.jetbrains.kotlin.resolve.calls.inference.model.VariableWithConstraints import org.jetbrains.kotlin.resolve.calls.model.PostponedResolvedAtomMarker @@ -54,8 +53,7 @@ class VariableFixationFinder( enum class TypeVariableFixationReadiness { FORBIDDEN, WITHOUT_PROPER_ARGUMENT_CONSTRAINT, // proper constraint from arguments -- not from upper bound for type parameters - WITH_COMPLEX_DEPENDENCY_LOWER, // if type variable T has constraint with non fixed type variable inside (non-top-level): T <: Foo - WITH_COMPLEX_DEPENDENCY_UPPER, // Foo <: T + WITH_COMPLEX_DEPENDENCY, // if type variable T has constraint with non fixed type variable inside (non-top-level): T <: Foo WITH_TRIVIAL_OR_NON_PROPER_CONSTRAINTS, // proper trivial constraint from arguments, Nothing <: T RELATED_TO_ANY_OUTPUT_TYPE, READY_FOR_FIXATION, @@ -69,8 +67,7 @@ class VariableFixationFinder( !notFixedTypeVariables.contains(variable) || dependencyProvider.isVariableRelatedToTopLevelType(variable) -> TypeVariableFixationReadiness.FORBIDDEN !variableHasProperArgumentConstraints(variable) -> TypeVariableFixationReadiness.WITHOUT_PROPER_ARGUMENT_CONSTRAINT - hasDependencyToOtherTypeVariables(variable, ConstraintKind.LOWER) -> TypeVariableFixationReadiness.WITH_COMPLEX_DEPENDENCY_LOWER - hasDependencyToOtherTypeVariables(variable, ConstraintKind.UPPER) -> TypeVariableFixationReadiness.WITH_COMPLEX_DEPENDENCY_UPPER + hasDependencyToOtherTypeVariables(variable) -> TypeVariableFixationReadiness.WITH_COMPLEX_DEPENDENCY variableHasTrivialOrNonProperConstraints(variable) -> TypeVariableFixationReadiness.WITH_TRIVIAL_OR_NON_PROPER_CONSTRAINTS dependencyProvider.isVariableRelatedToAnyOutputType(variable) -> TypeVariableFixationReadiness.RELATED_TO_ANY_OUTPUT_TYPE isReified(variable) -> TypeVariableFixationReadiness.READY_FOR_FIXATION_REIFIED @@ -121,9 +118,8 @@ class VariableFixationFinder( } } - private fun Context.hasDependencyToOtherTypeVariables(typeVariable: TypeConstructorMarker, kind: ConstraintKind): Boolean { + private fun Context.hasDependencyToOtherTypeVariables(typeVariable: TypeConstructorMarker): Boolean { for (constraint in notFixedTypeVariables[typeVariable]?.constraints ?: return false) { - if (constraint.kind != kind || constraint.kind == ConstraintKind.EQUALITY) continue if (constraint.type.lowerBoundIfFlexible().argumentsCount() != 0 && constraint.type.contains { notFixedTypeVariables.containsKey(it.typeConstructor()) }) { return true } diff --git a/compiler/testData/diagnostics/tests/inference/nothingType/inferenceWithRecursiveGenericsAndNothing.kt b/compiler/testData/diagnostics/tests/inference/nothingType/inferenceWithRecursiveGenericsAndNothing.kt deleted file mode 100644 index d1ddfb3a4a2..00000000000 --- a/compiler/testData/diagnostics/tests/inference/nothingType/inferenceWithRecursiveGenericsAndNothing.kt +++ /dev/null @@ -1,16 +0,0 @@ -// FIR_IDENTICAL -// !DIAGNOSTICS: -UNUSED_PARAMETER - -interface Out -interface In -interface Recursive> - -interface Specialized : In - -class Parent : Specialized - -fun > foo(o: Out): Recursive? = null - -fun test(o: Out) { - foo(o) ?: return -} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/nothingType/inferenceWithRecursiveGenericsAndNothing.txt b/compiler/testData/diagnostics/tests/inference/nothingType/inferenceWithRecursiveGenericsAndNothing.txt deleted file mode 100644 index c82100afddb..00000000000 --- a/compiler/testData/diagnostics/tests/inference/nothingType/inferenceWithRecursiveGenericsAndNothing.txt +++ /dev/null @@ -1,35 +0,0 @@ -package - -public fun > foo(/*0*/ o: Out): Recursive? -public fun test(/*0*/ o: Out): kotlin.Unit - -public interface In { - 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 -} - -public interface Out { - 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 -} - -public final class Parent : Specialized { - public constructor Parent() - 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 -} - -public interface Recursive> { - 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 -} - -public interface Specialized : In { - 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/compiler/testData/diagnostics/testsWithStdLib/regression/kt37554.kt b/compiler/testData/diagnostics/testsWithStdLib/regression/kt37554.kt deleted file mode 100644 index cac79736e62..00000000000 --- a/compiler/testData/diagnostics/testsWithStdLib/regression/kt37554.kt +++ /dev/null @@ -1,20 +0,0 @@ -// FIR_IDENTICAL -// FULL_JDK - -import java.time.LocalDate - -data class DailyTime(val date: LocalDate) - -fun > Sequence.range(): ClosedRange? { - val iter = iterator() - return when { - iter.hasNext() -> iter.next().let { it..it } - else -> null - } -} - -fun test(dailyTimes: List): List { - val dateRange = dailyTimes.asSequence().map { it.date }.range() ?: return emptyList() - println(dateRange.start) - return dailyTimes -} diff --git a/compiler/testData/diagnostics/testsWithStdLib/regression/kt37554.txt b/compiler/testData/diagnostics/testsWithStdLib/regression/kt37554.txt deleted file mode 100644 index 694236e18ac..00000000000 --- a/compiler/testData/diagnostics/testsWithStdLib/regression/kt37554.txt +++ /dev/null @@ -1,14 +0,0 @@ -package - -public fun test(/*0*/ dailyTimes: kotlin.collections.List): kotlin.collections.List -public fun > kotlin.sequences.Sequence.range(): kotlin.ranges.ClosedRange? - -public final data class DailyTime { - public constructor DailyTime(/*0*/ date: java.time.LocalDate) - public final val date: java.time.LocalDate - public final operator /*synthesized*/ fun component1(): java.time.LocalDate - public final /*synthesized*/ fun copy(/*0*/ date: java.time.LocalDate = ...): DailyTime - 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 -} diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java index edf5af8bfcd..41067439744 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java @@ -10993,11 +10993,6 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTestWithFirVali runTest("compiler/testData/diagnostics/tests/inference/nothingType/inferArgumentToNothingFromNullConstant.kt"); } - @TestMetadata("inferenceWithRecursiveGenericsAndNothing.kt") - public void testInferenceWithRecursiveGenericsAndNothing() throws Exception { - runTest("compiler/testData/diagnostics/tests/inference/nothingType/inferenceWithRecursiveGenericsAndNothing.kt"); - } - @TestMetadata("kt24490.kt") public void testKt24490() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/nothingType/kt24490.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithStdLibGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithStdLibGenerated.java index bbf169ece4c..10ffbe731cd 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithStdLibGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithStdLibGenerated.java @@ -3364,11 +3364,6 @@ public class DiagnosticsTestWithStdLibGenerated extends AbstractDiagnosticsTestW runTest("compiler/testData/diagnostics/testsWithStdLib/regression/kt34391.kt"); } - @TestMetadata("kt37554.kt") - public void testKt37554() throws Exception { - runTest("compiler/testData/diagnostics/testsWithStdLib/regression/kt37554.kt"); - } - @TestMetadata("kt9820_javaFunctionTypeInheritor.kt") public void testKt9820_javaFunctionTypeInheritor() throws Exception { runTest("compiler/testData/diagnostics/testsWithStdLib/regression/kt9820_javaFunctionTypeInheritor.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java index cb3e8020d51..eda919f8a67 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsTestWithStdLibUsingJavacGenerated.java @@ -3364,11 +3364,6 @@ public class DiagnosticsTestWithStdLibUsingJavacGenerated extends AbstractDiagno runTest("compiler/testData/diagnostics/testsWithStdLib/regression/kt34391.kt"); } - @TestMetadata("kt37554.kt") - public void testKt37554() throws Exception { - runTest("compiler/testData/diagnostics/testsWithStdLib/regression/kt37554.kt"); - } - @TestMetadata("kt9820_javaFunctionTypeInheritor.kt") public void testKt9820_javaFunctionTypeInheritor() throws Exception { runTest("compiler/testData/diagnostics/testsWithStdLib/regression/kt9820_javaFunctionTypeInheritor.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java index 16d37d269ab..209d7a8e77f 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java @@ -10988,11 +10988,6 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing runTest("compiler/testData/diagnostics/tests/inference/nothingType/inferArgumentToNothingFromNullConstant.kt"); } - @TestMetadata("inferenceWithRecursiveGenericsAndNothing.kt") - public void testInferenceWithRecursiveGenericsAndNothing() throws Exception { - runTest("compiler/testData/diagnostics/tests/inference/nothingType/inferenceWithRecursiveGenericsAndNothing.kt"); - } - @TestMetadata("kt24490.kt") public void testKt24490() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/nothingType/kt24490.kt"); 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 0f49a4b6400..c9d7bb7b635 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/JvmDecompiledTextTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/textBuilder/JvmDecompiledTextTestGenerated.java @@ -53,19 +53,6 @@ public class JvmDecompiledTextTestGenerated extends AbstractJvmDecompiledTextTes runTest("idea/testData/decompiler/decompiledTextJvm/TypeAliases/"); } - @TestMetadata("idea/testData/decompiler/decompiledTextJvm/EnumWithQuotes") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class EnumWithQuotes extends AbstractJvmDecompiledTextTest { - private void runTest(String testDataFilePath) throws Exception { - KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); - } - - public void testAllFilesPresentInEnumWithQuotes() throws Exception { - KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/decompiler/decompiledTextJvm/EnumWithQuotes"), Pattern.compile("^([^\\.]+)$"), null, true); - } - } - @TestMetadata("idea/testData/decompiler/decompiledTextJvm/Modifiers") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class)