Unify reporting resolution errors for empty delegation calls
- Always report "There is no applicable constructor for call without arguments in superclass" under `constructor` keyword by replacing default TracingStrategy - Remove positioning strategy used for reporting non-applicable for empty delegation calls #KT-6971 Fixed
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
open class B0(x: Int)
|
||||
|
||||
class A0 : B0 {
|
||||
<!EXPLICIT_DELEGATION_CALL_REQUIRED!>constructor<!>()
|
||||
constructor(x: Int) : super(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
}
|
||||
|
||||
// --------------------------
|
||||
|
||||
open class B1 {
|
||||
constructor(x: Int = 1)
|
||||
constructor()
|
||||
}
|
||||
|
||||
class A1 : B1 {
|
||||
<!EXPLICIT_DELEGATION_CALL_REQUIRED!>constructor<!>()
|
||||
constructor(x: Int) : <!OVERLOAD_RESOLUTION_AMBIGUITY!>super<!>()
|
||||
}
|
||||
|
||||
// --------------------------
|
||||
|
||||
open class B2 {
|
||||
constructor(x: Int)
|
||||
constructor(x: String)
|
||||
}
|
||||
|
||||
class A2 : B2 {
|
||||
<!EXPLICIT_DELEGATION_CALL_REQUIRED!>constructor<!>()
|
||||
constructor(x: Int) : <!NONE_APPLICABLE!>super<!>()
|
||||
}
|
||||
|
||||
// --------------------------
|
||||
|
||||
open class B3 {
|
||||
private constructor()
|
||||
}
|
||||
|
||||
class A3 : B3 {
|
||||
<!EXPLICIT_DELEGATION_CALL_REQUIRED!>constructor<!>()
|
||||
constructor(x: Int) : <!INVISIBLE_MEMBER!>super<!>()
|
||||
}
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
package
|
||||
|
||||
internal final class A0 : B0 {
|
||||
public constructor A0()
|
||||
public constructor A0(/*0*/ 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
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal final class A1 : B1 {
|
||||
public constructor A1()
|
||||
public constructor A1(/*0*/ 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
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal final class A2 : B2 {
|
||||
public constructor A2()
|
||||
public constructor A2(/*0*/ 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
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal final class A3 : B3 {
|
||||
public constructor A3()
|
||||
public constructor A3(/*0*/ 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
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal open class B0 {
|
||||
public constructor B0(/*0*/ 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
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal open class B1 {
|
||||
public constructor B1()
|
||||
public constructor B1(/*0*/ 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
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal open class B2 {
|
||||
public constructor B2(/*0*/ x: kotlin.Int)
|
||||
public constructor B2(/*0*/ x: kotlin.String)
|
||||
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 open class B3 {
|
||||
private constructor B3()
|
||||
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,7 @@
|
||||
class A {
|
||||
open inner class Inner
|
||||
|
||||
class Nested : Inner {
|
||||
<!INACCESSIBLE_OUTER_CLASS_EXPRESSION!>constructor()<!>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package
|
||||
|
||||
internal final class A {
|
||||
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
|
||||
|
||||
internal open inner class Inner {
|
||||
public constructor Inner()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal final class Nested : A.Inner {
|
||||
public constructor Nested()
|
||||
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
@@ -6,5 +6,5 @@ open class B(x: Double) {
|
||||
trait C
|
||||
class A : B, C {
|
||||
constructor(): <!NONE_APPLICABLE!>super<!>(' ')
|
||||
<!NONE_APPLICABLE!>constructor<!>(x: Int)
|
||||
<!EXPLICIT_DELEGATION_CALL_REQUIRED!>constructor<!>(x: Int)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user