[FIR] Initialize annotations in FirErrorTypeRef
^KT-62447 Fixed ^KT-62628 Fixed
This commit is contained in:
committed by
Space Team
parent
ec3cfdefcb
commit
bb937a8a21
+9
-9
@@ -36,7 +36,7 @@ FILE: [ResolvedTo(IMPORTS)] annotationWithArgumentInsideSuperTypeCallUnresolved.
|
||||
|
||||
SUPER_TYPES:
|
||||
FILE: [ResolvedTo(IMPORTS)] annotationWithArgumentInsideSuperTypeCallUnresolved.kt
|
||||
public? final? [ResolvedTo(SUPER_TYPES)] class MyClass : <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public? final? [ResolvedTo(SUPER_TYPES)] class MyClass : @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](LAZY_EXPRESSION) <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|MyClass| {
|
||||
LAZY_super<<implicit>>
|
||||
}
|
||||
@@ -45,7 +45,7 @@ FILE: [ResolvedTo(IMPORTS)] annotationWithArgumentInsideSuperTypeCallUnresolved.
|
||||
|
||||
TYPES:
|
||||
FILE: [ResolvedTo(IMPORTS)] annotationWithArgumentInsideSuperTypeCallUnresolved.kt
|
||||
public? final? [ResolvedTo(TYPES)] class MyClass : <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public? final? [ResolvedTo(TYPES)] class MyClass : @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](LAZY_EXPRESSION) <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|MyClass| {
|
||||
LAZY_super<<implicit>>
|
||||
}
|
||||
@@ -54,7 +54,7 @@ FILE: [ResolvedTo(IMPORTS)] annotationWithArgumentInsideSuperTypeCallUnresolved.
|
||||
|
||||
STATUS:
|
||||
FILE: [ResolvedTo(IMPORTS)] annotationWithArgumentInsideSuperTypeCallUnresolved.kt
|
||||
public final [ResolvedTo(STATUS)] class MyClass : <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public final [ResolvedTo(STATUS)] class MyClass : @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](LAZY_EXPRESSION) <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|MyClass| {
|
||||
LAZY_super<<implicit>>
|
||||
}
|
||||
@@ -63,7 +63,7 @@ FILE: [ResolvedTo(IMPORTS)] annotationWithArgumentInsideSuperTypeCallUnresolved.
|
||||
|
||||
EXPECT_ACTUAL_MATCHING:
|
||||
FILE: [ResolvedTo(IMPORTS)] annotationWithArgumentInsideSuperTypeCallUnresolved.kt
|
||||
public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class MyClass : <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class MyClass : @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](LAZY_EXPRESSION) <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|MyClass| {
|
||||
LAZY_super<<implicit>>
|
||||
}
|
||||
@@ -72,7 +72,7 @@ FILE: [ResolvedTo(IMPORTS)] annotationWithArgumentInsideSuperTypeCallUnresolved.
|
||||
|
||||
CONTRACTS:
|
||||
FILE: [ResolvedTo(IMPORTS)] annotationWithArgumentInsideSuperTypeCallUnresolved.kt
|
||||
public final [ResolvedTo(CONTRACTS)] class MyClass : <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public final [ResolvedTo(CONTRACTS)] class MyClass : @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](LAZY_EXPRESSION) <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|MyClass| {
|
||||
LAZY_super<<implicit>>
|
||||
}
|
||||
@@ -81,7 +81,7 @@ FILE: [ResolvedTo(IMPORTS)] annotationWithArgumentInsideSuperTypeCallUnresolved.
|
||||
|
||||
IMPLICIT_TYPES_BODY_RESOLVE:
|
||||
FILE: [ResolvedTo(IMPORTS)] annotationWithArgumentInsideSuperTypeCallUnresolved.kt
|
||||
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class MyClass : <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class MyClass : @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](LAZY_EXPRESSION) <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|MyClass| {
|
||||
LAZY_super<<implicit>>
|
||||
}
|
||||
@@ -90,7 +90,7 @@ FILE: [ResolvedTo(IMPORTS)] annotationWithArgumentInsideSuperTypeCallUnresolved.
|
||||
|
||||
ANNOTATION_ARGUMENTS:
|
||||
FILE: [ResolvedTo(IMPORTS)] annotationWithArgumentInsideSuperTypeCallUnresolved.kt
|
||||
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] class MyClass : <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] class MyClass : @<ERROR TYPE REF: Symbol not found for Anno>[Types]() <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor(): R|MyClass| {
|
||||
LAZY_super<<implicit>>
|
||||
}
|
||||
@@ -99,7 +99,7 @@ FILE: [ResolvedTo(IMPORTS)] annotationWithArgumentInsideSuperTypeCallUnresolved.
|
||||
|
||||
BODY_RESOLVE:
|
||||
FILE: [ResolvedTo(IMPORTS)] annotationWithArgumentInsideSuperTypeCallUnresolved.kt
|
||||
public final [ResolvedTo(BODY_RESOLVE)] class MyClass : <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public final [ResolvedTo(BODY_RESOLVE)] class MyClass : @<ERROR TYPE REF: Symbol not found for Anno>[Types]() <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass] constructor(): R|MyClass| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
@@ -108,7 +108,7 @@ FILE: [ResolvedTo(IMPORTS)] annotationWithArgumentInsideSuperTypeCallUnresolved.
|
||||
|
||||
FILE RAW TO BODY:
|
||||
FILE: [ResolvedTo(BODY_RESOLVE)] annotationWithArgumentInsideSuperTypeCallUnresolved.kt
|
||||
public final [ResolvedTo(BODY_RESOLVE)] class MyClass : <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public final [ResolvedTo(BODY_RESOLVE)] class MyClass : @<ERROR TYPE REF: Symbol not found for Anno>[Types]() <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass] constructor(): R|MyClass| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
Vendored
+8
-8
@@ -20,37 +20,37 @@ FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
|
||||
|
||||
TYPES:
|
||||
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
|
||||
public? final? [ResolvedTo(TYPES)] fun foo([ResolvedTo(TYPES)] a: <ERROR TYPE REF: Symbol not found for Foo>): <ERROR TYPE REF: Symbol not found for Foo> { LAZY_BLOCK }
|
||||
public? final? [ResolvedTo(TYPES)] fun foo([ResolvedTo(TYPES)] a: @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo>): @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo> { LAZY_BLOCK }
|
||||
|
||||
STATUS:
|
||||
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
|
||||
public final [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] a: <ERROR TYPE REF: Symbol not found for Foo>): <ERROR TYPE REF: Symbol not found for Foo> { LAZY_BLOCK }
|
||||
public final [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] a: @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo>): @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo> { LAZY_BLOCK }
|
||||
|
||||
EXPECT_ACTUAL_MATCHING:
|
||||
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
|
||||
public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fun foo([ResolvedTo(EXPECT_ACTUAL_MATCHING)] a: <ERROR TYPE REF: Symbol not found for Foo>): <ERROR TYPE REF: Symbol not found for Foo> { LAZY_BLOCK }
|
||||
public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fun foo([ResolvedTo(EXPECT_ACTUAL_MATCHING)] a: @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo>): @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo> { LAZY_BLOCK }
|
||||
|
||||
CONTRACTS:
|
||||
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
|
||||
public final [ResolvedTo(CONTRACTS)] fun foo([ResolvedTo(CONTRACTS)] a: <ERROR TYPE REF: Symbol not found for Foo>): <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public final [ResolvedTo(CONTRACTS)] fun foo([ResolvedTo(CONTRACTS)] a: @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo>): @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
}
|
||||
|
||||
IMPLICIT_TYPES_BODY_RESOLVE:
|
||||
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
|
||||
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] a: <ERROR TYPE REF: Symbol not found for Foo>): <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] a: @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo>): @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
}
|
||||
|
||||
ANNOTATION_ARGUMENTS:
|
||||
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
|
||||
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] fun foo([ResolvedTo(ANNOTATION_ARGUMENTS)] a: <ERROR TYPE REF: Symbol not found for Foo>): <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] fun foo([ResolvedTo(ANNOTATION_ARGUMENTS)] a: @<ERROR TYPE REF: Symbol not found for Anno>[Types]() <ERROR TYPE REF: Symbol not found for Foo>): @<ERROR TYPE REF: Symbol not found for Anno>[Types]() <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
}
|
||||
|
||||
BODY_RESOLVE:
|
||||
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
|
||||
public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] a: <ERROR TYPE REF: Symbol not found for Foo>): <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] a: @<ERROR TYPE REF: Symbol not found for Anno>[Types]() <ERROR TYPE REF: Symbol not found for Foo>): @<ERROR TYPE REF: Symbol not found for Anno>[Types]() <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
}
|
||||
|
||||
FILE RAW TO BODY:
|
||||
FILE: [ResolvedTo(BODY_RESOLVE)] unresolvedAnnotationOnFunctionType.kt
|
||||
public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] a: <ERROR TYPE REF: Symbol not found for Foo>): <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] a: @<ERROR TYPE REF: Symbol not found for Anno>[Types]() <ERROR TYPE REF: Symbol not found for Foo>): @<ERROR TYPE REF: Symbol not found for Anno>[Types]() <ERROR TYPE REF: Symbol not found for Foo> {
|
||||
}
|
||||
|
||||
Vendored
+16
-16
@@ -25,40 +25,40 @@ FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnPropertyType.kt
|
||||
|
||||
TYPES:
|
||||
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnPropertyType.kt
|
||||
public? final? [ResolvedTo(TYPES)] val prop: <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public? [ResolvedTo(TYPES)] get(): <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public? final? [ResolvedTo(TYPES)] val prop: @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public? [ResolvedTo(TYPES)] get(): @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo>
|
||||
|
||||
STATUS:
|
||||
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnPropertyType.kt
|
||||
public final [ResolvedTo(STATUS)] val prop: <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public [ResolvedTo(STATUS)] get(): <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public final [ResolvedTo(STATUS)] val prop: @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public [ResolvedTo(STATUS)] get(): @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo>
|
||||
|
||||
EXPECT_ACTUAL_MATCHING:
|
||||
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnPropertyType.kt
|
||||
public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] val prop: <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] get(): <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] val prop: @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] get(): @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo>
|
||||
|
||||
CONTRACTS:
|
||||
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnPropertyType.kt
|
||||
public final [ResolvedTo(CONTRACTS)] val prop: <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public [ResolvedTo(CONTRACTS)] get(): <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public final [ResolvedTo(CONTRACTS)] val prop: @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public [ResolvedTo(CONTRACTS)] get(): @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo>
|
||||
|
||||
IMPLICIT_TYPES_BODY_RESOLVE:
|
||||
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnPropertyType.kt
|
||||
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val prop: <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] get(): <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val prop: @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] get(): @<ERROR TYPE REF: Symbol not found for Anno>[Unresolved](Foo#) <ERROR TYPE REF: Symbol not found for Foo>
|
||||
|
||||
ANNOTATION_ARGUMENTS:
|
||||
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnPropertyType.kt
|
||||
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] val prop: <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public [ResolvedTo(ANNOTATION_ARGUMENTS)] get(): <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] val prop: @<ERROR TYPE REF: Symbol not found for Anno>[Types]() <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public [ResolvedTo(ANNOTATION_ARGUMENTS)] get(): @<ERROR TYPE REF: Symbol not found for Anno>[Types]() <ERROR TYPE REF: Symbol not found for Foo>
|
||||
|
||||
BODY_RESOLVE:
|
||||
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnPropertyType.kt
|
||||
public final [ResolvedTo(BODY_RESOLVE)] val prop: <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public [ResolvedTo(BODY_RESOLVE)] get(): <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public final [ResolvedTo(BODY_RESOLVE)] val prop: @<ERROR TYPE REF: Symbol not found for Anno>[Types]() <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public [ResolvedTo(BODY_RESOLVE)] get(): @<ERROR TYPE REF: Symbol not found for Anno>[Types]() <ERROR TYPE REF: Symbol not found for Foo>
|
||||
|
||||
FILE RAW TO BODY:
|
||||
FILE: [ResolvedTo(BODY_RESOLVE)] unresolvedAnnotationOnPropertyType.kt
|
||||
public final [ResolvedTo(BODY_RESOLVE)] val prop: <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public [ResolvedTo(BODY_RESOLVE)] get(): <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public final [ResolvedTo(BODY_RESOLVE)] val prop: @<ERROR TYPE REF: Symbol not found for Anno>[Types]() <ERROR TYPE REF: Symbol not found for Foo>
|
||||
public [ResolvedTo(BODY_RESOLVE)] get(): @<ERROR TYPE REF: Symbol not found for Anno>[Types]() <ERROR TYPE REF: Symbol not found for Foo>
|
||||
|
||||
+6
@@ -1554,6 +1554,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
|
||||
runTest("compiler/testData/diagnostics/tests/annotations/AnnotatedConstructorParams.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("AnnotatedErrorTypeRef.kt")
|
||||
public void testAnnotatedErrorTypeRef() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/annotations/AnnotatedErrorTypeRef.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotatedExpressionInsideAnnotation.kt")
|
||||
public void testAnnotatedExpressionInsideAnnotation() throws Exception {
|
||||
|
||||
+6
@@ -1554,6 +1554,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
|
||||
runTest("compiler/testData/diagnostics/tests/annotations/AnnotatedConstructorParams.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("AnnotatedErrorTypeRef.kt")
|
||||
public void testAnnotatedErrorTypeRef() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/annotations/AnnotatedErrorTypeRef.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotatedExpressionInsideAnnotation.kt")
|
||||
public void testAnnotatedExpressionInsideAnnotation() throws Exception {
|
||||
|
||||
+6
@@ -1554,6 +1554,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir
|
||||
runTest("compiler/testData/diagnostics/tests/annotations/AnnotatedConstructorParams.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("AnnotatedErrorTypeRef.kt")
|
||||
public void testAnnotatedErrorTypeRef() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/annotations/AnnotatedErrorTypeRef.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotatedExpressionInsideAnnotation.kt")
|
||||
public void testAnnotatedExpressionInsideAnnotation() throws Exception {
|
||||
|
||||
+6
@@ -1554,6 +1554,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia
|
||||
runTest("compiler/testData/diagnostics/tests/annotations/AnnotatedConstructorParams.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("AnnotatedErrorTypeRef.kt")
|
||||
public void testAnnotatedErrorTypeRef() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/annotations/AnnotatedErrorTypeRef.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotatedExpressionInsideAnnotation.kt")
|
||||
public void testAnnotatedExpressionInsideAnnotation() throws Exception {
|
||||
|
||||
@@ -49,6 +49,7 @@ fun FirTypeRef.resolvedTypeFromPrototype(
|
||||
source = this@resolvedTypeFromPrototype.source ?: fallbackSource
|
||||
this.type = type
|
||||
diagnostic = type.diagnostic
|
||||
annotations += this@resolvedTypeFromPrototype.annotations
|
||||
}
|
||||
} else {
|
||||
buildResolvedTypeRef {
|
||||
|
||||
@@ -412,6 +412,7 @@ fun FirTypeRef.withReplacedConeType(
|
||||
buildErrorTypeRef {
|
||||
source = newSource
|
||||
type = newType
|
||||
annotations += this@withReplacedConeType.annotations
|
||||
diagnostic = newType.diagnostic
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -282,6 +282,7 @@ open class PsiRawFirBuilder(
|
||||
diagnostic = ConeSyntaxDiagnostic(
|
||||
if (this@toFirOrErrorType == null) "Incomplete code" else "Conversion failed"
|
||||
)
|
||||
this@toFirOrErrorType?.extractAnnotationsTo(this)
|
||||
}
|
||||
|
||||
// Here we accept lambda as receiver to prevent expression calculation in stub mode
|
||||
|
||||
+2
@@ -120,6 +120,7 @@ class FirSpecificTypeResolverTransformer(
|
||||
if (resolvedType != null) {
|
||||
type = resolvedType
|
||||
}
|
||||
annotations += functionTypeRef.annotations
|
||||
this.diagnostic = diagnostic ?: (resolvedType as? ConeErrorType)?.diagnostic
|
||||
?: ConeSimpleDiagnostic("Unresolved function type: ${functionTypeRef.render()}")
|
||||
}
|
||||
@@ -188,6 +189,7 @@ class FirSpecificTypeResolverTransformer(
|
||||
|
||||
delegatedTypeRef = typeRef
|
||||
type = resolvedType
|
||||
annotations += typeRef.annotations
|
||||
|
||||
val partiallyResolvedTypeRef = tryCalculatingPartiallyResolvedTypeRef(typeRef, scopeClassDeclaration)
|
||||
this.partiallyResolvedTypeRef = partiallyResolvedTypeRef
|
||||
|
||||
+1
@@ -365,6 +365,7 @@ open class FirTypeResolveTransformer(
|
||||
val errorTypeRef = buildErrorTypeRef {
|
||||
source = originalTypeRef.source
|
||||
type = coneTypeFromCompilerRequiredPhase
|
||||
annotations += originalTypeRef.annotations
|
||||
delegatedTypeRef = originalTypeRef.delegatedTypeRef
|
||||
diagnostic = ConeAmbiguouslyResolvedAnnotationFromPlugin(
|
||||
coneTypeFromCompilerRequiredPhase,
|
||||
|
||||
+2
@@ -1236,12 +1236,14 @@ open class FirDeclarationsResolveTransformer(
|
||||
return when (this) {
|
||||
is FirImplicitTypeRef -> buildErrorTypeRef {
|
||||
diagnostic = ConeSimpleDiagnostic("No result type for initializer", DiagnosticKind.InferenceError)
|
||||
annotations.addAll(this@toExpectedTypeRef.annotations)
|
||||
}
|
||||
is FirErrorTypeRef -> buildErrorTypeRef {
|
||||
diagnostic = this@toExpectedTypeRef.diagnostic
|
||||
this@toExpectedTypeRef.source?.fakeElement(KtFakeSourceElementKind.ImplicitTypeRef)?.let {
|
||||
source = it
|
||||
}
|
||||
annotations.addAll(this@toExpectedTypeRef.annotations)
|
||||
}
|
||||
else -> {
|
||||
buildResolvedTypeRef {
|
||||
|
||||
+1
@@ -293,6 +293,7 @@ open class FirExpressionsResolveTransformer(transformer: FirAbstractBodyResolveT
|
||||
val actualSuperTypeRef = actualSuperType?.toFirResolvedTypeRef(superTypeRef.source, superTypeRef) ?: buildErrorTypeRef {
|
||||
source = superTypeRef.source
|
||||
diagnostic = ConeSimpleDiagnostic("Not a super type", DiagnosticKind.NotASupertype)
|
||||
annotations = superTypeRef.annotations.toMutableList()
|
||||
}
|
||||
superReferenceContainer.resultType = actualSuperTypeRef.type
|
||||
superReference.replaceSuperTypeRef(actualSuperTypeRef)
|
||||
|
||||
+1
-1
@@ -58,7 +58,7 @@ internal class FirErrorFunctionImpl(
|
||||
override val typeParameters: List<FirTypeParameterRef>
|
||||
get() = emptyList()
|
||||
override var status: FirDeclarationStatus = FirResolvedDeclarationStatusImpl.DEFAULT_STATUS_FOR_STATUSLESS_DECLARATIONS
|
||||
override var returnTypeRef: FirTypeRef = FirErrorTypeRefImpl(null, null, diagnostic)
|
||||
override var returnTypeRef: FirTypeRef = FirErrorTypeRefImpl(null, MutableOrEmptyList.empty(), null, null, diagnostic)
|
||||
override val receiverParameter: FirReceiverParameter?
|
||||
get() = null
|
||||
override var controlFlowGraphReference: FirControlFlowGraphReference? = null
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ internal class FirErrorPropertyImpl(
|
||||
override val typeParameters: List<FirTypeParameterRef>
|
||||
get() = emptyList()
|
||||
override var status: FirDeclarationStatus = FirResolvedDeclarationStatusImpl.DEFAULT_STATUS_FOR_STATUSLESS_DECLARATIONS
|
||||
override var returnTypeRef: FirTypeRef = FirErrorTypeRefImpl(null, null, diagnostic)
|
||||
override var returnTypeRef: FirTypeRef = FirErrorTypeRefImpl(null, MutableOrEmptyList.empty(), null, null, diagnostic)
|
||||
override val receiverParameter: FirReceiverParameter?
|
||||
get() = null
|
||||
override val initializer: FirExpression?
|
||||
|
||||
+11
-21
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.types.builder
|
||||
import org.jetbrains.kotlin.KtSourceElement
|
||||
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.builder.toMutableOrEmpty
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||
@@ -20,34 +21,22 @@ import kotlin.contracts.contract
|
||||
@FirBuilderDsl
|
||||
class FirErrorTypeRefBuilder : FirAnnotationContainerBuilder {
|
||||
override var source: KtSourceElement? = null
|
||||
override var annotations: MutableList<FirAnnotation> = mutableListOf()
|
||||
var type: ConeKotlinType? = null
|
||||
var delegatedTypeRef: FirTypeRef? = null
|
||||
var partiallyResolvedTypeRef: FirTypeRef? = null
|
||||
|
||||
lateinit var diagnostic: ConeDiagnostic
|
||||
|
||||
override fun build(): FirErrorTypeRef {
|
||||
val type = this.type
|
||||
return if (type != null) {
|
||||
FirErrorTypeRefImpl(
|
||||
source,
|
||||
type,
|
||||
delegatedTypeRef,
|
||||
diagnostic,
|
||||
partiallyResolvedTypeRef = partiallyResolvedTypeRef,
|
||||
)
|
||||
} else {
|
||||
FirErrorTypeRefImpl(
|
||||
source,
|
||||
delegatedTypeRef,
|
||||
diagnostic,
|
||||
partiallyResolvedTypeRef = partiallyResolvedTypeRef,
|
||||
)
|
||||
}
|
||||
return FirErrorTypeRefImpl(
|
||||
source,
|
||||
annotations.toMutableOrEmpty(),
|
||||
this.type,
|
||||
delegatedTypeRef,
|
||||
diagnostic,
|
||||
partiallyResolvedTypeRef = partiallyResolvedTypeRef,
|
||||
)
|
||||
}
|
||||
|
||||
@Deprecated("Modification of 'annotations' has no impact for FirErrorTypeRefBuilder", level = DeprecationLevel.HIDDEN)
|
||||
override val annotations: MutableList<FirAnnotation> = mutableListOf()
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalContracts::class)
|
||||
@@ -66,6 +55,7 @@ inline fun buildErrorTypeRefCopy(original: FirErrorTypeRef, init: FirErrorTypeRe
|
||||
val copyBuilder = FirErrorTypeRefBuilder()
|
||||
copyBuilder.source = original.source
|
||||
copyBuilder.type = original.type
|
||||
copyBuilder.annotations = original.annotations.toMutableList()
|
||||
copyBuilder.delegatedTypeRef = original.delegatedTypeRef
|
||||
copyBuilder.diagnostic = original.diagnostic
|
||||
return copyBuilder.apply(init).build()
|
||||
|
||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.types.impl
|
||||
|
||||
import org.jetbrains.kotlin.KtSourceElement
|
||||
import org.jetbrains.kotlin.fir.MutableOrEmptyList
|
||||
import org.jetbrains.kotlin.fir.builder.toMutableOrEmpty
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.types.ConeErrorType
|
||||
@@ -19,23 +20,13 @@ import org.jetbrains.kotlin.fir.visitors.transformInplace
|
||||
|
||||
internal class FirErrorTypeRefImpl(
|
||||
override val source: KtSourceElement?,
|
||||
override val type: ConeKotlinType,
|
||||
override var annotations: MutableOrEmptyList<FirAnnotation>,
|
||||
typeOrNull: ConeKotlinType?,
|
||||
override var delegatedTypeRef: FirTypeRef?,
|
||||
override val diagnostic: ConeDiagnostic,
|
||||
override var partiallyResolvedTypeRef: FirTypeRef? = null,
|
||||
) : FirErrorTypeRef() {
|
||||
constructor(
|
||||
source: KtSourceElement?, delegatedTypeRef: FirTypeRef?, diagnostic: ConeDiagnostic,
|
||||
partiallyResolvedTypeRef: FirTypeRef? = null,
|
||||
) : this(
|
||||
source,
|
||||
ConeErrorType(diagnostic),
|
||||
delegatedTypeRef,
|
||||
diagnostic,
|
||||
partiallyResolvedTypeRef,
|
||||
)
|
||||
|
||||
override val annotations: MutableOrEmptyList<FirAnnotation> = MutableOrEmptyList.empty()
|
||||
override val type: ConeKotlinType = typeOrNull ?: ConeErrorType(diagnostic)
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
annotations.forEach { it.accept(visitor, data) }
|
||||
@@ -48,7 +39,7 @@ internal class FirErrorTypeRefImpl(
|
||||
}
|
||||
|
||||
override fun replaceAnnotations(newAnnotations: List<FirAnnotation>) {
|
||||
throw AssertionError("Replacing annotations in FirErrorTypeRefImpl is not supported")
|
||||
annotations = newAnnotations.toMutableOrEmpty()
|
||||
}
|
||||
|
||||
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirErrorTypeRefImpl {
|
||||
|
||||
+2
-2
@@ -307,7 +307,7 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
||||
"getter", "setter",
|
||||
withGetter = true
|
||||
)
|
||||
default("returnTypeRef", "FirErrorTypeRefImpl(null, null, diagnostic)")
|
||||
default("returnTypeRef", "FirErrorTypeRefImpl(null, MutableOrEmptyList.empty(), null, null, diagnostic)")
|
||||
useTypes(errorTypeRefImplType)
|
||||
}
|
||||
|
||||
@@ -536,7 +536,7 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
||||
|
||||
impl(errorFunction) {
|
||||
defaultNull("receiverParameter", "body", withGetter = true)
|
||||
default("returnTypeRef", "FirErrorTypeRefImpl(null, null, diagnostic)")
|
||||
default("returnTypeRef", "FirErrorTypeRefImpl(null, MutableOrEmptyList.empty(), null, null, diagnostic)")
|
||||
useTypes(errorTypeRefImplType)
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
// ISSUE: KT-62447, KT-62628
|
||||
// FIR_DUMP
|
||||
|
||||
fun main() {
|
||||
val x: <!SYNTAX, WRONG_ANNOTATION_TARGET!>@SinceKotlin("2.0")<!><!SYNTAX!><!>
|
||||
}
|
||||
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Anno
|
||||
|
||||
val prop: @Anno <!UNRESOLVED_REFERENCE!>Foo<!>? = null
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
FILE: AnnotatedErrorTypeRef.fir.kt
|
||||
public final fun main(): R|kotlin/Unit| {
|
||||
lval x: @R|kotlin/SinceKotlin|(version = String(2.0)) <ERROR TYPE REF: Incomplete code>
|
||||
}
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|)) public final annotation class Anno : R|kotlin/Annotation| {
|
||||
public constructor(): R|Anno| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
public final val prop: @R|Anno|() <ERROR TYPE REF: Symbol not found for Foo?> = Null(null)
|
||||
public get(): @R|Anno|() <ERROR TYPE REF: Symbol not found for Foo?>
|
||||
@@ -0,0 +1,11 @@
|
||||
// ISSUE: KT-62447, KT-62628
|
||||
// FIR_DUMP
|
||||
|
||||
fun main() {
|
||||
val x: <!WRONG_ANNOTATION_TARGET!>@SinceKotlin("2.0")<!><!SYNTAX!><!>
|
||||
}
|
||||
|
||||
@Target(AnnotationTarget.TYPE)
|
||||
annotation class Anno
|
||||
|
||||
val prop: @Anno <!UNRESOLVED_REFERENCE!>Foo<!>? = null
|
||||
Generated
+6
@@ -1554,6 +1554,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
|
||||
runTest("compiler/testData/diagnostics/tests/annotations/AnnotatedConstructorParams.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("AnnotatedErrorTypeRef.kt")
|
||||
public void testAnnotatedErrorTypeRef() throws Exception {
|
||||
runTest("compiler/testData/diagnostics/tests/annotations/AnnotatedErrorTypeRef.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("annotatedExpressionInsideAnnotation.kt")
|
||||
public void testAnnotatedExpressionInsideAnnotation() throws Exception {
|
||||
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
FILE: ambigousKinds.kt
|
||||
public final fun incorrect(block: <ERROR TYPE REF: There are multiple function kinds for functional type ref>): R|kotlin/Unit| {
|
||||
public final fun incorrect(block: @R|org/jetbrains/kotlin/fir/plugin/MyComposable|() <ERROR TYPE REF: There are multiple function kinds for functional type ref>): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user