[FE] Make constructors of sealed classes protected instead of internal

This commit is contained in:
Dmitriy Novozhilov
2021-02-11 10:41:07 +03:00
committed by TeamCityServer
parent e795c2c407
commit f3a8fcaea6
80 changed files with 167 additions and 97 deletions
@@ -3,7 +3,7 @@ package
public fun test(): kotlin.Unit
public sealed class Base {
internal constructor Base()
protected constructor Base()
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
+1 -1
View File
@@ -1,7 +1,7 @@
package
public sealed class Sealed {
internal constructor Sealed(/*0*/ x: kotlin.Int)
protected constructor Sealed(/*0*/ x: kotlin.Int)
public final val x: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -5,7 +5,7 @@ public fun test2(/*0*/ x: Stmt): kotlin.String
public fun test3(/*0*/ x: Expr): kotlin.String
public sealed class Expr : Stmt {
internal constructor Expr()
protected constructor Expr()
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
@@ -26,7 +26,7 @@ public final class ForStmt : Stmt {
}
public sealed class Stmt {
internal constructor Stmt()
protected constructor Stmt()
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
@@ -1,7 +1,7 @@
package
public sealed class Base {
internal constructor Base()
protected constructor Base()
public final fun bar(): kotlin.Int
public final fun baz(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -11,7 +11,7 @@ public sealed class Base {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public sealed class A : Base {
internal constructor A()
protected constructor A()
public final override /*1*/ /*fake_override*/ fun bar(): kotlin.Int
public final override /*1*/ /*fake_override*/ fun baz(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -32,7 +32,7 @@ public sealed class Base {
}
public sealed class A2 : Base.A {
internal constructor A2()
protected constructor A2()
public final override /*1*/ /*fake_override*/ fun bar(): kotlin.Int
public final override /*1*/ /*fake_override*/ fun baz(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -44,7 +44,7 @@ public sealed class Base {
}
public sealed class B : Base {
internal constructor B()
protected constructor B()
public final override /*1*/ /*fake_override*/ fun bar(): kotlin.Int
public final override /*1*/ /*fake_override*/ fun baz(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -54,7 +54,7 @@ public sealed class Base {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public sealed class B1 : Base.B {
internal constructor B1()
protected constructor B1()
public final override /*1*/ /*fake_override*/ fun bar(): kotlin.Int
public final override /*1*/ /*fake_override*/ fun baz(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -5,14 +5,14 @@ public fun test2(/*0*/ a: A): kotlin.Any
public fun test3(/*0*/ a: A): kotlin.Any
public sealed class A {
internal constructor A()
protected constructor A()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public sealed class B : A {
internal constructor B()
protected constructor B()
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
@@ -3,7 +3,7 @@ package
public fun foo(/*0*/ s: Sealed): kotlin.Int
public sealed class Sealed {
internal constructor Sealed(/*0*/ x: kotlin.Int)
protected constructor Sealed(/*0*/ x: kotlin.Int)
public final val x: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -3,7 +3,7 @@ package
public fun foo(/*0*/ s: Sealed): kotlin.Int
public sealed class Sealed {
internal constructor Sealed()
protected constructor Sealed()
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
@@ -6,7 +6,7 @@ public fun fooWithElse(/*0*/ s: Sealed): kotlin.Int
public fun fooWithoutElse(/*0*/ s: Sealed): kotlin.Int
public sealed class Sealed {
internal constructor Sealed()
protected constructor Sealed()
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
@@ -3,7 +3,7 @@ package
public fun foo(/*0*/ s: Sealed): kotlin.Int
public sealed class Sealed {
internal constructor Sealed(/*0*/ x: kotlin.Int)
protected constructor Sealed(/*0*/ x: kotlin.Int)
public final val x: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -3,7 +3,7 @@ package
public fun foo(/*0*/ s: Sealed): kotlin.Int
public sealed class Sealed {
internal constructor Sealed(/*0*/ x: kotlin.Int)
protected constructor Sealed(/*0*/ x: kotlin.Int)
public final val x: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -3,7 +3,7 @@ package
public fun foo(/*0*/ s: Sealed, /*1*/ nf: Sealed.NonFirst): kotlin.Int
public sealed class Sealed {
internal constructor Sealed()
protected constructor Sealed()
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
@@ -16,7 +16,7 @@ public sealed class Sealed {
}
public sealed class NonFirst {
internal constructor NonFirst()
protected constructor NonFirst()
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
@@ -3,7 +3,7 @@ package
public fun foo(/*0*/ s: Sealed?): kotlin.Int
public sealed class Sealed {
internal constructor Sealed(/*0*/ x: kotlin.Int)
protected constructor Sealed(/*0*/ x: kotlin.Int)
public final val x: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -3,7 +3,7 @@ package
public fun foo(/*0*/ s: Sealed): kotlin.Int
public sealed class Sealed {
internal constructor Sealed(/*0*/ x: kotlin.Int)
protected constructor Sealed(/*0*/ x: kotlin.Int)
public final val x: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -3,7 +3,7 @@ package
public fun foo(/*0*/ s: Sealed): kotlin.Int
public sealed class Sealed {
internal constructor Sealed(/*0*/ x: kotlin.Int)
protected constructor Sealed(/*0*/ x: kotlin.Int)
public final val x: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -14,7 +14,7 @@ public final class B : Base {
}
public sealed class Base {
internal constructor Base()
protected constructor Base()
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
+1 -1
View File
@@ -1,7 +1,7 @@
package
public sealed class Sealed {
internal constructor Sealed()
protected constructor Sealed()
public final val p: Sealed
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -20,7 +20,7 @@ package foo {
}
public sealed class Base {
internal constructor Base()
protected constructor Base()
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
@@ -5,13 +5,13 @@ public fun foo(/*0*/ b: Base): kotlin.Int
public fun gav(/*0*/ b: Base?): kotlin.Int
public sealed class Base {
internal constructor Base()
protected constructor Base()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public sealed class A : Base {
internal constructor A()
protected constructor A()
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
@@ -32,7 +32,7 @@ public sealed class Base {
}
public sealed class B : Base {
internal constructor B()
protected constructor B()
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
@@ -38,7 +38,7 @@ package foo {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public sealed class Base {
internal constructor Base()
protected constructor Base()
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
@@ -1,7 +1,7 @@
package
public sealed class Base {
internal constructor Base()
protected constructor Base()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): Base
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -9,7 +9,7 @@ public final class A {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public sealed class Base {
internal constructor Base()
protected constructor Base()
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
+1 -1
View File
@@ -1,7 +1,7 @@
package
public sealed class Base {
internal constructor Base()
protected constructor Base()
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
+1 -1
View File
@@ -1,7 +1,7 @@
package
public sealed class Base {
internal constructor Base()
protected constructor Base()
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
@@ -3,7 +3,7 @@ package
public fun foo(/*0*/ s: Sealed): kotlin.Int
public sealed class Sealed {
internal constructor Sealed(/*0*/ x: kotlin.Int)
protected constructor Sealed(/*0*/ x: kotlin.Int)
public final val x: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -3,7 +3,7 @@ package
public fun foo(/*0*/ s: Sealed): kotlin.Int
public sealed class Sealed {
internal constructor Sealed(/*0*/ x: kotlin.Int)
protected constructor Sealed(/*0*/ x: kotlin.Int)
public final val x: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -3,7 +3,7 @@ package
public fun foo(/*0*/ s: Sealed): kotlin.Int
public sealed class Sealed {
internal constructor Sealed(/*0*/ x: kotlin.Int)
protected constructor Sealed(/*0*/ x: kotlin.Int)
public final val x: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -3,7 +3,7 @@ package
public fun foo(/*0*/ s: Sealed): kotlin.Int
public sealed class Sealed {
internal constructor Sealed()
protected constructor Sealed()
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
@@ -3,7 +3,7 @@ package
public sealed class Sealed {
public constructor Sealed()
protected constructor Sealed(/*0*/ x: kotlin.Int)
internal constructor Sealed(/*0*/ y: kotlin.Int, /*1*/ z: kotlin.Int)
protected constructor Sealed(/*0*/ y: kotlin.Int, /*1*/ z: kotlin.Int)
public final val x: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
+1 -1
View File
@@ -3,7 +3,7 @@ package
public fun </*0*/ T : Foo> doit(/*0*/ arg: T): T
public sealed class Foo {
internal constructor Foo()
protected constructor Foo()
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
@@ -3,7 +3,7 @@ package
public fun priority(/*0*/ op: Operation): kotlin.Int
public sealed class Operation {
internal constructor Operation(/*0*/ left: kotlin.Int, /*1*/ right: kotlin.Int)
protected constructor Operation(/*0*/ left: kotlin.Int, /*1*/ right: kotlin.Int)
public final val left: kotlin.Int
public final val right: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -1,7 +1,7 @@
package
public sealed class Base {
internal constructor Base()
protected constructor Base()
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
+1 -1
View File
@@ -1,7 +1,7 @@
package
public sealed class Tree {
internal constructor Tree()
protected constructor Tree()
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 final fun max(): kotlin.Int
@@ -1,7 +1,7 @@
package
public sealed class Tree {
internal constructor Tree()
protected constructor Tree()
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 final fun max(): kotlin.Int
@@ -1,7 +1,7 @@
package
public sealed class Tree {
internal constructor Tree()
protected constructor Tree()
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 final fun max(): kotlin.Int
@@ -3,7 +3,7 @@ package
public fun foo(/*0*/ s: Sealed): kotlin.Int
public sealed class Sealed {
internal constructor Sealed()
protected constructor Sealed()
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
@@ -9,7 +9,7 @@ public interface Child : Parent {
}
public sealed class Page : Parent {
internal constructor Page()
protected constructor Page()
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
@@ -14,4 +14,4 @@ class A : Base()
package a
class B : <!INVISIBLE_MEMBER, SEALED_INHERITOR_IN_DIFFERENT_MODULE!>Base<!>()
class B : <!SEALED_INHERITOR_IN_DIFFERENT_MODULE!>Base<!>()
@@ -11,7 +11,7 @@ package a {
}
public sealed class Base {
internal constructor Base()
protected constructor Base()
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
@@ -10,7 +10,7 @@ public interface A : Base {
}
public sealed class B : Base {
internal constructor B()
protected constructor B()
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
+1 -1
View File
@@ -1,7 +1,7 @@
package
public sealed class Base {
internal constructor Base()
protected constructor Base()
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
@@ -0,0 +1,17 @@
// ISSUE: KT-44861
// DIAGNOSTICS: -UNUSED_VARIABLE
sealed class Foo() {
class A : Foo()
class B : Foo()
}
fun Foo(kind: String = "A"): Foo = when (kind) {
"A" -> Foo.A()
"B" -> Foo.B()
else -> throw Exception()
}
fun main() {
val foo = <!SEALED_CLASS_CONSTRUCTOR_CALL!>Foo<!>()
}
+17
View File
@@ -0,0 +1,17 @@
// ISSUE: KT-44861
// DIAGNOSTICS: -UNUSED_VARIABLE
sealed class Foo() {
class A : Foo()
class B : Foo()
}
fun Foo(kind: String = "A"): Foo = when (kind) {
"A" -> Foo.A()
"B" -> Foo.B()
else -> throw Exception()
}
fun main() {
val foo = Foo()
}
+26
View File
@@ -0,0 +1,26 @@
package
public fun Foo(/*0*/ kind: kotlin.String = ...): Foo
public fun main(): kotlin.Unit
public sealed class Foo {
protected constructor Foo()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final class A : Foo {
public constructor A()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class B : Foo {
public constructor B()
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
}
}