FIR checker: reproduce a false alarm on type mismatch of overridden property
This commit is contained in:
committed by
Dmitriy Novozhilov
parent
64c5608f31
commit
065d0c66ab
+6
@@ -30644,6 +30644,12 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti
|
|||||||
runTest("compiler/testData/diagnostics/testsWithStdLib/assignedInSynchronized.kt");
|
runTest("compiler/testData/diagnostics/testsWithStdLib/assignedInSynchronized.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("buildLazyValueForMap.kt")
|
||||||
|
public void testBuildLazyValueForMap() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/testsWithStdLib/buildLazyValueForMap.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("CallCompanionProtectedNonStatic.kt")
|
@TestMetadata("CallCompanionProtectedNonStatic.kt")
|
||||||
public void testCallCompanionProtectedNonStatic() throws Exception {
|
public void testCallCompanionProtectedNonStatic() throws Exception {
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
// !WITH_NEW_INFERENCE
|
||||||
|
|
||||||
|
interface ClassId
|
||||||
|
|
||||||
|
interface JavaAnnotation {
|
||||||
|
val classId: ClassId?
|
||||||
|
}
|
||||||
|
|
||||||
|
interface JavaAnnotationOwner {
|
||||||
|
val annotations: Collection<JavaAnnotation>
|
||||||
|
}
|
||||||
|
|
||||||
|
interface MapBasedJavaAnnotationOwner : JavaAnnotationOwner {
|
||||||
|
val annotationsByFqNameHash: Map<Int?, JavaAnnotation>
|
||||||
|
}
|
||||||
|
|
||||||
|
fun JavaAnnotationOwner.buildLazyValueForMap() = lazy {
|
||||||
|
annotations.associateBy { it.classId?.hashCode() }
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class BinaryJavaMethodBase(): MapBasedJavaAnnotationOwner {
|
||||||
|
override val <!PROPERTY_TYPE_MISMATCH_ON_OVERRIDE!>annotationsByFqNameHash<!> by buildLazyValueForMap()
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
interface ClassId
|
||||||
|
|
||||||
|
interface JavaAnnotation {
|
||||||
|
val classId: ClassId?
|
||||||
|
}
|
||||||
|
|
||||||
|
interface JavaAnnotationOwner {
|
||||||
|
val annotations: Collection<JavaAnnotation>
|
||||||
|
}
|
||||||
|
|
||||||
|
interface MapBasedJavaAnnotationOwner : JavaAnnotationOwner {
|
||||||
|
val annotationsByFqNameHash: Map<Int?, JavaAnnotation>
|
||||||
|
}
|
||||||
|
|
||||||
|
fun JavaAnnotationOwner.buildLazyValueForMap() = lazy {
|
||||||
|
annotations.associateBy { it.classId?.hashCode() }
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class BinaryJavaMethodBase(): MapBasedJavaAnnotationOwner {
|
||||||
|
override val annotationsByFqNameHash by buildLazyValueForMap()
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package
|
||||||
|
|
||||||
|
public fun JavaAnnotationOwner.buildLazyValueForMap(): kotlin.Lazy<kotlin.collections.Map<kotlin.Int?, JavaAnnotation>>
|
||||||
|
|
||||||
|
public abstract class BinaryJavaMethodBase : MapBasedJavaAnnotationOwner {
|
||||||
|
public constructor BinaryJavaMethodBase()
|
||||||
|
public abstract override /*1*/ /*fake_override*/ val annotations: kotlin.collections.Collection<JavaAnnotation>
|
||||||
|
public open override /*1*/ val annotationsByFqNameHash: kotlin.collections.Map<kotlin.Int?, JavaAnnotation>
|
||||||
|
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 ClassId {
|
||||||
|
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 JavaAnnotation {
|
||||||
|
public abstract val classId: ClassId?
|
||||||
|
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 JavaAnnotationOwner {
|
||||||
|
public abstract val annotations: kotlin.collections.Collection<JavaAnnotation>
|
||||||
|
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 MapBasedJavaAnnotationOwner : JavaAnnotationOwner {
|
||||||
|
public abstract override /*1*/ /*fake_override*/ val annotations: kotlin.collections.Collection<JavaAnnotation>
|
||||||
|
public abstract val annotationsByFqNameHash: kotlin.collections.Map<kotlin.Int?, JavaAnnotation>
|
||||||
|
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
|
||||||
|
}
|
||||||
Generated
+6
@@ -30740,6 +30740,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
|
|||||||
runTest("compiler/testData/diagnostics/testsWithStdLib/assignedInSynchronized.kt");
|
runTest("compiler/testData/diagnostics/testsWithStdLib/assignedInSynchronized.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("buildLazyValueForMap.kt")
|
||||||
|
public void testBuildLazyValueForMap() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/testsWithStdLib/buildLazyValueForMap.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("CallCompanionProtectedNonStatic.kt")
|
@TestMetadata("CallCompanionProtectedNonStatic.kt")
|
||||||
public void testCallCompanionProtectedNonStatic() throws Exception {
|
public void testCallCompanionProtectedNonStatic() throws Exception {
|
||||||
|
|||||||
Reference in New Issue
Block a user