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");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("buildLazyValueForMap.kt")
|
||||
public void testBuildLazyValueForMap() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/testsWithStdLib/buildLazyValueForMap.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("CallCompanionProtectedNonStatic.kt")
|
||||
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");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("buildLazyValueForMap.kt")
|
||||
public void testBuildLazyValueForMap() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/testsWithStdLib/buildLazyValueForMap.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("CallCompanionProtectedNonStatic.kt")
|
||||
public void testCallCompanionProtectedNonStatic() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user