From c2ad4751539777b88dc56503293d52677edd2555 Mon Sep 17 00:00:00 2001 From: Nikolay Lunyak Date: Thu, 27 Jul 2023 11:51:48 +0300 Subject: [PATCH] [FIR] Render outer type parameters differently --- .../testdata/lazyResolve/localConstructor.txt | 10 ++-- .../lazyResolve/localConstructorScript.txt | 18 +++---- .../lazyResolve/typeParameterOfClass2.txt | 28 +++++----- .../typeParameterOfClass2Script.txt | 52 +++++++++---------- .../testdata/onAirResolve/classInClass.txt | 2 +- .../invokeWithReceiverAndArgument.fir.txt | 4 +- .../diagnostics/conflictingProjection.fir.txt | 12 ++--- ...RedundantVisibilityModifierChecker.fir.txt | 2 +- .../resolve/fromBuilder/complexTypes.fir.txt | 2 +- .../innerTypeFromSuperClassInBody.fir.txt | 2 +- .../resolve/innerClasses/innerTypes.fir.txt | 2 +- ...correctReferenceOnInnerClassMember.fir.txt | 2 +- .../resolve/throwableSubclass.fir.txt | 8 +-- .../capturedParametersOfInnerClasses.fir.txt | 4 +- .../InnerClassOfThrowableOnObject.fir.txt | 2 +- .../intellij/baseIntrospector.fir.txt | 4 +- .../j+k/KJKComplexHierarchyWithNested.fir.txt | 2 +- .../declarations/complexTypes.lazyBodies.txt | 2 +- .../rawBuilder/declarations/complexTypes.txt | 2 +- .../typeParameterVsNested.lazyBodies.txt | 2 +- .../declarations/typeParameterVsNested.txt | 2 +- .../kotlin/fir/renderer/FirRenderer.kt | 13 ++++- .../tests/visibility/privateToThis.fir.txt | 2 +- .../InnerClassReferencesOuterTP.fir.txt | 2 +- .../InnerClassTypeMultipleGeneric.fir.txt | 4 +- .../InnerClassesInGeneric.fir.txt | 4 +- .../compiledJava/InnerOfGeneric.fir.txt | 4 +- .../MethodReferencesOuterClassTP.fir.txt | 2 +- .../TypeParameterOfOuterClass.fir.txt | 2 +- .../ReturnInnerSubclassOfSupersInner.fir.txt | 4 +- .../types/ClassLiteralArgument.fir.k1.txt | 2 +- .../types/ClassLiteralArgument.fir.k2.txt | 2 +- .../compiledKotlin/class/InnerTypes.fir.txt | 6 +-- .../nestedClasses/deepInnerGeneric.fir.k1.txt | 6 +-- .../nestedClasses/deepInnerGeneric.fir.k2.txt | 6 +-- .../innerClassReferencesOuterTP.fir.txt | 2 +- .../membersReferenceOuterTP.fir.txt | 2 +- 37 files changed, 118 insertions(+), 109 deletions(-) diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/localConstructor.txt b/analysis/low-level-api-fir/testdata/lazyResolve/localConstructor.txt index be64d2258b1..1823338d3d9 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/localConstructor.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/localConstructor.txt @@ -116,7 +116,7 @@ FILE: [ResolvedTo(IMPORTS)] localConstructor.kt public final [ResolvedTo(CONTRACTS)] fun <[ResolvedTo(CONTRACTS)] E, [ResolvedTo(CONTRACTS)] F> foo(): { ^foo [ResolvedTo(RAW_FIR)] fun .(): { - local final? [ResolvedTo(RAW_FIR)] class C<[ResolvedTo(RAW_FIR)] G, [ResolvedTo(CONTRACTS)] E, [ResolvedTo(CONTRACTS)] F> : R|kotlin/Any| { + local final? [ResolvedTo(RAW_FIR)] class C<[ResolvedTo(RAW_FIR)] G, [ResolvedTo(CONTRACTS)] Outer(E), [ResolvedTo(CONTRACTS)] Outer(F)> : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=C] constructor<[ResolvedTo(RAW_FIR)] G>(): R|Q.C| { super() } @@ -151,7 +151,7 @@ FILE: [ResolvedTo(IMPORTS)] localConstructor.kt public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun <[ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] E, [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] F> foo(): R|() -> Q.C| { ^foo [ResolvedTo(RAW_FIR)] fun (): R|Q.C| { - local final [ResolvedTo(RAW_FIR)] class C<[ResolvedTo(RAW_FIR)] G, [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] E, [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] F> : R|kotlin/Any| { + local final [ResolvedTo(RAW_FIR)] class C<[ResolvedTo(RAW_FIR)] G, [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] Outer(E), [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] Outer(F)> : R|kotlin/Any| { public [ResolvedTo(RAW_FIR)] [ContainingClassKey=C] constructor<[ResolvedTo(RAW_FIR)] G>(): R|Q.C| { super() } @@ -186,7 +186,7 @@ FILE: [ResolvedTo(IMPORTS)] localConstructor.kt public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] fun <[ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] E, [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] F> foo(): R|() -> Q.C| { ^foo [ResolvedTo(RAW_FIR)] fun (): R|Q.C| { - local final [ResolvedTo(RAW_FIR)] class C<[ResolvedTo(RAW_FIR)] G, [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] E, [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] F> : R|kotlin/Any| { + local final [ResolvedTo(RAW_FIR)] class C<[ResolvedTo(RAW_FIR)] G, [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] Outer(E), [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] Outer(F)> : R|kotlin/Any| { public [ResolvedTo(RAW_FIR)] [ContainingClassKey=C] constructor<[ResolvedTo(RAW_FIR)] G>(): R|Q.C| { super() } @@ -221,7 +221,7 @@ FILE: [ResolvedTo(IMPORTS)] localConstructor.kt public final [ResolvedTo(BODY_RESOLVE)] fun <[ResolvedTo(BODY_RESOLVE)] E, [ResolvedTo(BODY_RESOLVE)] F> foo(): R|() -> Q.C| { ^foo [ResolvedTo(BODY_RESOLVE)] fun (): R|Q.C| { - local final [ResolvedTo(BODY_RESOLVE)] class C<[ResolvedTo(BODY_RESOLVE)] G, [ResolvedTo(BODY_RESOLVE)] E, [ResolvedTo(BODY_RESOLVE)] F> : R|kotlin/Any| { + local final [ResolvedTo(BODY_RESOLVE)] class C<[ResolvedTo(BODY_RESOLVE)] G, [ResolvedTo(BODY_RESOLVE)] Outer(E), [ResolvedTo(BODY_RESOLVE)] Outer(F)> : R|kotlin/Any| { public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=C] constructor<[ResolvedTo(BODY_RESOLVE)] G>(): R|Q.C| { super() } @@ -256,7 +256,7 @@ FILE: [ResolvedTo(IMPORTS)] localConstructor.kt public final [ResolvedTo(BODY_RESOLVE)] fun <[ResolvedTo(BODY_RESOLVE)] E, [ResolvedTo(BODY_RESOLVE)] F> foo(): R|() -> Q.C| { ^foo [ResolvedTo(BODY_RESOLVE)] fun (): R|Q.C| { - local final [ResolvedTo(BODY_RESOLVE)] class C<[ResolvedTo(BODY_RESOLVE)] G, [ResolvedTo(BODY_RESOLVE)] E, [ResolvedTo(BODY_RESOLVE)] F> : R|kotlin/Any| { + local final [ResolvedTo(BODY_RESOLVE)] class C<[ResolvedTo(BODY_RESOLVE)] G, [ResolvedTo(BODY_RESOLVE)] Outer(E), [ResolvedTo(BODY_RESOLVE)] Outer(F)> : R|kotlin/Any| { public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=C] constructor<[ResolvedTo(BODY_RESOLVE)] G>(): R|Q.C| { super() } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/localConstructorScript.txt b/analysis/low-level-api-fir/testdata/lazyResolve/localConstructorScript.txt index 60843ccafba..d2ea1f64d71 100644 --- a/analysis/low-level-api-fir/testdata/lazyResolve/localConstructorScript.txt +++ b/analysis/low-level-api-fir/testdata/lazyResolve/localConstructorScript.txt @@ -175,7 +175,7 @@ FILE: [ResolvedTo(IMPORTS)] localConstructorScript.kts public final [ResolvedTo(CONTRACTS)] fun <[ResolvedTo(CONTRACTS)] E, [ResolvedTo(CONTRACTS)] F> foo(): { ^foo [ResolvedTo(RAW_FIR)] fun .(): { - local final? [ResolvedTo(RAW_FIR)] class C<[ResolvedTo(RAW_FIR)] G, [ResolvedTo(CONTRACTS)] E, [ResolvedTo(CONTRACTS)] F> : R|kotlin/Any| { + local final? [ResolvedTo(RAW_FIR)] class C<[ResolvedTo(RAW_FIR)] G, [ResolvedTo(CONTRACTS)] Outer(E), [ResolvedTo(CONTRACTS)] Outer(F)> : R|kotlin/Any| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=C] constructor<[ResolvedTo(RAW_FIR)] G>(): R|Q.C| { super() } @@ -202,7 +202,7 @@ FILE: [ResolvedTo(IMPORTS)] localConstructorScript.kts IMPLICIT_TYPES_BODY_RESOLVE: FILE: [ResolvedTo(IMPORTS)] localConstructorScript.kts context(