diff --git a/compiler/testData/compileJavaAgainstKotlin/class/InnerClassOfGeneric.txt b/compiler/testData/compileJavaAgainstKotlin/class/InnerClassOfGeneric.txt index 009b6a672fb..ff82a5ad219 100644 --- a/compiler/testData/compileJavaAgainstKotlin/class/InnerClassOfGeneric.txt +++ b/compiler/testData/compileJavaAgainstKotlin/class/InnerClassOfGeneric.txt @@ -10,11 +10,11 @@ public/*package*/ open class InnerClassOfGeneric { public final class Outer { public constructor Outer() - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*0*/ T*/ { public constructor Inner(/*0*/ kotlin.List) } - public final inner class InnerSimple { + public final inner class InnerSimple /*captured type parameters: /*0*/ T*/ { public constructor InnerSimple() } } diff --git a/compiler/testData/diagnostics/tests/PrimaryConstructors.txt b/compiler/testData/diagnostics/tests/PrimaryConstructors.txt index 0c095b84eac..3828990dc7d 100644 --- a/compiler/testData/diagnostics/tests/PrimaryConstructors.txt +++ b/compiler/testData/diagnostics/tests/PrimaryConstructors.txt @@ -7,7 +7,7 @@ public final class MyIterable : kotlin.Iterable { public open override /*1*/ fun iterator(): kotlin.Iterator public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class MyIterator : kotlin.Iterator { + public final inner class MyIterator /*captured type parameters: /*0*/ T*/ : kotlin.Iterator { public constructor MyIterator() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ fun hasNext(): kotlin.Boolean diff --git a/compiler/testData/diagnostics/tests/classLiteral/genericClasses.txt b/compiler/testData/diagnostics/tests/classLiteral/genericClasses.txt index 9033974e811..1ff3802405e 100644 --- a/compiler/testData/diagnostics/tests/classLiteral/genericClasses.txt +++ b/compiler/testData/diagnostics/tests/classLiteral/genericClasses.txt @@ -21,7 +21,7 @@ public final class A { public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*1*/ T*/ { public constructor Inner() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int diff --git a/compiler/testData/diagnostics/tests/generics/innerClasses/bareTypes.txt b/compiler/testData/diagnostics/tests/generics/innerClasses/bareTypes.txt index a2de89fd40d..0bf44c217fb 100644 --- a/compiler/testData/diagnostics/tests/generics/innerClasses/bareTypes.txt +++ b/compiler/testData/diagnostics/tests/generics/innerClasses/bareTypes.txt @@ -9,34 +9,34 @@ public final class Outer { public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*2*/ E*/ { public constructor Inner() 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 final inner class Inner2 : Outer.Inner.Inner2Base { + public final inner class Inner2 /*captured type parameters: /*0*/ F, /*1*/ G, /*2*/ E*/ : Outer.Inner.Inner2Base { public constructor Inner2() 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 abstract inner class Inner2Base { + public abstract inner class Inner2Base /*captured type parameters: /*0*/ F, /*1*/ G, /*2*/ E*/ { public constructor Inner2Base() 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 final inner class Inner3 : Outer.Inner.Inner3Base { + public final inner class Inner3 /*captured type parameters: /*1*/ F, /*2*/ G, /*3*/ E*/ : Outer.Inner.Inner3Base { public constructor Inner3() 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 abstract inner class Inner3Base { + public abstract inner class Inner3Base /*captured type parameters: /*1*/ F, /*2*/ G, /*3*/ E*/ { public constructor Inner3Base() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int diff --git a/compiler/testData/diagnostics/tests/generics/innerClasses/checkBoundsOuter.txt b/compiler/testData/diagnostics/tests/generics/innerClasses/checkBoundsOuter.txt index 4d0b97097c1..f5230176c86 100644 --- a/compiler/testData/diagnostics/tests/generics/innerClasses/checkBoundsOuter.txt +++ b/compiler/testData/diagnostics/tests/generics/innerClasses/checkBoundsOuter.txt @@ -8,7 +8,7 @@ public final class Outer { public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*2*/ E : kotlin.Any*/ { public constructor Inner() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int diff --git a/compiler/testData/diagnostics/tests/generics/innerClasses/innerTP.txt b/compiler/testData/diagnostics/tests/generics/innerClasses/innerTP.txt index 52a57951f7c..86ce9322f75 100644 --- a/compiler/testData/diagnostics/tests/generics/innerClasses/innerTP.txt +++ b/compiler/testData/diagnostics/tests/generics/innerClasses/innerTP.txt @@ -15,7 +15,7 @@ public final class Outer { public final fun set(/*0*/ inner: Outer.Inner): kotlin.Unit public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*1*/ E*/ { public constructor Inner() public final fun baz(): Outer.Inner public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean diff --git a/compiler/testData/diagnostics/tests/generics/innerClasses/innerUncheckedCast.txt b/compiler/testData/diagnostics/tests/generics/innerClasses/innerUncheckedCast.txt index dd2a28c97bb..6cd4ea46f6f 100644 --- a/compiler/testData/diagnostics/tests/generics/innerClasses/innerUncheckedCast.txt +++ b/compiler/testData/diagnostics/tests/generics/innerClasses/innerUncheckedCast.txt @@ -8,7 +8,7 @@ public final class Outer { public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class Inner : Outer.InnerBase { + public final inner class Inner /*captured type parameters: /*1*/ E*/ : Outer.InnerBase { public constructor Inner() public final val prop: E public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean @@ -16,7 +16,7 @@ public final class Outer { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } - public open inner class InnerBase { + public open inner class InnerBase /*captured type parameters: /*1*/ E*/ { public constructor InnerBase() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int diff --git a/compiler/testData/diagnostics/tests/generics/innerClasses/innerVariance.txt b/compiler/testData/diagnostics/tests/generics/innerClasses/innerVariance.txt index ea0bfb9877c..565e17a0305 100644 --- a/compiler/testData/diagnostics/tests/generics/innerClasses/innerVariance.txt +++ b/compiler/testData/diagnostics/tests/generics/innerClasses/innerVariance.txt @@ -8,7 +8,7 @@ public final class Outer { public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*0*/ out E, /*1*/ in F*/ { public constructor Inner() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int diff --git a/compiler/testData/diagnostics/tests/generics/innerClasses/iterator.txt b/compiler/testData/diagnostics/tests/generics/innerClasses/iterator.txt index 01e0a1320fb..528545d03a4 100644 --- a/compiler/testData/diagnostics/tests/generics/innerClasses/iterator.txt +++ b/compiler/testData/diagnostics/tests/generics/innerClasses/iterator.txt @@ -22,7 +22,7 @@ public final class A : java.util.AbstractCollection { public open override /*1*/ /*fake_override*/ fun toArray(/*0*/ p0: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>! public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class MyIt : kotlin.MutableIterator { + public final inner class MyIt /*captured type parameters: /*0*/ T*/ : kotlin.MutableIterator { public constructor MyIt() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ fun hasNext(): kotlin.Boolean diff --git a/compiler/testData/diagnostics/tests/generics/innerClasses/j+k.txt b/compiler/testData/diagnostics/tests/generics/innerClasses/j+k.txt index 787fcf1e968..bd167d4b43e 100644 --- a/compiler/testData/diagnostics/tests/generics/innerClasses/j+k.txt +++ b/compiler/testData/diagnostics/tests/generics/innerClasses/j+k.txt @@ -10,7 +10,7 @@ public open class Outer { public/*package*/ open fun set(/*0*/ x: Outer.Inner!): kotlin.Unit public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public open inner class Inner { + public open inner class Inner /*captured type parameters: /*1*/ E : kotlin.Any!*/ { public constructor Inner() public/*package*/ open fun bar(): F! public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean diff --git a/compiler/testData/diagnostics/tests/generics/innerClasses/kt408.txt b/compiler/testData/diagnostics/tests/generics/innerClasses/kt408.txt index cd9064d4c16..0a24f954887 100644 --- a/compiler/testData/diagnostics/tests/generics/innerClasses/kt408.txt +++ b/compiler/testData/diagnostics/tests/generics/innerClasses/kt408.txt @@ -8,7 +8,7 @@ public open class A { public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class B : T { + public final inner class B /*captured type parameters: /*0*/ X*/ : T { public constructor B() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun f(): X diff --git a/compiler/testData/diagnostics/tests/generics/innerClasses/kt6325.txt b/compiler/testData/diagnostics/tests/generics/innerClasses/kt6325.txt index 3f03f8cb12d..7933514aec0 100644 --- a/compiler/testData/diagnostics/tests/generics/innerClasses/kt6325.txt +++ b/compiler/testData/diagnostics/tests/generics/innerClasses/kt6325.txt @@ -9,7 +9,7 @@ public final class Outer { public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*1*/ T*/ { public constructor Inner() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public final fun foo(/*0*/ t: T, /*1*/ r: R): kotlin.Unit diff --git a/compiler/testData/diagnostics/tests/generics/innerClasses/parameterShadowing.txt b/compiler/testData/diagnostics/tests/generics/innerClasses/parameterShadowing.txt index c1c8297373f..68fb3e1f9d4 100644 --- a/compiler/testData/diagnostics/tests/generics/innerClasses/parameterShadowing.txt +++ b/compiler/testData/diagnostics/tests/generics/innerClasses/parameterShadowing.txt @@ -9,7 +9,7 @@ public final class Outer { public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*1*/ E*/ { public constructor Inner() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public final fun foo(): E diff --git a/compiler/testData/diagnostics/tests/generics/innerClasses/qualifiedOuter.txt b/compiler/testData/diagnostics/tests/generics/innerClasses/qualifiedOuter.txt index fa3aec5ceb1..b74cf7a3519 100644 --- a/compiler/testData/diagnostics/tests/generics/innerClasses/qualifiedOuter.txt +++ b/compiler/testData/diagnostics/tests/generics/innerClasses/qualifiedOuter.txt @@ -8,7 +8,7 @@ public final class Outer { public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*0*/ T*/ { public constructor Inner() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int diff --git a/compiler/testData/diagnostics/tests/generics/innerClasses/qualifiedTypesResolution.txt b/compiler/testData/diagnostics/tests/generics/innerClasses/qualifiedTypesResolution.txt index 27574eddaa3..bc1e58a68ae 100644 --- a/compiler/testData/diagnostics/tests/generics/innerClasses/qualifiedTypesResolution.txt +++ b/compiler/testData/diagnostics/tests/generics/innerClasses/qualifiedTypesResolution.txt @@ -51,20 +51,20 @@ package test { public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*2*/ E*/ { public constructor Inner() 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 final inner class Inner2 { + public final inner class Inner2 /*captured type parameters: /*0*/ F, /*1*/ G, /*2*/ E*/ { public constructor Inner2() 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 final inner class Inner3 { + public final inner class Inner3 /*captured type parameters: /*1*/ F, /*2*/ G, /*3*/ E*/ { public constructor Inner3() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int @@ -78,7 +78,7 @@ package test { public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class Inner4 { + public final inner class Inner4 /*captured type parameters: /*1*/ I*/ { public constructor Inner4() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int @@ -98,7 +98,7 @@ package test { public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class Inner5 { + public final inner class Inner5 /*captured type parameters: /*1*/ J*/ { public constructor Inner5() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int diff --git a/compiler/testData/diagnostics/tests/generics/innerClasses/simple.txt b/compiler/testData/diagnostics/tests/generics/innerClasses/simple.txt index 1a1e9723219..da3ede99eed 100644 --- a/compiler/testData/diagnostics/tests/generics/innerClasses/simple.txt +++ b/compiler/testData/diagnostics/tests/generics/innerClasses/simple.txt @@ -13,7 +13,7 @@ public final class Outer { public final fun set(/*0*/ inner: Outer.Inner): kotlin.Unit public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*0*/ E*/ { public constructor Inner() public final fun baz(): Outer.Inner public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean diff --git a/compiler/testData/diagnostics/tests/generics/innerClasses/simpleIn.txt b/compiler/testData/diagnostics/tests/generics/innerClasses/simpleIn.txt index 9300024509d..b09a63fde23 100644 --- a/compiler/testData/diagnostics/tests/generics/innerClasses/simpleIn.txt +++ b/compiler/testData/diagnostics/tests/generics/innerClasses/simpleIn.txt @@ -13,7 +13,7 @@ public final class Outer { public final fun set(/*0*/ inner: Outer.Inner): kotlin.Unit public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*0*/ in E*/ { public constructor Inner() public final fun baz(): Outer.Inner public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean diff --git a/compiler/testData/diagnostics/tests/generics/innerClasses/simpleOut.txt b/compiler/testData/diagnostics/tests/generics/innerClasses/simpleOut.txt index 6569e84d26a..a78a60887df 100644 --- a/compiler/testData/diagnostics/tests/generics/innerClasses/simpleOut.txt +++ b/compiler/testData/diagnostics/tests/generics/innerClasses/simpleOut.txt @@ -13,7 +13,7 @@ public final class Outer { public final fun set(/*0*/ inner: Outer.Inner): kotlin.Unit public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*0*/ out E*/ { public constructor Inner() public final fun baz(): Outer.Inner public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean diff --git a/compiler/testData/diagnostics/tests/generics/innerClasses/simpleOutUseSite.txt b/compiler/testData/diagnostics/tests/generics/innerClasses/simpleOutUseSite.txt index 1a1e9723219..da3ede99eed 100644 --- a/compiler/testData/diagnostics/tests/generics/innerClasses/simpleOutUseSite.txt +++ b/compiler/testData/diagnostics/tests/generics/innerClasses/simpleOutUseSite.txt @@ -13,7 +13,7 @@ public final class Outer { public final fun set(/*0*/ inner: Outer.Inner): kotlin.Unit public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*0*/ E*/ { public constructor Inner() public final fun baz(): Outer.Inner public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean diff --git a/compiler/testData/diagnostics/tests/generics/innerClasses/substitutedMemberScope.txt b/compiler/testData/diagnostics/tests/generics/innerClasses/substitutedMemberScope.txt index fe3d12cb1d0..c03470cf528 100644 --- a/compiler/testData/diagnostics/tests/generics/innerClasses/substitutedMemberScope.txt +++ b/compiler/testData/diagnostics/tests/generics/innerClasses/substitutedMemberScope.txt @@ -12,7 +12,7 @@ public final class Outer { public final fun setInner(/*0*/ inner: Outer.Inner): kotlin.Unit public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*1*/ E*/ { public constructor Inner() public final fun act(): kotlin.Unit public final fun bar(/*0*/ e: E, /*1*/ f: F): kotlin.Unit diff --git a/compiler/testData/diagnostics/tests/generics/kt5508.txt b/compiler/testData/diagnostics/tests/generics/kt5508.txt index 8d17ecb8f05..06a9a868cbd 100644 --- a/compiler/testData/diagnostics/tests/generics/kt5508.txt +++ b/compiler/testData/diagnostics/tests/generics/kt5508.txt @@ -7,14 +7,14 @@ public abstract class A { public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public abstract inner class B : A.B> { + public abstract inner class B /*captured type parameters: /*1*/ T*/ : A.B> { public constructor B() public abstract override /*1*/ /*fake_override*/ fun Foo(/*0*/ x: A.B): kotlin.Unit 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 final inner class C : A.B.B.C> { + public final inner class C /*captured type parameters: /*1*/ S, /*2*/ T*/ : A.B.B.C> { public constructor C() public open override /*1*/ fun Foo(/*0*/ x: A.B.B.C>): kotlin.Unit public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean diff --git a/compiler/testData/diagnostics/tests/inference/substitutions/substitutionIntoInnerClass.txt b/compiler/testData/diagnostics/tests/inference/substitutions/substitutionIntoInnerClass.txt index 196c3c2f939..6b49fc2c0d4 100644 --- a/compiler/testData/diagnostics/tests/inference/substitutions/substitutionIntoInnerClass.txt +++ b/compiler/testData/diagnostics/tests/inference/substitutions/substitutionIntoInnerClass.txt @@ -24,7 +24,7 @@ public final class Outer { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String public final fun useOuterParam(/*0*/ t: T): kotlin.Unit - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*1*/ T*/ { public constructor Inner() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public final fun genericFun(/*0*/ r: R): Outer diff --git a/compiler/testData/diagnostics/tests/inner/outerGenericParam.txt b/compiler/testData/diagnostics/tests/inner/outerGenericParam.txt index 175d9325d5f..c45f9658229 100644 --- a/compiler/testData/diagnostics/tests/inner/outerGenericParam.txt +++ b/compiler/testData/diagnostics/tests/inner/outerGenericParam.txt @@ -6,7 +6,7 @@ public final class Outer { public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*0*/ T*/ { public constructor Inner() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public final fun foo(/*0*/ t: T): T diff --git a/compiler/testData/diagnostics/tests/platformTypes/rawTypes/genericInnerClass.txt b/compiler/testData/diagnostics/tests/platformTypes/rawTypes/genericInnerClass.txt index 70148c73da3..c16d3a84514 100644 --- a/compiler/testData/diagnostics/tests/platformTypes/rawTypes/genericInnerClass.txt +++ b/compiler/testData/diagnostics/tests/platformTypes/rawTypes/genericInnerClass.txt @@ -10,7 +10,7 @@ public/*package*/ open class A { public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public open inner class Inner { + public open inner class Inner /*captured type parameters: /*1*/ T : kotlin.Any!*/ { public/*package*/ constructor Inner(/*0*/ x0: E!, /*1*/ x: T!, /*2*/ y: kotlin.(Mutable)List!) public/*package*/ open fun bar(): A!>! public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean diff --git a/compiler/testData/diagnostics/tests/platformTypes/rawTypes/saveRawCapabilitiesAfterSubtitution.txt b/compiler/testData/diagnostics/tests/platformTypes/rawTypes/saveRawCapabilitiesAfterSubtitution.txt index ed9fb30473d..7fe0d19c6eb 100644 --- a/compiler/testData/diagnostics/tests/platformTypes/rawTypes/saveRawCapabilitiesAfterSubtitution.txt +++ b/compiler/testData/diagnostics/tests/platformTypes/rawTypes/saveRawCapabilitiesAfterSubtitution.txt @@ -8,7 +8,7 @@ public/*package*/ open class A { public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public open inner class Inner { + public open inner class Inner /*captured type parameters: /*1*/ T : kotlin.Any!*/ { public constructor Inner() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public/*package*/ open fun foo(): kotlin.(Mutable)List! diff --git a/compiler/testData/diagnostics/tests/scopes/genericVsNested.txt b/compiler/testData/diagnostics/tests/scopes/genericVsNested.txt index 2248d3c89b6..3e10295107c 100644 --- a/compiler/testData/diagnostics/tests/scopes/genericVsNested.txt +++ b/compiler/testData/diagnostics/tests/scopes/genericVsNested.txt @@ -20,7 +20,7 @@ public final class A { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } - public final inner class I { + public final inner class I /*captured type parameters: /*0*/ T*/ { public constructor I() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int @@ -69,7 +69,7 @@ public final class B { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } - public final inner class I { + public final inner class I /*captured type parameters: /*0*/ T*/ { public constructor I() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int diff --git a/compiler/testData/diagnostics/tests/thisAndSuper/Super.txt b/compiler/testData/diagnostics/tests/thisAndSuper/Super.txt index b3632f86f95..5ddc3939de5 100644 --- a/compiler/testData/diagnostics/tests/thisAndSuper/Super.txt +++ b/compiler/testData/diagnostics/tests/thisAndSuper/Super.txt @@ -11,7 +11,7 @@ package example { public final fun test(): kotlin.Unit public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String - public final inner class B : example.T { + public final inner class B /*captured type parameters: /*0*/ E*/ : example.T { public constructor B() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit diff --git a/compiler/testData/loadJava/compiledJava/InnerClassReferencesOuterTP.txt b/compiler/testData/loadJava/compiledJava/InnerClassReferencesOuterTP.txt index 9956d0c0a11..f5223e73cf3 100644 --- a/compiler/testData/loadJava/compiledJava/InnerClassReferencesOuterTP.txt +++ b/compiler/testData/loadJava/compiledJava/InnerClassReferencesOuterTP.txt @@ -3,7 +3,7 @@ package test public open class InnerClassReferencesOuterTP { public constructor InnerClassReferencesOuterTP() - public open inner class Inner { + public open inner class Inner /*captured type parameters: /*1*/ P : kotlin.Any!*/ { public constructor Inner() } } diff --git a/compiler/testData/loadJava/compiledJava/InnerClassesInGeneric.runtime.txt b/compiler/testData/loadJava/compiledJava/InnerClassesInGeneric.runtime.txt index 60d412a808d..79090827d25 100644 --- a/compiler/testData/loadJava/compiledJava/InnerClassesInGeneric.runtime.txt +++ b/compiler/testData/loadJava/compiledJava/InnerClassesInGeneric.runtime.txt @@ -3,11 +3,11 @@ package test public open class InnerClassesInGeneric { public constructor InnerClassesInGeneric() - public open inner class Inner { + public open inner class Inner /*captured type parameters: /*0*/ P : kotlin.Any!, /*1*/ Q : kotlin.Any!*/ { public constructor Inner() } - public open inner class Inner2 : test.InnerClassesInGeneric.Inner { + public open inner class Inner2 /*captured type parameters: /*0*/ P : kotlin.Any!, /*1*/ Q : kotlin.Any!*/ : test.InnerClassesInGeneric.Inner { public constructor Inner2() public open operator fun iterator(): kotlin.(Mutable)Iterator! } diff --git a/compiler/testData/loadJava/compiledJava/InnerClassesInGeneric.txt b/compiler/testData/loadJava/compiledJava/InnerClassesInGeneric.txt index 49810c01454..aa7e1ab9176 100644 --- a/compiler/testData/loadJava/compiledJava/InnerClassesInGeneric.txt +++ b/compiler/testData/loadJava/compiledJava/InnerClassesInGeneric.txt @@ -3,11 +3,11 @@ package test public open class InnerClassesInGeneric { public constructor InnerClassesInGeneric() - public open inner class Inner { + public open inner class Inner /*captured type parameters: /*0*/ P : kotlin.Any!, /*1*/ Q : kotlin.Any!*/ { public constructor Inner() } - public open inner class Inner2 : test.InnerClassesInGeneric.Inner { + public open inner class Inner2 /*captured type parameters: /*0*/ P : kotlin.Any!, /*1*/ Q : kotlin.Any!*/ : test.InnerClassesInGeneric.Inner { public constructor Inner2() public open operator fun iterator(): kotlin.(Mutable)Iterator! } diff --git a/compiler/testData/loadJava/compiledJava/InnerOfGeneric.runtime.txt b/compiler/testData/loadJava/compiledJava/InnerOfGeneric.runtime.txt index f8561cb2933..364234eccb7 100644 --- a/compiler/testData/loadJava/compiledJava/InnerOfGeneric.runtime.txt +++ b/compiler/testData/loadJava/compiledJava/InnerOfGeneric.runtime.txt @@ -6,7 +6,7 @@ public open class InnerOfGeneric { public abstract inner class A { public constructor A() - public abstract inner class Inner : test.InnerOfGeneric.S { + public abstract inner class Inner /*captured type parameters: /*0*/ K : kotlin.Any!*/ : test.InnerOfGeneric.S { public constructor Inner() public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.(Mutable)Iterator! } @@ -15,7 +15,7 @@ public open class InnerOfGeneric { public open inner class B : test.InnerOfGeneric.A { public constructor B() - public open inner class SubInner : test.InnerOfGeneric.A.Inner { + public open inner class SubInner /*captured type parameters: /*0*/ L : kotlin.Any!*/ : test.InnerOfGeneric.A.Inner { public constructor SubInner() public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! } diff --git a/compiler/testData/loadJava/compiledJava/InnerOfGeneric.txt b/compiler/testData/loadJava/compiledJava/InnerOfGeneric.txt index 18b30001978..fdf6044b1c9 100644 --- a/compiler/testData/loadJava/compiledJava/InnerOfGeneric.txt +++ b/compiler/testData/loadJava/compiledJava/InnerOfGeneric.txt @@ -6,7 +6,7 @@ public open class InnerOfGeneric { public abstract inner class A { public constructor A() - public abstract inner class Inner : test.InnerOfGeneric.S { + public abstract inner class Inner /*captured type parameters: /*0*/ K : kotlin.Any!*/ : test.InnerOfGeneric.S { public constructor Inner() public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.(Mutable)Iterator! } @@ -15,7 +15,7 @@ public open class InnerOfGeneric { public open inner class B : test.InnerOfGeneric.A { public constructor B() - public open inner class SubInner : test.InnerOfGeneric.A.Inner { + public open inner class SubInner /*captured type parameters: /*0*/ L : kotlin.Any!*/ : test.InnerOfGeneric.A.Inner { public constructor SubInner() public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! } diff --git a/compiler/testData/loadJava/compiledJava/MethodReferencesOuterClassTP.txt b/compiler/testData/loadJava/compiledJava/MethodReferencesOuterClassTP.txt index 722741bc35f..a437eb2e37a 100644 --- a/compiler/testData/loadJava/compiledJava/MethodReferencesOuterClassTP.txt +++ b/compiler/testData/loadJava/compiledJava/MethodReferencesOuterClassTP.txt @@ -3,7 +3,7 @@ package test public final class MethodReferencesOuterClassTP { public constructor MethodReferencesOuterClassTP() - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*0*/ P : kotlin.Any!*/ { public constructor Inner() public final fun f(): kotlin.Unit } diff --git a/compiler/testData/loadJava/compiledJava/sam/adapters/TypeParameterOfOuterClass.txt b/compiler/testData/loadJava/compiledJava/sam/adapters/TypeParameterOfOuterClass.txt index 38812de8fa0..ed41b2711df 100644 --- a/compiler/testData/loadJava/compiledJava/sam/adapters/TypeParameterOfOuterClass.txt +++ b/compiler/testData/loadJava/compiledJava/sam/adapters/TypeParameterOfOuterClass.txt @@ -3,7 +3,7 @@ package test public open class TypeParameterOfOuterClass { public constructor TypeParameterOfOuterClass() - public open inner class Inner { + public open inner class Inner /*captured type parameters: /*0*/ T : kotlin.Any!*/ { public constructor Inner() public open fun foo(/*0*/ p0: java.util.Comparator!): kotlin.Unit } diff --git a/compiler/testData/loadJava/compiledJava/signaturePropagation/ReturnInnerSubclassOfSupersInner.runtime.txt b/compiler/testData/loadJava/compiledJava/signaturePropagation/ReturnInnerSubclassOfSupersInner.runtime.txt index 873bc62f412..7e7ffd78297 100644 --- a/compiler/testData/loadJava/compiledJava/signaturePropagation/ReturnInnerSubclassOfSupersInner.runtime.txt +++ b/compiler/testData/loadJava/compiledJava/signaturePropagation/ReturnInnerSubclassOfSupersInner.runtime.txt @@ -5,7 +5,7 @@ public interface ReturnInnerSubclassOfSupersInner { public open class Sub : test.ReturnInnerSubclassOfSupersInner.Super { public constructor Sub() - public/*package*/ open inner class Inner : test.ReturnInnerSubclassOfSupersInner.Super.Inner { + public/*package*/ open inner class Inner /*captured type parameters: /*0*/ B : kotlin.Any!*/ : test.ReturnInnerSubclassOfSupersInner.Super.Inner { public/*package*/ constructor Inner() public/*package*/ open override /*1*/ fun get(): test.ReturnInnerSubclassOfSupersInner.Sub! } @@ -14,7 +14,7 @@ public interface ReturnInnerSubclassOfSupersInner { public open class Super { public constructor Super() - public/*package*/ open inner class Inner { + public/*package*/ open inner class Inner /*captured type parameters: /*0*/ A : kotlin.Any!*/ { public/*package*/ constructor Inner() public/*package*/ open fun get(): test.ReturnInnerSubclassOfSupersInner.Super! } diff --git a/compiler/testData/loadJava/compiledJava/signaturePropagation/ReturnInnerSubclassOfSupersInner.txt b/compiler/testData/loadJava/compiledJava/signaturePropagation/ReturnInnerSubclassOfSupersInner.txt index f09f06068ab..cc2a1bfe486 100644 --- a/compiler/testData/loadJava/compiledJava/signaturePropagation/ReturnInnerSubclassOfSupersInner.txt +++ b/compiler/testData/loadJava/compiledJava/signaturePropagation/ReturnInnerSubclassOfSupersInner.txt @@ -5,7 +5,7 @@ public interface ReturnInnerSubclassOfSupersInner { public open class Sub : test.ReturnInnerSubclassOfSupersInner.Super { public constructor Sub() - public/*package*/ open inner class Inner : test.ReturnInnerSubclassOfSupersInner.Super.Inner { + public/*package*/ open inner class Inner /*captured type parameters: /*0*/ B : kotlin.Any!*/ : test.ReturnInnerSubclassOfSupersInner.Super.Inner { public/*package*/ constructor Inner() public/*package*/ open override /*1*/ fun get(): test.ReturnInnerSubclassOfSupersInner.Sub! } @@ -14,7 +14,7 @@ public interface ReturnInnerSubclassOfSupersInner { public open class Super { public constructor Super() - public/*package*/ open inner class Inner { + public/*package*/ open inner class Inner /*captured type parameters: /*0*/ A : kotlin.Any!*/ { public/*package*/ constructor Inner() public/*package*/ open fun get(): test.ReturnInnerSubclassOfSupersInner.Super! } diff --git a/compiler/testData/loadJava/compiledKotlin/class/InnerTypes.txt b/compiler/testData/loadJava/compiledKotlin/class/InnerTypes.txt index 246da91adf2..d175fcaa19d 100644 --- a/compiler/testData/loadJava/compiledKotlin/class/InnerTypes.txt +++ b/compiler/testData/loadJava/compiledKotlin/class/InnerTypes.txt @@ -4,16 +4,16 @@ public final class Outer { /*primary*/ public constructor Outer() public final fun bar(/*0*/ x: test.Outer.Inner2, /*1*/ y: test.Outer.Inner2): kotlin.Unit - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*2*/ E, /*3*/ F*/ { /*primary*/ public constructor Inner() - public final inner class Inner3 { + public final inner class Inner3 /*captured type parameters: /*1*/ G, /*2*/ H, /*3*/ E, /*4*/ F*/ { /*primary*/ public constructor Inner3() public final fun foo(/*0*/ x: test.Outer.Inner, /*1*/ y: test.Outer.Inner, /*2*/ z: test.Outer.Inner.Inner3, /*3*/ w: test.Outer.Inner.Inner3<*>): kotlin.Unit } } - public final inner class Inner2 { + public final inner class Inner2 /*captured type parameters: /*0*/ E, /*1*/ F*/ { /*primary*/ public constructor Inner2() } } diff --git a/compiler/testData/loadJava/compiledKotlin/nested/deepInnerGeneric.txt b/compiler/testData/loadJava/compiledKotlin/nested/deepInnerGeneric.txt index 679a93a9d91..861e041c70f 100644 --- a/compiler/testData/loadJava/compiledKotlin/nested/deepInnerGeneric.txt +++ b/compiler/testData/loadJava/compiledKotlin/nested/deepInnerGeneric.txt @@ -3,13 +3,13 @@ package test public final class A { /*primary*/ public constructor A() - public final inner class B { + public final inner class B /*captured type parameters: /*1*/ TA*/ { /*primary*/ public constructor B() - public final inner class C { + public final inner class C /*captured type parameters: /*1*/ TB, /*2*/ TA*/ { /*primary*/ public constructor C() - public final inner class D { + public final inner class D /*captured type parameters: /*1*/ TC, /*2*/ TB, /*3*/ TA*/ { /*primary*/ public constructor D() public final fun bar(/*0*/ ta: TA, /*1*/ tb: TB, /*2*/ tc: TC, /*3*/ td: TD): test.A.B.C.D public final fun foo(/*0*/ p1: P1, /*1*/ p2: P2, /*2*/ p3: P3, /*3*/ p4: P4): kotlin.Nothing diff --git a/compiler/testData/loadJava/compiledKotlin/nested/innerClassReferencesOuterTP.txt b/compiler/testData/loadJava/compiledKotlin/nested/innerClassReferencesOuterTP.txt index 7c397d6e9b6..32876e60071 100644 --- a/compiler/testData/loadJava/compiledKotlin/nested/innerClassReferencesOuterTP.txt +++ b/compiler/testData/loadJava/compiledKotlin/nested/innerClassReferencesOuterTP.txt @@ -3,7 +3,7 @@ package test public final class InnerClassReferencesOuterTP { /*primary*/ public constructor InnerClassReferencesOuterTP() - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*1*/ P*/ { /*primary*/ public constructor Inner() } } diff --git a/compiler/testData/loadJava/compiledKotlin/nested/membersReferenceOuterTP.txt b/compiler/testData/loadJava/compiledKotlin/nested/membersReferenceOuterTP.txt index 8d9679918a2..7e3ed3cdf4c 100644 --- a/compiler/testData/loadJava/compiledKotlin/nested/membersReferenceOuterTP.txt +++ b/compiler/testData/loadJava/compiledKotlin/nested/membersReferenceOuterTP.txt @@ -3,7 +3,7 @@ package test public final class MembersReferenceOuterTP { /*primary*/ public constructor MembersReferenceOuterTP() - public final inner class Inner { + public final inner class Inner /*captured type parameters: /*0*/ P*/ { /*primary*/ public constructor Inner() public final val v: P public final fun (): P diff --git a/compiler/testData/loadJava/sourceJava/ReturnInnerSubclassOfSupersInner.txt b/compiler/testData/loadJava/sourceJava/ReturnInnerSubclassOfSupersInner.txt index f09f06068ab..cc2a1bfe486 100644 --- a/compiler/testData/loadJava/sourceJava/ReturnInnerSubclassOfSupersInner.txt +++ b/compiler/testData/loadJava/sourceJava/ReturnInnerSubclassOfSupersInner.txt @@ -5,7 +5,7 @@ public interface ReturnInnerSubclassOfSupersInner { public open class Sub : test.ReturnInnerSubclassOfSupersInner.Super { public constructor Sub() - public/*package*/ open inner class Inner : test.ReturnInnerSubclassOfSupersInner.Super.Inner { + public/*package*/ open inner class Inner /*captured type parameters: /*0*/ B : kotlin.Any!*/ : test.ReturnInnerSubclassOfSupersInner.Super.Inner { public/*package*/ constructor Inner() public/*package*/ open override /*1*/ fun get(): test.ReturnInnerSubclassOfSupersInner.Sub! } @@ -14,7 +14,7 @@ public interface ReturnInnerSubclassOfSupersInner { public open class Super { public constructor Super() - public/*package*/ open inner class Inner { + public/*package*/ open inner class Inner /*captured type parameters: /*0*/ A : kotlin.Any!*/ { public/*package*/ constructor Inner() public/*package*/ open fun get(): test.ReturnInnerSubclassOfSupersInner.Super! } diff --git a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt index 188dbda49c1..1d7871ce36a 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt @@ -574,14 +574,7 @@ internal class DescriptorRendererImpl( if (!typeParameters.isEmpty()) { builder.append(lt()) - val iterator = typeParameters.iterator() - while (iterator.hasNext()) { - val typeParameterDescriptor = iterator.next() - renderTypeParameter(typeParameterDescriptor, builder, false) - if (iterator.hasNext()) { - builder.append(", ") - } - } + renderTypeParameterList(builder, typeParameters) builder.append(gt()) if (withSpace) { builder.append(" ") @@ -589,6 +582,17 @@ internal class DescriptorRendererImpl( } } + private fun renderTypeParameterList(builder: StringBuilder, typeParameters: List) { + val iterator = typeParameters.iterator() + while (iterator.hasNext()) { + val typeParameterDescriptor = iterator.next() + renderTypeParameter(typeParameterDescriptor, builder, false) + if (iterator.hasNext()) { + builder.append(", ") + } + } + } + /* FUNCTIONS */ private fun renderFunction(function: FunctionDescriptor, builder: StringBuilder) { if (!startFromName) { @@ -825,6 +829,14 @@ internal class DescriptorRendererImpl( val typeParameters = klass.declaredTypeParameters renderTypeParameters(typeParameters, builder, false) + if (verbose && klass.isInner && klass.typeConstructor.parameters.size > typeParameters.size) { + builder.append(" /*captured type parameters: ") + val constructorTypeParameters = klass.typeConstructor.parameters + renderTypeParameterList( + builder, constructorTypeParameters.subList(typeParameters.size, constructorTypeParameters.size)) + builder.append("*/") + } + if (!klass.kind.isSingleton && classWithPrimaryConstructor) { val primaryConstructor = klass.unsubstitutedPrimaryConstructor if (primaryConstructor != null) {