From 09f384d96eb14762bdc3c3a376c91c951f80f0f2 Mon Sep 17 00:00:00 2001 From: Jinseong Jeon Date: Wed, 6 Mar 2024 18:41:22 -0800 Subject: [PATCH] FIR: assure annotation argument mapping is ready ^KT-66223 fixed --- .../kotlin/fir/types/ConeTypeContext.kt | 5 + .../facades/jvmWildcardAnnotations.fir.java | 2 +- ...> jvmWildcardAnnotations.descriptors.java} | 2 +- .../jvmWildcardAnnotations.fir.java | 107 ------------------ .../jvmWildcardAnnotations.java | 2 +- 5 files changed, 8 insertions(+), 110 deletions(-) rename compiler/testData/asJava/lightClasses/lightClassByPsi/{jvmWildcardAnnotations.lib.java => jvmWildcardAnnotations.descriptors.java} (96%) delete mode 100644 compiler/testData/asJava/lightClasses/lightClassByPsi/jvmWildcardAnnotations.fir.java diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt index eeed31c2edf..7d8904ff9eb 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt @@ -563,6 +563,11 @@ interface ConeTypeContext : TypeSystemContext, TypeSystemOptimizationContext, Ty val annotationCall = customAnnotations.firstOrNull { it.resolvedType.fullyExpandedType(session).classId?.asSingleFqName() == fqName } ?: return null + + if (annotationCall is FirAnnotationCall) { + annotationCall.containingDeclarationSymbol.lazyResolveToPhase(FirResolvePhase.ANNOTATION_ARGUMENTS) + } + val argument = when (val argument = annotationCall.argumentMapping.mapping.values.firstOrNull() ?: return null) { is FirVarargArgumentsExpression -> argument.arguments.firstOrNull() is FirArrayLiteral -> argument.arguments.firstOrNull() diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/jvmWildcardAnnotations.fir.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/jvmWildcardAnnotations.fir.java index ec3ce71f06d..da21d7aa53a 100644 --- a/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/jvmWildcardAnnotations.fir.java +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/facades/jvmWildcardAnnotations.fir.java @@ -33,7 +33,7 @@ public final class JvmWildcardAnnotationsKt /* JvmWildcardAnnotationsKt*/ { public static final void deepOpen(@org.jetbrains.annotations.NotNull() Out>>);// deepOpen(Out>>) @org.jetbrains.annotations.NotNull() - public static final OutPair, Out>> falseTrueFalse();// falseTrueFalse() + public static final OutPair, Out>> falseTrueFalse();// falseTrueFalse() @org.jetbrains.annotations.NotNull() public static final OutPair>> combination();// combination() diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/jvmWildcardAnnotations.lib.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/jvmWildcardAnnotations.descriptors.java similarity index 96% rename from compiler/testData/asJava/lightClasses/lightClassByPsi/jvmWildcardAnnotations.lib.java rename to compiler/testData/asJava/lightClasses/lightClassByPsi/jvmWildcardAnnotations.descriptors.java index 7ad415f2930..3fcd79a2482 100644 --- a/compiler/testData/asJava/lightClasses/lightClassByPsi/jvmWildcardAnnotations.lib.java +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/jvmWildcardAnnotations.descriptors.java @@ -60,7 +60,7 @@ public final class ContainerForPropertyAndAccessors /* ContainerForPropertyAndAc public final Out getSimpleOut();// getSimpleOut() @org.jetbrains.annotations.NotNull() - public final Out getZoo(@org.jetbrains.annotations.NotNull() Out>>);// getZoo(Out>>) + public final Out getZoo(@org.jetbrains.annotations.NotNull() Out>>);// getZoo(Out>>) @org.jetbrains.annotations.NotNull() public final Out getBar();// getBar() diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/jvmWildcardAnnotations.fir.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/jvmWildcardAnnotations.fir.java deleted file mode 100644 index bf59de0f9d3..00000000000 --- a/compiler/testData/asJava/lightClasses/lightClassByPsi/jvmWildcardAnnotations.fir.java +++ /dev/null @@ -1,107 +0,0 @@ -public abstract interface A /* A*/ { - @kotlin.jvm.JvmSuppressWildcards(suppress = true) - @org.jetbrains.annotations.NotNull() - public abstract Out foo();// foo() -} - -public abstract interface B /* B*/ { - @kotlin.jvm.JvmSuppressWildcards(suppress = true) - @org.jetbrains.annotations.NotNull() - public abstract In foo();// foo() -} - -public final class Container /* Container*/ { - @kotlin.jvm.JvmSuppressWildcards(suppress = false) - @org.jetbrains.annotations.NotNull() - public final Out bar();// bar() - - @kotlin.jvm.JvmSuppressWildcards(suppress = false) - public final int foo(boolean, @org.jetbrains.annotations.NotNull() Out);// foo(boolean, Out) - - @kotlin.jvm.JvmSuppressWildcards(suppress = true) - public final int bar(boolean, @org.jetbrains.annotations.NotNull() In, long);// bar(boolean, In, long) - - @kotlin.jvm.JvmSuppressWildcards(suppress = true) - public final void deepOpen(@org.jetbrains.annotations.NotNull() Out>>);// deepOpen(Out>>) - - @kotlin.jvm.JvmSuppressWildcards(suppress = true) - public final void zoo(@org.jetbrains.annotations.NotNull() Out>>, @org.jetbrains.annotations.NotNull() Out);// zoo(Out>>, Out) - - @org.jetbrains.annotations.NotNull() - public final OutPair, Out>> falseTrueFalse();// falseTrueFalse() - - @org.jetbrains.annotations.NotNull() - public final OutPair>> combination();// combination() - - public Container();// .ctor() - - public final void simpleIn(@org.jetbrains.annotations.NotNull() In);// simpleIn(In) - - public final void simpleOut(@org.jetbrains.annotations.NotNull() Out);// simpleOut(Out) -} - -public final class ContainerForPropertyAndAccessors /* ContainerForPropertyAndAccessors*/ { - @org.jetbrains.annotations.NotNull() - private Out bar; - - @org.jetbrains.annotations.NotNull() - private final In simpleIn; - - @org.jetbrains.annotations.NotNull() - private final Out simpleOut; - - @org.jetbrains.annotations.NotNull() - private final Out>> deepOpen; - - @org.jetbrains.annotations.NotNull() - public final In getSimpleIn();// getSimpleIn() - - @org.jetbrains.annotations.NotNull() - public final Out getSimpleOut();// getSimpleOut() - - @org.jetbrains.annotations.NotNull() - public final Out getBar();// getBar() - - @org.jetbrains.annotations.NotNull() - public final Out getZoo(@org.jetbrains.annotations.NotNull() Out>>);// getZoo(Out>>) - - @org.jetbrains.annotations.NotNull() - public final Out>> getDeepOpen();// getDeepOpen() - - public ContainerForPropertyAndAccessors();// .ctor() - - public final void setBar(@org.jetbrains.annotations.NotNull() Out);// setBar(Out) -} - -public final class Final /* Final*/ { - public Final();// .ctor() -} - -@kotlin.jvm.JvmSuppressWildcards(suppress = true) -public final class HasAnnotation /* HasAnnotation*/ { - public HasAnnotation();// .ctor() - - public final void doesNot(@org.jetbrains.annotations.NotNull() Out>);// doesNot(Out>) - - public final void parameterDisagrees(@org.jetbrains.annotations.NotNull() Out);// parameterDisagrees(Out) -} - -public final class In /* In*/ { - public In();// .ctor() -} - -public final class Inv /* Inv*/ { - public Inv();// .ctor() -} - -public class Open /* Open*/ { - public Open();// .ctor() -} - -public final class Out /* Out*/ { - public Out();// .ctor() -} - -public final class OutPair /* OutPair*/ { - public OutPair();// .ctor() -} diff --git a/compiler/testData/asJava/lightClasses/lightClassByPsi/jvmWildcardAnnotations.java b/compiler/testData/asJava/lightClasses/lightClassByPsi/jvmWildcardAnnotations.java index 3fcd79a2482..7ad415f2930 100644 --- a/compiler/testData/asJava/lightClasses/lightClassByPsi/jvmWildcardAnnotations.java +++ b/compiler/testData/asJava/lightClasses/lightClassByPsi/jvmWildcardAnnotations.java @@ -60,7 +60,7 @@ public final class ContainerForPropertyAndAccessors /* ContainerForPropertyAndAc public final Out getSimpleOut();// getSimpleOut() @org.jetbrains.annotations.NotNull() - public final Out getZoo(@org.jetbrains.annotations.NotNull() Out>>);// getZoo(Out>>) + public final Out getZoo(@org.jetbrains.annotations.NotNull() Out>>);// getZoo(Out>>) @org.jetbrains.annotations.NotNull() public final Out getBar();// getBar()