diff --git a/compiler/testData/capturedTypeApproximation/nullableT.txt b/compiler/testData/capturedTypeApproximation/nullableT.txt index 0b41c917f39..48def83ee05 100644 --- a/compiler/testData/capturedTypeApproximation/nullableT.txt +++ b/compiler/testData/capturedTypeApproximation/nullableT.txt @@ -1,9 +1,9 @@ In in Int. lower: In; upper: In; substitution: In - out Int. lower: In; upper: In; substitution: In + out Int. lower: In; upper: In; substitution: In<*> Out - in Int. lower: Out; upper: Out; substitution: Out + in Int. lower: Out; upper: Out; substitution: Out<*> out Int. lower: Out; upper: Out; substitution: Out Inv @@ -20,10 +20,10 @@ Inv In> in Int. lower: In>; upper: In>; substitution: In> - out Int. lower: In>; upper: In>; substitution: In> + out Int. lower: In>; upper: In>; substitution: In> In> - in Int. lower: In>; upper: In>; substitution: In> + in Int. lower: In>; upper: In>; substitution: In> out Int. lower: In>; upper: In>; substitution: In> In> @@ -40,10 +40,10 @@ In> Out> in Int. lower: Out>; upper: Out>; substitution: Out> - out Int. lower: Out>; upper: Out>; substitution: Out> + out Int. lower: Out>; upper: Out>; substitution: Out> Out> - in Int. lower: Out>; upper: Out>; substitution: Out> + in Int. lower: Out>; upper: Out>; substitution: Out> out Int. lower: Out>; upper: Out>; substitution: Out> Out> @@ -60,10 +60,10 @@ Out> Inv> in Int. lower: Nothing; upper: Inv>; substitution: Inv> - out Int. lower: Nothing; upper: Inv>; substitution: Inv> + out Int. lower: Nothing; upper: Inv>; substitution: Inv> Inv> - in Int. lower: Nothing; upper: Inv>; substitution: Inv> + in Int. lower: Nothing; upper: Inv>; substitution: Inv> out Int. lower: Nothing; upper: Inv>; substitution: Inv> Inv> @@ -80,10 +80,10 @@ Inv> Inv> in Int. lower: Inv>; upper: Inv>; substitution: Inv> - out Int. lower: Inv>; upper: Inv>; substitution: Inv> + out Int. lower: Inv>; upper: Inv>; substitution: Inv> Inv> - in Int. lower: Inv>; upper: Inv>; substitution: Inv> + in Int. lower: Inv>; upper: Inv>; substitution: Inv> out Int. lower: Inv>; upper: Inv>; substitution: Inv> Inv> @@ -100,10 +100,10 @@ Inv> Inv> in Int. lower: Inv>; upper: Inv>; substitution: Inv> - out Int. lower: Inv>; upper: Inv>; substitution: Inv> + out Int. lower: Inv>; upper: Inv>; substitution: Inv> Inv> - in Int. lower: Inv>; upper: Inv>; substitution: Inv> + in Int. lower: Inv>; upper: Inv>; substitution: Inv> out Int. lower: Inv>; upper: Inv>; substitution: Inv> Inv> @@ -119,19 +119,19 @@ Inv> out Int. lower: Inv>; upper: Inv>; substitution: Inv> In>> - in Int. lower: In>>; upper: In; substitution: In>> + in Int. lower: In>>; upper: In; substitution: In>> out Int. lower: In>>; upper: In; substitution: In>> Out>> - in Int. lower: Out>>; upper: Out>>; substitution: Out>> + in Int. lower: Out>>; upper: Out>>; substitution: Out>> out Int. lower: Out>>; upper: Out>>; substitution: Out>> Inv>> in Int. lower: Nothing; upper: Inv>>; substitution: Inv>> - out Int. lower: Nothing; upper: Inv>>; substitution: Inv>> + out Int. lower: Nothing; upper: Inv>>; substitution: Inv>> Inv>> - in Int. lower: Inv; upper: Inv>>; substitution: Inv>> + in Int. lower: Inv; upper: Inv>>; substitution: Inv>> out Int. lower: Inv; upper: Inv>>; substitution: Inv>> Inv>> @@ -140,10 +140,10 @@ Inv>> Out>> in Int. lower: Out; upper: Out>>; substitution: Out>> - out Int. lower: Out; upper: Out>>; substitution: Out>> + out Int. lower: Out; upper: Out>>; substitution: Out>> Inv>> - in Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> + in Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> out Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> Out>> @@ -151,7 +151,7 @@ Out>> out Int. lower: Out>>; upper: Out>; substitution: Out>> Inv>> - in Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> + in Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> out Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> In>> @@ -184,7 +184,7 @@ Inv>>> Out>>> in Int. lower: Out>>>; upper: Out>>>; substitution: Out>>> - out Int. lower: Out>>>; upper: Out>>>; substitution: Out>>> + out Int. lower: Out>>>; upper: Out>>>; substitution: Out>>> In>>> in Int. lower: In>>>; upper: In>>>; substitution: In>>> @@ -200,7 +200,7 @@ Out>>> In>>>> in Int. lower: In>; upper: In>>>>; substitution: In>>>> - out Int. lower: In>; upper: In>>>>; substitution: In>>>> + out Int. lower: In>; upper: In>>>>; substitution: In>>>> Inv>>>> in Int. lower: Nothing; upper: Inv>>>>; substitution: Inv>>>> @@ -244,11 +244,11 @@ In>>>>> Out>>>>> in Int. lower: Out; upper: Out>>>>>; substitution: Out>>>>> - out Int. lower: Out; upper: Out>>>>>; substitution: Out>>>>> + out Int. lower: Out; upper: Out>>>>>; substitution: Out>>>>> Inv>>>>> in Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> - out Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> + out Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> Inv>>>>> in Int. lower: Nothing; upper: Inv>; substitution: Inv>>>>> @@ -260,10 +260,10 @@ In>>>>> In>>>>> in Int. lower: In>>>>>; upper: In; substitution: In>>>>> - out Int. lower: In>>>>>; upper: In; substitution: In>>>>> + out Int. lower: In>>>>>; upper: In; substitution: In>>>>> Out>>>>> - in Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> + in Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> out Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> Inv>>>>> @@ -271,9 +271,9 @@ Inv>>>>> out Int. lower: Inv; upper: Inv>>>>>; substitution: Inv>>>>> Out>>>>> - in Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> + in Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> out Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> Inv>>>>> - in Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> + in Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> out Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> diff --git a/compiler/testData/capturedTypeApproximation/simpleT.txt b/compiler/testData/capturedTypeApproximation/simpleT.txt index 513827a4557..04f8e277860 100644 --- a/compiler/testData/capturedTypeApproximation/simpleT.txt +++ b/compiler/testData/capturedTypeApproximation/simpleT.txt @@ -1,9 +1,9 @@ In in Int. lower: In; upper: In; substitution: In - out Int. lower: In; upper: In; substitution: In + out Int. lower: In; upper: In; substitution: In<*> Out - in Int. lower: Out; upper: Out; substitution: Out + in Int. lower: Out; upper: Out; substitution: Out<*> out Int. lower: Out; upper: Out; substitution: Out Inv @@ -20,10 +20,10 @@ Inv In> in Int. lower: In>; upper: In>; substitution: In> - out Int. lower: In>; upper: In>; substitution: In> + out Int. lower: In>; upper: In>; substitution: In> In> - in Int. lower: In>; upper: In>; substitution: In> + in Int. lower: In>; upper: In>; substitution: In> out Int. lower: In>; upper: In>; substitution: In> In> @@ -40,10 +40,10 @@ In> Out> in Int. lower: Out>; upper: Out>; substitution: Out> - out Int. lower: Out>; upper: Out>; substitution: Out> + out Int. lower: Out>; upper: Out>; substitution: Out> Out> - in Int. lower: Out>; upper: Out>; substitution: Out> + in Int. lower: Out>; upper: Out>; substitution: Out> out Int. lower: Out>; upper: Out>; substitution: Out> Out> @@ -60,10 +60,10 @@ Out> Inv> in Int. lower: Nothing; upper: Inv>; substitution: Inv> - out Int. lower: Nothing; upper: Inv>; substitution: Inv> + out Int. lower: Nothing; upper: Inv>; substitution: Inv> Inv> - in Int. lower: Nothing; upper: Inv>; substitution: Inv> + in Int. lower: Nothing; upper: Inv>; substitution: Inv> out Int. lower: Nothing; upper: Inv>; substitution: Inv> Inv> @@ -80,10 +80,10 @@ Inv> Inv> in Int. lower: Inv>; upper: Inv>; substitution: Inv> - out Int. lower: Inv>; upper: Inv>; substitution: Inv> + out Int. lower: Inv>; upper: Inv>; substitution: Inv> Inv> - in Int. lower: Inv>; upper: Inv>; substitution: Inv> + in Int. lower: Inv>; upper: Inv>; substitution: Inv> out Int. lower: Inv>; upper: Inv>; substitution: Inv> Inv> @@ -100,10 +100,10 @@ Inv> Inv> in Int. lower: Inv>; upper: Inv>; substitution: Inv> - out Int. lower: Inv>; upper: Inv>; substitution: Inv> + out Int. lower: Inv>; upper: Inv>; substitution: Inv> Inv> - in Int. lower: Inv>; upper: Inv>; substitution: Inv> + in Int. lower: Inv>; upper: Inv>; substitution: Inv> out Int. lower: Inv>; upper: Inv>; substitution: Inv> Inv> @@ -119,19 +119,19 @@ Inv> out Int. lower: Inv>; upper: Inv>; substitution: Inv> In>> - in Int. lower: In>>; upper: In; substitution: In>> + in Int. lower: In>>; upper: In; substitution: In>> out Int. lower: In>>; upper: In; substitution: In>> Out>> - in Int. lower: Out>>; upper: Out>>; substitution: Out>> + in Int. lower: Out>>; upper: Out>>; substitution: Out>> out Int. lower: Out>>; upper: Out>>; substitution: Out>> Inv>> in Int. lower: Nothing; upper: Inv>>; substitution: Inv>> - out Int. lower: Nothing; upper: Inv>>; substitution: Inv>> + out Int. lower: Nothing; upper: Inv>>; substitution: Inv>> Inv>> - in Int. lower: Inv; upper: Inv>>; substitution: Inv>> + in Int. lower: Inv; upper: Inv>>; substitution: Inv>> out Int. lower: Inv; upper: Inv>>; substitution: Inv>> Inv>> @@ -140,10 +140,10 @@ Inv>> Out>> in Int. lower: Out; upper: Out>>; substitution: Out>> - out Int. lower: Out; upper: Out>>; substitution: Out>> + out Int. lower: Out; upper: Out>>; substitution: Out>> Inv>> - in Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> + in Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> out Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> Out>> @@ -151,7 +151,7 @@ Out>> out Int. lower: Out>>; upper: Out>; substitution: Out>> Inv>> - in Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> + in Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> out Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> In>> @@ -184,7 +184,7 @@ Inv>>> Out>>> in Int. lower: Out>>>; upper: Out>>>; substitution: Out>>> - out Int. lower: Out>>>; upper: Out>>>; substitution: Out>>> + out Int. lower: Out>>>; upper: Out>>>; substitution: Out>>> In>>> in Int. lower: In>>>; upper: In>>>; substitution: In>>> @@ -200,7 +200,7 @@ Out>>> In>>>> in Int. lower: In>; upper: In>>>>; substitution: In>>>> - out Int. lower: In>; upper: In>>>>; substitution: In>>>> + out Int. lower: In>; upper: In>>>>; substitution: In>>>> Inv>>>> in Int. lower: Nothing; upper: Inv>>>>; substitution: Inv>>>> @@ -244,11 +244,11 @@ In>>>>> Out>>>>> in Int. lower: Out; upper: Out>>>>>; substitution: Out>>>>> - out Int. lower: Out; upper: Out>>>>>; substitution: Out>>>>> + out Int. lower: Out; upper: Out>>>>>; substitution: Out>>>>> Inv>>>>> in Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> - out Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> + out Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> Inv>>>>> in Int. lower: Nothing; upper: Inv>; substitution: Inv>>>>> @@ -260,10 +260,10 @@ In>>>>> In>>>>> in Int. lower: In>>>>>; upper: In; substitution: In>>>>> - out Int. lower: In>>>>>; upper: In; substitution: In>>>>> + out Int. lower: In>>>>>; upper: In; substitution: In>>>>> Out>>>>> - in Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> + in Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> out Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> Inv>>>>> @@ -271,9 +271,9 @@ Inv>>>>> out Int. lower: Inv; upper: Inv>>>>>; substitution: Inv>>>>> Out>>>>> - in Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> + in Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> out Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> Inv>>>>> - in Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> + in Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> out Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> diff --git a/compiler/testData/capturedTypeApproximation/twoVariables.txt b/compiler/testData/capturedTypeApproximation/twoVariables.txt index addd24d7f2d..ddba0e885c3 100644 --- a/compiler/testData/capturedTypeApproximation/twoVariables.txt +++ b/compiler/testData/capturedTypeApproximation/twoVariables.txt @@ -14,7 +14,7 @@ Inv> T = in Int. R = out String. lower: Inv>; upper: Inv>; substitution: Inv> Fun, In> - T = in Int. R = out String. lower: Fun, In>; upper: Fun, In>; substitution: Fun, In> + T = in Int. R = out String. lower: Fun, In>; upper: Fun, In>; substitution: Fun, In<*>> Fun, Out> T = in Int. R = out String. lower: Fun, Out>; upper: Fun, Out>; substitution: Fun, Out> @@ -29,22 +29,22 @@ Fun, Inv> T = in Int. R = out String. lower: Fun, Inv>; upper: Fun, Inv>; substitution: Fun, Inv> Fun, In> - T = in Int. R = out String. lower: Fun, In>; upper: Fun, In>; substitution: Fun, In> + T = in Int. R = out String. lower: Fun, In>; upper: Fun, In>; substitution: Fun, In<*>> Fun, Out> - T = in Int. R = out String. lower: Fun, Out>; upper: Fun, Out>; substitution: Fun, Out> + T = in Int. R = out String. lower: Fun, Out>; upper: Fun, Out>; substitution: Fun, Out> Fun, Inv> - T = in Int. R = out String. lower: Fun, Nothing>; upper: Fun, Inv>; substitution: Fun, Inv> + T = in Int. R = out String. lower: Fun, Nothing>; upper: Fun, Inv>; substitution: Fun, Inv> Fun, Inv> - T = in Int. R = out String. lower: Fun, Inv>; upper: Fun, Inv>; substitution: Fun, Inv> + T = in Int. R = out String. lower: Fun, Inv>; upper: Fun, Inv>; substitution: Fun, Inv> Fun, Inv> - T = in Int. R = out String. lower: Fun, Inv>; upper: Fun, Inv>; substitution: Fun, Inv> + T = in Int. R = out String. lower: Fun, Inv>; upper: Fun, Inv>; substitution: Fun, Inv> Fun, In> - T = in Int. R = out String. lower: Fun, In>; upper: Fun>; substitution: Fun, In> + T = in Int. R = out String. lower: Fun, In>; upper: Fun>; substitution: Fun, In<*>> Fun, Out> T = in Int. R = out String. lower: Fun, Out>; upper: Fun>; substitution: Fun, Out> @@ -59,7 +59,7 @@ Fun, Inv> T = in Int. R = out String. lower: Fun, Inv>; upper: Fun>; substitution: Fun, Inv> Fun, In> - T = in Int. R = out String. lower: Fun, In>; upper: Fun, In>; substitution: Fun, In> + T = in Int. R = out String. lower: Fun, In>; upper: Fun, In>; substitution: Fun, In<*>> Fun, Out> T = in Int. R = out String. lower: Fun, Out>; upper: Fun, Out>; substitution: Fun, Out> @@ -74,7 +74,7 @@ Fun, Inv> T = in Int. R = out String. lower: Fun, Inv>; upper: Fun, Inv>; substitution: Fun, Inv> Fun, In> - T = in Int. R = out String. lower: Fun, In>; upper: Fun, In>; substitution: Fun, In> + T = in Int. R = out String. lower: Fun, In>; upper: Fun, In>; substitution: Fun, In<*>> Fun, Out> T = in Int. R = out String. lower: Fun, Out>; upper: Fun, Out>; substitution: Fun, Out> @@ -104,7 +104,7 @@ Inv> T = in Int. R = out String. lower: Inv; upper: Inv>; substitution: Inv> Inv2, In> - T = in Int. R = out String. lower: Nothing; upper: Inv2, out In>; substitution: Inv2, In> + T = in Int. R = out String. lower: Nothing; upper: Inv2, out In>; substitution: Inv2, In<*>> Inv2, Out> T = in Int. R = out String. lower: Nothing; upper: Inv2, out Out>; substitution: Inv2, Out> @@ -119,22 +119,22 @@ Inv2, Inv> T = in Int. R = out String. lower: Nothing; upper: Inv2, out Inv>; substitution: Inv2, Inv> Inv2, In> - T = in Int. R = out String. lower: Nothing; upper: Inv2, out In>; substitution: Inv2, In> + T = in Int. R = out String. lower: Nothing; upper: Inv2, out In>; substitution: Inv2, In<*>> Inv2, Out> - T = in Int. R = out String. lower: Nothing; upper: Inv2, out Out>; substitution: Inv2, Out> + T = in Int. R = out String. lower: Nothing; upper: Inv2, out Out>; substitution: Inv2, Out> Inv2, Inv> - T = in Int. R = out String. lower: Nothing; upper: Inv2, out Inv>; substitution: Inv2, Inv> + T = in Int. R = out String. lower: Nothing; upper: Inv2, out Inv>; substitution: Inv2, Inv> Inv2, Inv> - T = in Int. R = out String. lower: Nothing; upper: Inv2, out Inv>; substitution: Inv2, Inv> + T = in Int. R = out String. lower: Nothing; upper: Inv2, out Inv>; substitution: Inv2, Inv> Inv2, Inv> - T = in Int. R = out String. lower: Nothing; upper: Inv2, out Inv>; substitution: Inv2, Inv> + T = in Int. R = out String. lower: Nothing; upper: Inv2, out Inv>; substitution: Inv2, Inv> Inv2, In> - T = in Int. R = out String. lower: Nothing; upper: Inv2, out In>; substitution: Inv2, In> + T = in Int. R = out String. lower: Nothing; upper: Inv2, out In>; substitution: Inv2, In<*>> Inv2, Out> T = in Int. R = out String. lower: Nothing; upper: Inv2, out Out>; substitution: Inv2, Out> @@ -149,7 +149,7 @@ Inv2, Inv> T = in Int. R = out String. lower: Nothing; upper: Inv2, out Inv>; substitution: Inv2, Inv> Inv2, In> - T = in Int. R = out String. lower: Nothing; upper: Inv2, out In>; substitution: Inv2, In> + T = in Int. R = out String. lower: Nothing; upper: Inv2, out In>; substitution: Inv2, In<*>> Inv2, Out> T = in Int. R = out String. lower: Nothing; upper: Inv2, out Out>; substitution: Inv2, Out> @@ -164,7 +164,7 @@ Inv2, Inv> T = in Int. R = out String. lower: Nothing; upper: Inv2, out Inv>; substitution: Inv2, Inv> Inv2, In> - T = in Int. R = out String. lower: Nothing; upper: Inv2, out In>; substitution: Inv2, In> + T = in Int. R = out String. lower: Nothing; upper: Inv2, out In>; substitution: Inv2, In<*>> Inv2, Out> T = in Int. R = out String. lower: Nothing; upper: Inv2, out Out>; substitution: Inv2, Out> diff --git a/compiler/testData/capturedTypeApproximation/useSiteInNullableT.txt b/compiler/testData/capturedTypeApproximation/useSiteInNullableT.txt index 417f39b4d10..1106a30e9da 100644 --- a/compiler/testData/capturedTypeApproximation/useSiteInNullableT.txt +++ b/compiler/testData/capturedTypeApproximation/useSiteInNullableT.txt @@ -1,6 +1,6 @@ In in Int. lower: In; upper: In; substitution: In - out Int. lower: In; upper: In; substitution: In + out Int. lower: In; upper: In; substitution: In<*> Out compiler error @@ -17,7 +17,7 @@ Inv In> in Int. lower: In>; upper: In>; substitution: In> - out Int. lower: In>; upper: In>; substitution: In> + out Int. lower: In>; upper: In>; substitution: In> In> compiler error @@ -34,7 +34,7 @@ In> Out> in Int. lower: Out>; upper: Out>; substitution: Out> - out Int. lower: Out>; upper: Out>; substitution: Out> + out Int. lower: Out>; upper: Out>; substitution: Out> Out> compiler error @@ -51,7 +51,7 @@ Out> Inv> in Int. lower: Nothing; upper: Inv>; substitution: Inv> - out Int. lower: Nothing; upper: Inv>; substitution: Inv> + out Int. lower: Nothing; upper: Inv>; substitution: Inv> Inv> compiler error @@ -68,7 +68,7 @@ Inv> Inv> in Int. lower: Inv>; upper: Inv>; substitution: Inv> - out Int. lower: Inv>; upper: Inv>; substitution: Inv> + out Int. lower: Inv>; upper: Inv>; substitution: Inv> Inv> compiler error @@ -85,7 +85,7 @@ Inv> Inv> in Int. lower: Inv>; upper: Inv>; substitution: Inv> - out Int. lower: Inv>; upper: Inv>; substitution: Inv> + out Int. lower: Inv>; upper: Inv>; substitution: Inv> Inv> compiler error @@ -108,7 +108,7 @@ Out>> Inv>> in Int. lower: Nothing; upper: Inv>>; substitution: Inv>> - out Int. lower: Nothing; upper: Inv>>; substitution: Inv>> + out Int. lower: Nothing; upper: Inv>>; substitution: Inv>> Inv>> compiler error @@ -119,7 +119,7 @@ Inv>> Out>> in Int. lower: Out; upper: Out>>; substitution: Out>> - out Int. lower: Out; upper: Out>>; substitution: Out>> + out Int. lower: Out; upper: Out>>; substitution: Out>> Inv>> compiler error @@ -156,7 +156,7 @@ Inv>>> Out>>> in Int. lower: Out>>>; upper: Out>>>; substitution: Out>>> - out Int. lower: Out>>>; upper: Out>>>; substitution: Out>>> + out Int. lower: Out>>>; upper: Out>>>; substitution: Out>>> In>>> compiler error @@ -171,7 +171,7 @@ Out>>> In>>>> in Int. lower: In>; upper: In>>>>; substitution: In>>>> - out Int. lower: In>; upper: In>>>>; substitution: In>>>> + out Int. lower: In>; upper: In>>>>; substitution: In>>>> Inv>>>> compiler error @@ -206,11 +206,11 @@ In>>>>> Out>>>>> in Int. lower: Out; upper: Out>>>>>; substitution: Out>>>>> - out Int. lower: Out; upper: Out>>>>>; substitution: Out>>>>> + out Int. lower: Out; upper: Out>>>>>; substitution: Out>>>>> Inv>>>>> in Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> - out Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> + out Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> Inv>>>>> compiler error @@ -220,7 +220,7 @@ In>>>>> In>>>>> in Int. lower: In>>>>>; upper: In; substitution: In>>>>> - out Int. lower: In>>>>>; upper: In; substitution: In>>>>> + out Int. lower: In>>>>>; upper: In; substitution: In>>>>> Out>>>>> compiler error diff --git a/compiler/testData/capturedTypeApproximation/useSiteInT.txt b/compiler/testData/capturedTypeApproximation/useSiteInT.txt index a9282634456..1b9a574b039 100644 --- a/compiler/testData/capturedTypeApproximation/useSiteInT.txt +++ b/compiler/testData/capturedTypeApproximation/useSiteInT.txt @@ -1,6 +1,6 @@ In in Int. lower: In; upper: In; substitution: In - out Int. lower: In; upper: In; substitution: In + out Int. lower: In; upper: In; substitution: In<*> Out compiler error @@ -17,7 +17,7 @@ Inv In> in Int. lower: In>; upper: In>; substitution: In> - out Int. lower: In>; upper: In>; substitution: In> + out Int. lower: In>; upper: In>; substitution: In> In> compiler error @@ -34,7 +34,7 @@ In> Out> in Int. lower: Out>; upper: Out>; substitution: Out> - out Int. lower: Out>; upper: Out>; substitution: Out> + out Int. lower: Out>; upper: Out>; substitution: Out> Out> compiler error @@ -51,7 +51,7 @@ Out> Inv> in Int. lower: Nothing; upper: Inv>; substitution: Inv> - out Int. lower: Nothing; upper: Inv>; substitution: Inv> + out Int. lower: Nothing; upper: Inv>; substitution: Inv> Inv> compiler error @@ -68,7 +68,7 @@ Inv> Inv> in Int. lower: Inv>; upper: Inv>; substitution: Inv> - out Int. lower: Inv>; upper: Inv>; substitution: Inv> + out Int. lower: Inv>; upper: Inv>; substitution: Inv> Inv> compiler error @@ -85,7 +85,7 @@ Inv> Inv> in Int. lower: Inv>; upper: Inv>; substitution: Inv> - out Int. lower: Inv>; upper: Inv>; substitution: Inv> + out Int. lower: Inv>; upper: Inv>; substitution: Inv> Inv> compiler error @@ -108,7 +108,7 @@ Out>> Inv>> in Int. lower: Nothing; upper: Inv>>; substitution: Inv>> - out Int. lower: Nothing; upper: Inv>>; substitution: Inv>> + out Int. lower: Nothing; upper: Inv>>; substitution: Inv>> Inv>> compiler error @@ -119,7 +119,7 @@ Inv>> Out>> in Int. lower: Out; upper: Out>>; substitution: Out>> - out Int. lower: Out; upper: Out>>; substitution: Out>> + out Int. lower: Out; upper: Out>>; substitution: Out>> Inv>> compiler error @@ -156,7 +156,7 @@ Inv>>> Out>>> in Int. lower: Out>>>; upper: Out>>>; substitution: Out>>> - out Int. lower: Out>>>; upper: Out>>>; substitution: Out>>> + out Int. lower: Out>>>; upper: Out>>>; substitution: Out>>> In>>> compiler error @@ -171,7 +171,7 @@ Out>>> In>>>> in Int. lower: In>; upper: In>>>>; substitution: In>>>> - out Int. lower: In>; upper: In>>>>; substitution: In>>>> + out Int. lower: In>; upper: In>>>>; substitution: In>>>> Inv>>>> compiler error @@ -206,11 +206,11 @@ In>>>>> Out>>>>> in Int. lower: Out; upper: Out>>>>>; substitution: Out>>>>> - out Int. lower: Out; upper: Out>>>>>; substitution: Out>>>>> + out Int. lower: Out; upper: Out>>>>>; substitution: Out>>>>> Inv>>>>> in Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> - out Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> + out Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> Inv>>>>> compiler error @@ -220,7 +220,7 @@ In>>>>> In>>>>> in Int. lower: In>>>>>; upper: In; substitution: In>>>>> - out Int. lower: In>>>>>; upper: In; substitution: In>>>>> + out Int. lower: In>>>>>; upper: In; substitution: In>>>>> Out>>>>> compiler error diff --git a/compiler/testData/capturedTypeApproximation/useSiteOutNullableT.txt b/compiler/testData/capturedTypeApproximation/useSiteOutNullableT.txt index 9499fc2f783..1446b0a19fe 100644 --- a/compiler/testData/capturedTypeApproximation/useSiteOutNullableT.txt +++ b/compiler/testData/capturedTypeApproximation/useSiteOutNullableT.txt @@ -2,7 +2,7 @@ In compiler error Out - in Int. lower: Out; upper: Out; substitution: Out + in Int. lower: Out; upper: Out; substitution: Out<*> out Int. lower: Out; upper: Out; substitution: Out Inv @@ -19,7 +19,7 @@ In> compiler error In> - in Int. lower: In>; upper: In>; substitution: In> + in Int. lower: In>; upper: In>; substitution: In> out Int. lower: In>; upper: In>; substitution: In> In> @@ -36,7 +36,7 @@ Out> compiler error Out> - in Int. lower: Out>; upper: Out>; substitution: Out> + in Int. lower: Out>; upper: Out>; substitution: Out> out Int. lower: Out>; upper: Out>; substitution: Out> Out> @@ -53,7 +53,7 @@ Inv> compiler error Inv> - in Int. lower: Nothing; upper: Inv>; substitution: Inv> + in Int. lower: Nothing; upper: Inv>; substitution: Inv> out Int. lower: Nothing; upper: Inv>; substitution: Inv> Inv> @@ -70,7 +70,7 @@ Inv> compiler error Inv> - in Int. lower: Inv>; upper: Inv>; substitution: Inv> + in Int. lower: Inv>; upper: Inv>; substitution: Inv> out Int. lower: Inv>; upper: Inv>; substitution: Inv> Inv> @@ -87,7 +87,7 @@ Inv> compiler error Inv> - in Int. lower: Inv>; upper: Inv>; substitution: Inv> + in Int. lower: Inv>; upper: Inv>; substitution: Inv> out Int. lower: Inv>; upper: Inv>; substitution: Inv> Inv> @@ -101,18 +101,18 @@ Inv> compiler error In>> - in Int. lower: In>>; upper: In; substitution: In>> + in Int. lower: In>>; upper: In; substitution: In>> out Int. lower: In>>; upper: In; substitution: In>> Out>> - in Int. lower: Out>>; upper: Out>>; substitution: Out>> + in Int. lower: Out>>; upper: Out>>; substitution: Out>> out Int. lower: Out>>; upper: Out>>; substitution: Out>> Inv>> compiler error Inv>> - in Int. lower: Inv; upper: Inv>>; substitution: Inv>> + in Int. lower: Inv; upper: Inv>>; substitution: Inv>> out Int. lower: Inv; upper: Inv>>; substitution: Inv>> Inv>> @@ -123,7 +123,7 @@ Out>> compiler error Inv>> - in Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> + in Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> out Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> Out>> @@ -131,7 +131,7 @@ Out>> out Int. lower: Out>>; upper: Out>>; substitution: Out>> Inv>> - in Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> + in Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> out Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> In>> @@ -221,16 +221,16 @@ In>>>>> compiler error Out>>>>> - in Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> + in Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> out Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> Inv>>>>> compiler error Out>>>>> - in Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> + in Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> out Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> Inv>>>>> - in Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> + in Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> out Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> diff --git a/compiler/testData/capturedTypeApproximation/useSiteOutT.txt b/compiler/testData/capturedTypeApproximation/useSiteOutT.txt index e8f7cc5b063..9b13602d20d 100644 --- a/compiler/testData/capturedTypeApproximation/useSiteOutT.txt +++ b/compiler/testData/capturedTypeApproximation/useSiteOutT.txt @@ -2,7 +2,7 @@ In compiler error Out - in Int. lower: Out; upper: Out; substitution: Out + in Int. lower: Out; upper: Out; substitution: Out<*> out Int. lower: Out; upper: Out; substitution: Out Inv @@ -19,7 +19,7 @@ In> compiler error In> - in Int. lower: In>; upper: In>; substitution: In> + in Int. lower: In>; upper: In>; substitution: In> out Int. lower: In>; upper: In>; substitution: In> In> @@ -36,7 +36,7 @@ Out> compiler error Out> - in Int. lower: Out>; upper: Out>; substitution: Out> + in Int. lower: Out>; upper: Out>; substitution: Out> out Int. lower: Out>; upper: Out>; substitution: Out> Out> @@ -53,7 +53,7 @@ Inv> compiler error Inv> - in Int. lower: Nothing; upper: Inv>; substitution: Inv> + in Int. lower: Nothing; upper: Inv>; substitution: Inv> out Int. lower: Nothing; upper: Inv>; substitution: Inv> Inv> @@ -70,7 +70,7 @@ Inv> compiler error Inv> - in Int. lower: Inv>; upper: Inv>; substitution: Inv> + in Int. lower: Inv>; upper: Inv>; substitution: Inv> out Int. lower: Inv>; upper: Inv>; substitution: Inv> Inv> @@ -87,7 +87,7 @@ Inv> compiler error Inv> - in Int. lower: Inv>; upper: Inv>; substitution: Inv> + in Int. lower: Inv>; upper: Inv>; substitution: Inv> out Int. lower: Inv>; upper: Inv>; substitution: Inv> Inv> @@ -101,18 +101,18 @@ Inv> compiler error In>> - in Int. lower: In>>; upper: In; substitution: In>> + in Int. lower: In>>; upper: In; substitution: In>> out Int. lower: In>>; upper: In; substitution: In>> Out>> - in Int. lower: Out>>; upper: Out>>; substitution: Out>> + in Int. lower: Out>>; upper: Out>>; substitution: Out>> out Int. lower: Out>>; upper: Out>>; substitution: Out>> Inv>> compiler error Inv>> - in Int. lower: Inv; upper: Inv>>; substitution: Inv>> + in Int. lower: Inv; upper: Inv>>; substitution: Inv>> out Int. lower: Inv; upper: Inv>>; substitution: Inv>> Inv>> @@ -123,7 +123,7 @@ Out>> compiler error Inv>> - in Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> + in Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> out Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> Out>> @@ -131,7 +131,7 @@ Out>> out Int. lower: Out>>; upper: Out>>; substitution: Out>> Inv>> - in Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> + in Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> out Int. lower: Inv>>; upper: Inv>>; substitution: Inv>> In>> @@ -221,16 +221,16 @@ In>>>>> compiler error Out>>>>> - in Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> + in Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> out Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> Inv>>>>> compiler error Out>>>>> - in Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> + in Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> out Int. lower: Out>>>>>; upper: Out>; substitution: Out>>>>> Inv>>>>> - in Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> + in Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> out Int. lower: Nothing; upper: Inv>>>>>; substitution: Inv>>>>> diff --git a/compiler/testData/diagnostics/tests/MergePackagesWithJava.txt b/compiler/testData/diagnostics/tests/MergePackagesWithJava.txt index cd78ec98dcc..d67a9ad4c80 100644 --- a/compiler/testData/diagnostics/tests/MergePackagesWithJava.txt +++ b/compiler/testData/diagnostics/tests/MergePackagesWithJava.txt @@ -12168,7 +12168,7 @@ package java { public open override /*1*/ fun addAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean public open override /*1*/ fun clear(): kotlin.Unit public open override /*1*/ /*fake_override*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open fun element(): E! public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int @@ -12176,8 +12176,8 @@ package java { public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.(Mutable)Iterator! public open fun remove(): E! public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public abstract override /*1*/ /*fake_override*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! public open override /*1*/ /*fake_override*/ fun toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>! @@ -13232,7 +13232,7 @@ package java { public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! private open fun readResolve(): kotlin.Any! public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -13381,7 +13381,7 @@ package java { public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -14305,7 +14305,7 @@ package java { public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator!>! public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -14367,7 +14367,7 @@ package java { public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -14396,14 +14396,14 @@ package java { public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean public open override /*1*/ fun clear(): kotlin.Unit public open override /*1*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean 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 isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! public open override /*1*/ /*fake_override*/ fun toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>! @@ -14611,14 +14611,14 @@ package java { public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean public open override /*1*/ fun clear(): kotlin.Unit public open override /*1*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean 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 isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! public open override /*1*/ /*fake_override*/ fun toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>! @@ -15361,7 +15361,7 @@ package java { public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator!>! public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -15479,7 +15479,7 @@ package java { public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator!>! public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -15534,7 +15534,7 @@ package java { public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator!>! public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -15583,7 +15583,7 @@ package java { public open fun pollFirst(): E! public open fun pollLast(): E! public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open fun subSet(/*0*/ p0: E!, /*1*/ p1: E!): java.util.SortedSet! @@ -15716,7 +15716,7 @@ package java { public open override /*1*/ fun isEmpty(): kotlin.Boolean public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.MutableIterator!> public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -15851,14 +15851,14 @@ package java { public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean public open override /*1*/ fun clear(): kotlin.Unit public open override /*1*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean 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 isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! public open override /*1*/ /*fake_override*/ fun toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>! diff --git a/compiler/testData/diagnostics/tests/ValAndFunOverrideCompatibilityClash.txt b/compiler/testData/diagnostics/tests/ValAndFunOverrideCompatibilityClash.txt index 2ce9922730b..d9bd840addd 100644 --- a/compiler/testData/diagnostics/tests/ValAndFunOverrideCompatibilityClash.txt +++ b/compiler/testData/diagnostics/tests/ValAndFunOverrideCompatibilityClash.txt @@ -27,7 +27,7 @@ internal final class Foo1 : java.util.ArrayList { public open override /*1*/ /*fake_override*/ fun add(/*0*/ e: kotlin.Int!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ index: kotlin.Int, /*1*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean - invisible_fake open override /*1*/ /*fake_override*/ fun batchRemove(/*0*/ p0: (kotlin.MutableCollection..kotlin.Collection?), /*1*/ p1: kotlin.Boolean): kotlin.Boolean + invisible_fake open override /*1*/ /*fake_override*/ fun batchRemove(/*0*/ p0: kotlin.(Mutable)Collection<*>!, /*1*/ p1: kotlin.Boolean): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun clear(): kotlin.Unit public open override /*1*/ /*fake_override*/ fun clone(): kotlin.Any! public open override /*1*/ /*fake_override*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean @@ -52,9 +52,9 @@ internal final class Foo1 : java.util.ArrayList { invisible_fake open override /*1*/ /*fake_override*/ fun readObject(/*0*/ p0: java.io.ObjectInputStream!): kotlin.Unit public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun remove(/*0*/ index: kotlin.Int): kotlin.Int! - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean protected/*protected and package*/ open override /*1*/ /*fake_override*/ fun removeRange(/*0*/ p0: kotlin.Int, /*1*/ p1: kotlin.Int): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun set(/*0*/ index: kotlin.Int, /*1*/ element: kotlin.Int!): kotlin.Int! public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.(Mutable)List! diff --git a/compiler/testData/diagnostics/tests/generics/starProjections/collectionInheritedFromJava.kt b/compiler/testData/diagnostics/tests/generics/starProjections/collectionInheritedFromJava.kt new file mode 100644 index 00000000000..5e09012121d --- /dev/null +++ b/compiler/testData/diagnostics/tests/generics/starProjections/collectionInheritedFromJava.kt @@ -0,0 +1,14 @@ +// FILE: p/Base.java + +package p; + +import java.util.*; + +public class Base { + void coll(Collection r) {} +} + +// FILE: k.kt +package p + +class Derived: p.Base() \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/generics/starProjections/collectionInheritedFromJava.txt b/compiler/testData/diagnostics/tests/generics/starProjections/collectionInheritedFromJava.txt new file mode 100644 index 00000000000..a1307d8a9c5 --- /dev/null +++ b/compiler/testData/diagnostics/tests/generics/starProjections/collectionInheritedFromJava.txt @@ -0,0 +1,20 @@ +package + +package p { + + public open class Base { + public constructor Base() + public/*package*/ open fun coll(/*0*/ r: kotlin.(Mutable)Collection<*>!): 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 + } + + internal final class Derived : p.Base { + public constructor Derived() + public/*package*/ open override /*1*/ /*fake_override*/ fun coll(/*0*/ r: kotlin.(Mutable)Collection<*>!): 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 + } +} diff --git a/compiler/testData/diagnostics/tests/generics/starProjections/inheritedFromJava.kt b/compiler/testData/diagnostics/tests/generics/starProjections/inheritedFromJava.kt new file mode 100644 index 00000000000..caf29f2990a --- /dev/null +++ b/compiler/testData/diagnostics/tests/generics/starProjections/inheritedFromJava.kt @@ -0,0 +1,14 @@ +// FILE: p/Base.java + +package p; + +public class Base { + void foo(R r) {} +} + +// FILE: k.kt +package p + +class R> + +class Derived: p.Base() \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/generics/starProjections/inheritedFromJava.txt b/compiler/testData/diagnostics/tests/generics/starProjections/inheritedFromJava.txt new file mode 100644 index 00000000000..50b22296be6 --- /dev/null +++ b/compiler/testData/diagnostics/tests/generics/starProjections/inheritedFromJava.txt @@ -0,0 +1,27 @@ +package + +package p { + + public open class Base { + public constructor Base() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public/*package*/ open fun foo(/*0*/ r: p.R<*>!): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + + internal final class Derived : p.Base { + public constructor Derived() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public/*package*/ open override /*1*/ /*fake_override*/ fun foo(/*0*/ r: p.R<*>!): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + + internal final class R> { + public constructor R>() + 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 + } +} diff --git a/compiler/testData/diagnostics/tests/generics/starProjections/inheritedFromKotlin.kt b/compiler/testData/diagnostics/tests/generics/starProjections/inheritedFromKotlin.kt new file mode 100644 index 00000000000..bcf02a0e721 --- /dev/null +++ b/compiler/testData/diagnostics/tests/generics/starProjections/inheritedFromKotlin.kt @@ -0,0 +1,9 @@ +// !DIAGNOSTICS: -UNUSED_PARAMETER + +class R> + +open class Base { + fun foo(r: R<*>) {} +} + +class Derived: Base() \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/generics/starProjections/inheritedFromKotlin.txt b/compiler/testData/diagnostics/tests/generics/starProjections/inheritedFromKotlin.txt new file mode 100644 index 00000000000..99d9dd3205b --- /dev/null +++ b/compiler/testData/diagnostics/tests/generics/starProjections/inheritedFromKotlin.txt @@ -0,0 +1,24 @@ +package + +internal open class Base { + public constructor Base() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + internal final fun foo(/*0*/ r: R<*>): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +internal final class Derived : Base { + public constructor Derived() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + internal final override /*1*/ /*fake_override*/ fun foo(/*0*/ r: R<*>): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +internal final class R> { + public constructor R>() + 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 +} diff --git a/compiler/testData/diagnostics/tests/imports/PackageLocalClassNotImportedWithDefaultImport.txt b/compiler/testData/diagnostics/tests/imports/PackageLocalClassNotImportedWithDefaultImport.txt index a57b35cb976..f989faaed58 100644 --- a/compiler/testData/diagnostics/tests/imports/PackageLocalClassNotImportedWithDefaultImport.txt +++ b/compiler/testData/diagnostics/tests/imports/PackageLocalClassNotImportedWithDefaultImport.txt @@ -12183,7 +12183,7 @@ package java { public open override /*1*/ fun addAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean public open override /*1*/ fun clear(): kotlin.Unit public open override /*1*/ /*fake_override*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open fun element(): E! public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int @@ -12191,8 +12191,8 @@ package java { public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.(Mutable)Iterator! public open fun remove(): E! public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public abstract override /*1*/ /*fake_override*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! public open override /*1*/ /*fake_override*/ fun toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>! @@ -13247,7 +13247,7 @@ package java { public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! private open fun readResolve(): kotlin.Any! public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -13396,7 +13396,7 @@ package java { public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -14320,7 +14320,7 @@ package java { public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator!>! public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -14382,7 +14382,7 @@ package java { public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -14411,14 +14411,14 @@ package java { public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean public open override /*1*/ fun clear(): kotlin.Unit public open override /*1*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean 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 isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! public open override /*1*/ /*fake_override*/ fun toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>! @@ -14626,14 +14626,14 @@ package java { public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean public open override /*1*/ fun clear(): kotlin.Unit public open override /*1*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean 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 isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! public open override /*1*/ /*fake_override*/ fun toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>! @@ -15376,7 +15376,7 @@ package java { public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator!>! public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -15494,7 +15494,7 @@ package java { public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator!>! public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -15549,7 +15549,7 @@ package java { public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator!>! public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -15598,7 +15598,7 @@ package java { public open fun pollFirst(): E! public open fun pollLast(): E! public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open fun subSet(/*0*/ p0: E!, /*1*/ p1: E!): java.util.SortedSet! @@ -15731,7 +15731,7 @@ package java { public open override /*1*/ fun isEmpty(): kotlin.Boolean public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.MutableIterator!> public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -15866,14 +15866,14 @@ package java { public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean public open override /*1*/ fun clear(): kotlin.Unit public open override /*1*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean 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 isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! public open override /*1*/ /*fake_override*/ fun toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>! diff --git a/compiler/testData/diagnostics/tests/j+k/GenericsInSupertypes.txt b/compiler/testData/diagnostics/tests/j+k/GenericsInSupertypes.txt index 8ddadb29a9c..d4ecedb1ed5 100644 --- a/compiler/testData/diagnostics/tests/j+k/GenericsInSupertypes.txt +++ b/compiler/testData/diagnostics/tests/j+k/GenericsInSupertypes.txt @@ -9,7 +9,7 @@ internal abstract class AL : java.util.ArrayList { public open override /*1*/ /*fake_override*/ fun add(/*0*/ e: p.P!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ index: kotlin.Int, /*1*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean - invisible_fake open override /*1*/ /*fake_override*/ fun batchRemove(/*0*/ p0: (kotlin.MutableCollection..kotlin.Collection?), /*1*/ p1: kotlin.Boolean): kotlin.Boolean + invisible_fake open override /*1*/ /*fake_override*/ fun batchRemove(/*0*/ p0: kotlin.(Mutable)Collection<*>!, /*1*/ p1: kotlin.Boolean): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun clear(): kotlin.Unit public open override /*1*/ /*fake_override*/ fun clone(): kotlin.Any! public open override /*1*/ /*fake_override*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean @@ -34,9 +34,9 @@ internal abstract class AL : java.util.ArrayList { invisible_fake open override /*1*/ /*fake_override*/ fun readObject(/*0*/ p0: java.io.ObjectInputStream!): kotlin.Unit public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun remove(/*0*/ index: kotlin.Int): p.P! - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean protected/*protected and package*/ open override /*1*/ /*fake_override*/ fun removeRange(/*0*/ p0: kotlin.Int, /*1*/ p1: kotlin.Int): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun set(/*0*/ index: kotlin.Int, /*1*/ element: p.P!): p.P! public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.(Mutable)List! diff --git a/compiler/testData/diagnostics/tests/platformTypes/supertypeTypeArguments.txt b/compiler/testData/diagnostics/tests/platformTypes/supertypeTypeArguments.txt index 53e1a0977ac..285b6562bf8 100644 --- a/compiler/testData/diagnostics/tests/platformTypes/supertypeTypeArguments.txt +++ b/compiler/testData/diagnostics/tests/platformTypes/supertypeTypeArguments.txt @@ -61,7 +61,7 @@ internal final class HashMapEx : java.util.HashMap, ExtM invisible_fake open override /*1*/ /*fake_override*/ fun resize(/*0*/ p0: kotlin.Int): kotlin.Unit public open override /*2*/ /*fake_override*/ fun size(): kotlin.Int public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String - invisible_fake open override /*1*/ /*fake_override*/ fun transfer(/*0*/ p0: kotlin.Array<(out) java.util.HashMap.Entry!>!, /*1*/ p1: kotlin.Boolean): kotlin.Unit + invisible_fake open override /*1*/ /*fake_override*/ fun transfer(/*0*/ p0: kotlin.Array<(out) java.util.HashMap.Entry<*, *>!>!, /*1*/ p1: kotlin.Boolean): kotlin.Unit public open override /*2*/ /*fake_override*/ fun values(): kotlin.Collection invisible_fake open override /*1*/ /*fake_override*/ fun writeObject(/*0*/ p0: java.io.ObjectOutputStream!): kotlin.Unit } diff --git a/compiler/testData/diagnostics/tests/scopes/kt955.txt b/compiler/testData/diagnostics/tests/scopes/kt955.txt index 8e40890df4b..2e404fb6b5d 100644 --- a/compiler/testData/diagnostics/tests/scopes/kt955.txt +++ b/compiler/testData/diagnostics/tests/scopes/kt955.txt @@ -12174,7 +12174,7 @@ package java { public open override /*1*/ fun addAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean public open override /*1*/ fun clear(): kotlin.Unit public open override /*1*/ /*fake_override*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open fun element(): E! public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int @@ -12182,8 +12182,8 @@ package java { public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.(Mutable)Iterator! public open fun remove(): E! public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public abstract override /*1*/ /*fake_override*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! public open override /*1*/ /*fake_override*/ fun toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>! @@ -13238,7 +13238,7 @@ package java { public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! private open fun readResolve(): kotlin.Any! public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -13387,7 +13387,7 @@ package java { public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -14311,7 +14311,7 @@ package java { public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator!>! public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -14373,7 +14373,7 @@ package java { public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -14402,14 +14402,14 @@ package java { public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean public open override /*1*/ fun clear(): kotlin.Unit public open override /*1*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean 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 isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! public open override /*1*/ /*fake_override*/ fun toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>! @@ -14617,14 +14617,14 @@ package java { public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean public open override /*1*/ fun clear(): kotlin.Unit public open override /*1*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean 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 isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! public open override /*1*/ /*fake_override*/ fun toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>! @@ -15367,7 +15367,7 @@ package java { public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator!>! public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -15485,7 +15485,7 @@ package java { public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator!>! public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -15540,7 +15540,7 @@ package java { public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator!>! public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -15589,7 +15589,7 @@ package java { public open fun pollFirst(): E! public open fun pollLast(): E! public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open fun subSet(/*0*/ p0: E!, /*1*/ p1: E!): java.util.SortedSet! @@ -15722,7 +15722,7 @@ package java { public open override /*1*/ fun isEmpty(): kotlin.Boolean public abstract override /*1*/ /*fake_override*/ fun iterator(): kotlin.MutableIterator!> public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.Collection): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! @@ -15857,14 +15857,14 @@ package java { public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean public open override /*1*/ fun clear(): kotlin.Unit public open override /*1*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean 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 isEmpty(): kotlin.Boolean public open override /*1*/ fun iterator(): kotlin.(Mutable)Iterator! public open override /*1*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>! public open override /*1*/ /*fake_override*/ fun toArray(/*0*/ a: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>! diff --git a/compiler/testData/diagnostics/tests/scopes/visibility2.txt b/compiler/testData/diagnostics/tests/scopes/visibility2.txt index 7f2b9e1bac9..e8a37bb9823 100644 --- a/compiler/testData/diagnostics/tests/scopes/visibility2.txt +++ b/compiler/testData/diagnostics/tests/scopes/visibility2.txt @@ -47,7 +47,7 @@ package b { public open override /*1*/ /*fake_override*/ fun add(/*0*/ index: kotlin.Int, /*1*/ element: java.lang.Integer!): kotlin.Unit public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ index: kotlin.Int, /*1*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean - invisible_fake open override /*1*/ /*fake_override*/ fun batchRemove(/*0*/ p0: (kotlin.MutableCollection..kotlin.Collection?), /*1*/ p1: kotlin.Boolean): kotlin.Boolean + invisible_fake open override /*1*/ /*fake_override*/ fun batchRemove(/*0*/ p0: kotlin.(Mutable)Collection<*>!, /*1*/ p1: kotlin.Boolean): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun clear(): kotlin.Unit public open override /*1*/ /*fake_override*/ fun clone(): kotlin.Any! public open override /*1*/ /*fake_override*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean @@ -72,9 +72,9 @@ package b { invisible_fake open override /*1*/ /*fake_override*/ fun readObject(/*0*/ p0: java.io.ObjectInputStream!): kotlin.Unit public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun remove(/*0*/ index: kotlin.Int): java.lang.Integer! - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean protected/*protected and package*/ open override /*1*/ /*fake_override*/ fun removeRange(/*0*/ p0: kotlin.Int, /*1*/ p1: kotlin.Int): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun set(/*0*/ index: kotlin.Int, /*1*/ element: java.lang.Integer!): java.lang.Integer! public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.(Mutable)List! diff --git a/compiler/testData/diagnostics/tests/subtyping/kt-1457.txt b/compiler/testData/diagnostics/tests/subtyping/kt-1457.txt index 4e8cb1997bc..5dc75f73dae 100644 --- a/compiler/testData/diagnostics/tests/subtyping/kt-1457.txt +++ b/compiler/testData/diagnostics/tests/subtyping/kt-1457.txt @@ -11,7 +11,7 @@ internal final class MyListOfPairs : java.util.ArrayList> { public open override /*1*/ /*fake_override*/ fun add(/*0*/ index: kotlin.Int, /*1*/ element: Pair!): kotlin.Unit public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ c: (kotlin.MutableCollection!>..kotlin.Collection!>?)): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ index: kotlin.Int, /*1*/ c: (kotlin.MutableCollection!>..kotlin.Collection!>?)): kotlin.Boolean - invisible_fake open override /*1*/ /*fake_override*/ fun batchRemove(/*0*/ p0: (kotlin.MutableCollection..kotlin.Collection?), /*1*/ p1: kotlin.Boolean): kotlin.Boolean + invisible_fake open override /*1*/ /*fake_override*/ fun batchRemove(/*0*/ p0: kotlin.(Mutable)Collection<*>!, /*1*/ p1: kotlin.Boolean): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun clear(): kotlin.Unit public open override /*1*/ /*fake_override*/ fun clone(): kotlin.Any! public open override /*1*/ /*fake_override*/ fun contains(/*0*/ o: kotlin.Any!): kotlin.Boolean @@ -36,9 +36,9 @@ internal final class MyListOfPairs : java.util.ArrayList> { invisible_fake open override /*1*/ /*fake_override*/ fun readObject(/*0*/ p0: java.io.ObjectInputStream!): kotlin.Unit public open override /*1*/ /*fake_override*/ fun remove(/*0*/ o: kotlin.Any!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun remove(/*0*/ index: kotlin.Int): Pair! - public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean protected/*protected and package*/ open override /*1*/ /*fake_override*/ fun removeRange(/*0*/ p0: kotlin.Int, /*1*/ p1: kotlin.Int): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: (kotlin.MutableCollection..kotlin.Collection?)): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ c: kotlin.(Mutable)Collection<*>!): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun set(/*0*/ index: kotlin.Int, /*1*/ element: Pair!): Pair! public open override /*1*/ /*fake_override*/ fun size(): kotlin.Int public open override /*1*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.(Mutable)List!>! diff --git a/compiler/testData/loadJava/compiledJava/UnboundWildcard.java b/compiler/testData/loadJava/compiledJava/UnboundWildcard.java index 94399f1eb9f..cc41d523605 100644 --- a/compiler/testData/loadJava/compiledJava/UnboundWildcard.java +++ b/compiler/testData/loadJava/compiledJava/UnboundWildcard.java @@ -1,5 +1,7 @@ package test; +import java.util.Collection; + public final class UnboundWildcard { public final MyClass foo() { throw new UnsupportedOperationException(); @@ -7,4 +9,8 @@ public final class UnboundWildcard { public interface MyClass { } + + public final Collection collection() { + throw new UnsupportedOperationException(); + } } diff --git a/compiler/testData/loadJava/compiledJava/UnboundWildcard.txt b/compiler/testData/loadJava/compiledJava/UnboundWildcard.txt index 94bd6583d3d..a35728a2b0f 100644 --- a/compiler/testData/loadJava/compiledJava/UnboundWildcard.txt +++ b/compiler/testData/loadJava/compiledJava/UnboundWildcard.txt @@ -2,7 +2,8 @@ package test public final class UnboundWildcard { public constructor UnboundWildcard() - public final fun foo(): test.UnboundWildcard.MyClass! + public final fun collection(): kotlin.(Mutable)Collection<*>! + public final fun foo(): test.UnboundWildcard.MyClass<*>! public trait MyClass { } diff --git a/compiler/testData/type-substitutor.kt b/compiler/testData/type-substitutor.kt index af9559fa720..c5aa0135694 100644 --- a/compiler/testData/type-substitutor.kt +++ b/compiler/testData/type-substitutor.kt @@ -11,3 +11,4 @@ class In class Out class P +class Rec> \ No newline at end of file diff --git a/compiler/testData/type/binding/explicit/star.kt b/compiler/testData/type/binding/explicit/star.kt index 67c7919d97a..0c775a4c7b9 100644 --- a/compiler/testData/type/binding/explicit/star.kt +++ b/compiler/testData/type/binding/explicit/star.kt @@ -1,6 +1,6 @@ val foo: List<*> = null!! /* psi: List<*> -type: List +type: List<*> null */ \ No newline at end of file diff --git a/compiler/testData/type/binding/implicit/star.kt b/compiler/testData/type/binding/implicit/star.kt index f08298a7e09..5f37e3cdb56 100644 --- a/compiler/testData/type/binding/implicit/star.kt +++ b/compiler/testData/type/binding/implicit/star.kt @@ -3,9 +3,9 @@ fun getT(): T = null!! val foo = getT>() /* psi: val foo = getT>() -type: List +type: List<*> typeParameter: defined in kotlin.List - typeProjection: Any? + typeProjection: * psi: val foo = getT>() type: Any? */ \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java index ce165337a55..a9b40045b05 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java @@ -4525,7 +4525,7 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { @TestMetadata("compiler/testData/diagnostics/tests/generics") @TestDataPath("$PROJECT_ROOT") - @InnerTestClasses({Generics.TpAsReified.class, Generics.VarProjection.class}) + @InnerTestClasses({Generics.StarProjections.class, Generics.TpAsReified.class, Generics.VarProjection.class}) @RunWith(JUnit3RunnerWithInners.class) public static class Generics extends AbstractJetDiagnosticsTest { public void testAllFilesPresentInGenerics() throws Exception { @@ -4610,6 +4610,33 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest(fileName); } + @TestMetadata("compiler/testData/diagnostics/tests/generics/starProjections") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class StarProjections extends AbstractJetDiagnosticsTest { + public void testAllFilesPresentInStarProjections() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/tests/generics/starProjections"), Pattern.compile("^(.+)\\.kt$"), true); + } + + @TestMetadata("collectionInheritedFromJava.kt") + public void testCollectionInheritedFromJava() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/generics/starProjections/collectionInheritedFromJava.kt"); + doTest(fileName); + } + + @TestMetadata("inheritedFromJava.kt") + public void testInheritedFromJava() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/generics/starProjections/inheritedFromJava.kt"); + doTest(fileName); + } + + @TestMetadata("inheritedFromKotlin.kt") + public void testInheritedFromKotlin() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/generics/starProjections/inheritedFromKotlin.kt"); + doTest(fileName); + } + } + @TestMetadata("compiler/testData/diagnostics/tests/generics/tpAsReified") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/compiler/tests/org/jetbrains/kotlin/types/AbstractJetTypeBindingTest.kt b/compiler/tests/org/jetbrains/kotlin/types/AbstractJetTypeBindingTest.kt index 06e0f4f7782..473b1c3e95a 100644 --- a/compiler/tests/org/jetbrains/kotlin/types/AbstractJetTypeBindingTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/types/AbstractJetTypeBindingTest.kt @@ -81,7 +81,10 @@ abstract class AbstractJetTypeBindingTest : JetLiteFixture() { "" } - println("typeProjection: ${projection}${argument.typeProjection.getType().render()}") + print("typeProjection: ") + if (argument.typeProjection.isStarProjection()) + printlnWithNoIndent("*") + else printlnWithNoIndent("${projection}${argument.typeProjection.getType().render()}") print(argument.typeBinding) return this } diff --git a/compiler/tests/org/jetbrains/kotlin/types/TypeSubstitutorTest.java b/compiler/tests/org/jetbrains/kotlin/types/TypeSubstitutorTest.java index 40e2c3e5c74..bc772a1593c 100644 --- a/compiler/tests/org/jetbrains/kotlin/types/TypeSubstitutorTest.java +++ b/compiler/tests/org/jetbrains/kotlin/types/TypeSubstitutorTest.java @@ -258,7 +258,7 @@ public class TypeSubstitutorTest extends KotlinTestWithEnvironment { public void testInOutProjectionDeclarationSite() throws Exception { doTest( - "In", + "In<*>", "In", map("T", "out String") ); @@ -266,7 +266,7 @@ public class TypeSubstitutorTest extends KotlinTestWithEnvironment { public void testOutInProjectionDeclarationSite() throws Exception { doTest( - "Out", + "Out<*>", "Out", map("T", "in String") ); @@ -387,4 +387,20 @@ public class TypeSubstitutorTest extends KotlinTestWithEnvironment { // ); //} + public void testStarProjection() throws Exception { + doTest( + "Rec<*>", + "Rec<*>", + map("T", "String") + ); + } + + public void testStarProjectionOut() throws Exception { + doTest( + "Out<*>", + "Out<*>", + map("T", "String") + ); + } + } diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/CapturedTypeApproximation.kt b/core/descriptors/src/org/jetbrains/kotlin/types/CapturedTypeApproximation.kt index 61c2cb60aa0..c02531b4064 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/CapturedTypeApproximation.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/types/CapturedTypeApproximation.kt @@ -72,6 +72,7 @@ private fun TypeProjection.toTypeArgument(typeParameter: TypeParameterDescriptor public fun approximateCapturedTypesIfNecessary(typeProjection: TypeProjection?): TypeProjection? { if (typeProjection == null) return null + if (typeProjection.isStarProjection()) return typeProjection val type = typeProjection.getType() if (!TypeUtils.containsSpecialType(type, { it.isCaptured() })) { diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitutor.java b/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitutor.java index 7401fc67e87..145fa2847ba 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitutor.java +++ b/core/descriptors/src/org/jetbrains/kotlin/types/TypeSubstitutor.java @@ -165,6 +165,8 @@ public class TypeSubstitutor { private TypeProjection unsafeSubstitute(@NotNull TypeProjection originalProjection, int recursionDepth) throws SubstitutionException { assertRecursionDepth(recursionDepth, originalProjection, substitution); + if (originalProjection.isStarProjection()) return originalProjection; + // The type is within the substitution range, i.e. T or T? JetType type = originalProjection.getType(); Variance originalProjectionKind = originalProjection.getProjectionKind(); @@ -278,7 +280,7 @@ public class TypeSubstitutor { switch (conflictType(typeParameter.getVariance(), substitutedTypeArgument.getProjectionKind())) { case NO_CONFLICT: // if the corresponding type parameter is already co/contra-variant, there's not need for an explicit projection - if (typeParameter.getVariance() != Variance.INVARIANT) { + if (typeParameter.getVariance() != Variance.INVARIANT && !substitutedTypeArgument.isStarProjection()) { substitutedTypeArgument = new TypeProjectionImpl(Variance.INVARIANT, substitutedTypeArgument.getType()); } break; diff --git a/core/descriptors/src/org/jetbrains/kotlin/types/TypeUtils.kt b/core/descriptors/src/org/jetbrains/kotlin/types/TypeUtils.kt index 3b8a2cff2c4..a72b02eec33 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/types/TypeUtils.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/types/TypeUtils.kt @@ -28,6 +28,8 @@ import org.jetbrains.kotlin.utils.toReadOnlyList import org.jetbrains.kotlin.types.checker.JetTypeChecker import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.types.isDynamic +import org.jetbrains.kotlin.types.TypeProjection +import org.jetbrains.kotlin.types.TypeProjectionImpl fun JetType.getContainedTypeParameters(): Collection { val declarationDescriptor = getConstructor().getDeclarationDescriptor() @@ -66,4 +68,8 @@ public fun JetType.isSubtypeOf(superType: JetType): Boolean = JetTypeChecker.DEF public fun JetType.cannotBeReified(): Boolean = KotlinBuiltIns.isNothingOrNullableNothing(this) || this.isDynamic() - +fun TypeProjection.substitute(doSubstitute: (JetType) -> JetType): TypeProjection { + return if (isStarProjection()) + this + else TypeProjectionImpl(getProjectionKind(), doSubstitute(getType())) +} \ No newline at end of file diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/TypeUtils.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/TypeUtils.kt index 0a0a9b0ee4f..4dd6affa275 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/TypeUtils.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/TypeUtils.kt @@ -22,6 +22,7 @@ import org.jetbrains.kotlin.resolve.jvm.kotlinSignature.CollectionClassMapping import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.load.java.JvmAnnotationNames import java.util.LinkedHashSet +import org.jetbrains.kotlin.types.typeUtil.substitute fun JetType.makeNullable() = TypeUtils.makeNullable(this) fun JetType.makeNotNullable() = TypeUtils.makeNotNullable(this) @@ -53,7 +54,7 @@ public fun approximateFlexibleTypes(jetType: JetType, outermost: Boolean = true) jetType.getAnnotations(), jetType.getConstructor(), jetType.isMarkedNullable(), - jetType.getArguments().map { TypeProjectionImpl(it.getProjectionKind(), approximateFlexibleTypes(it.getType(), false)) }, + jetType.getArguments().map { it.substitute { type -> approximateFlexibleTypes(type, false)} }, ErrorUtils.createErrorScope("This type is not supposed to be used in member resolution", true) ) } diff --git a/idea/testData/codeInsight/overrideImplement/starProjections.kt b/idea/testData/codeInsight/overrideImplement/starProjections.kt new file mode 100644 index 00000000000..9adeaef343c --- /dev/null +++ b/idea/testData/codeInsight/overrideImplement/starProjections.kt @@ -0,0 +1,9 @@ +class C> + +trait Base { + fun foo(c: C<*>) +} + +class Derived : Base { + +} \ No newline at end of file diff --git a/idea/testData/codeInsight/overrideImplement/starProjections.kt.after b/idea/testData/codeInsight/overrideImplement/starProjections.kt.after new file mode 100644 index 00000000000..ba1f59792b7 --- /dev/null +++ b/idea/testData/codeInsight/overrideImplement/starProjections.kt.after @@ -0,0 +1,11 @@ +class C> + +trait Base { + fun foo(c: C<*>) +} + +class Derived : Base { + override fun foo(c: C<*>) { + throw UnsupportedOperationException() + } +} diff --git a/idea/testData/quickfix/typeMismatch/casts/afterSmartcastImpossible3.kt b/idea/testData/quickfix/typeMismatch/casts/afterSmartcastImpossible3.kt index 6e0347c91c8..531bfb4eb5b 100644 --- a/idea/testData/quickfix/typeMismatch/casts/afterSmartcastImpossible3.kt +++ b/idea/testData/quickfix/typeMismatch/casts/afterSmartcastImpossible3.kt @@ -1,4 +1,4 @@ -// "Cast expression 'x' to 'Foo'" "true" +// "Cast expression 'x' to 'Foo<*>'" "true" trait Foo { fun foo() } @@ -6,6 +6,6 @@ trait Foo { fun bar(_x: Any) { var x = _x if (x is Foo<*>) { - (x as Foo).foo() + (x as Foo<*>).foo() } } \ No newline at end of file diff --git a/idea/testData/quickfix/typeMismatch/casts/beforeSmartcastImpossible3.kt b/idea/testData/quickfix/typeMismatch/casts/beforeSmartcastImpossible3.kt index c2f87d0f351..a3f1be7039e 100644 --- a/idea/testData/quickfix/typeMismatch/casts/beforeSmartcastImpossible3.kt +++ b/idea/testData/quickfix/typeMismatch/casts/beforeSmartcastImpossible3.kt @@ -1,4 +1,4 @@ -// "Cast expression 'x' to 'Foo'" "true" +// "Cast expression 'x' to 'Foo<*>'" "true" trait Foo { fun foo() } diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementTest.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementTest.java index 609cb6c6e69..261cab1a5aa 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/OverrideImplementTest.java @@ -197,4 +197,8 @@ public final class OverrideImplementTest extends AbstractOverrideImplementTest { public void testLocalClass() { doImplementFileTest(); } + + public void testStarProjections() { + doImplementFileTest(); + } }