Render incompatible impl member in "no impl for header" diagnostic
This commit is contained in:
+6
-8
@@ -48,10 +48,14 @@ object PlatformIncompatibilityDiagnosticRenderer :
|
|||||||
append("The following declaration")
|
append("The following declaration")
|
||||||
if (descriptors.size == 1) append(" is") else append("s are")
|
if (descriptors.size == 1) append(" is") else append("s are")
|
||||||
append(" incompatible")
|
append(" incompatible")
|
||||||
incompatibility.reason?.let { append(" because $it") }
|
incompatibility.reason?.let { appendln(" because $it:") }
|
||||||
|
|
||||||
|
for (descriptor in descriptors) {
|
||||||
|
append(indent + " ")
|
||||||
|
appendln(renderDescriptor(descriptor))
|
||||||
|
}
|
||||||
|
|
||||||
incompatibility.unimplemented?.let { unimplemented ->
|
incompatibility.unimplemented?.let { unimplemented ->
|
||||||
appendln(".")
|
|
||||||
append(indent)
|
append(indent)
|
||||||
appendln("No implementations are found for members listed below:")
|
appendln("No implementations are found for members listed below:")
|
||||||
for ((descriptor, mapping) in unimplemented) {
|
for ((descriptor, mapping) in unimplemented) {
|
||||||
@@ -63,12 +67,6 @@ object PlatformIncompatibilityDiagnosticRenderer :
|
|||||||
}
|
}
|
||||||
render(mapping, indent + INDENTATION_UNIT, renderDescriptor)
|
render(mapping, indent + INDENTATION_UNIT, renderDescriptor)
|
||||||
}
|
}
|
||||||
} ?: run {
|
|
||||||
appendln(":")
|
|
||||||
for (descriptor in descriptors) {
|
|
||||||
append(indent + " ")
|
|
||||||
appendln(renderDescriptor(descriptor))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -6,7 +6,8 @@ Output:
|
|||||||
Exit code: COMPILATION_ERROR
|
Exit code: COMPILATION_ERROR
|
||||||
Output:
|
Output:
|
||||||
compiler/testData/multiplatform/classScopes/constructorIncorrectSignature/common.kt:1:14: error: header declaration 'Foo' has no implementation in module
|
compiler/testData/multiplatform/classScopes/constructorIncorrectSignature/common.kt:1:14: error: header declaration 'Foo' has no implementation in module
|
||||||
The following declaration is incompatible because some members are not implemented.
|
The following declaration is incompatible because some members are not implemented:
|
||||||
|
public final impl class Foo
|
||||||
No implementations are found for members listed below:
|
No implementations are found for members listed below:
|
||||||
|
|
||||||
public constructor Foo(s: String)
|
public constructor Foo(s: String)
|
||||||
@@ -22,4 +23,3 @@ impl class Foo {
|
|||||||
compiler/testData/multiplatform/classScopes/constructorIncorrectSignature/jvm.kt:2:5: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
compiler/testData/multiplatform/classScopes/constructorIncorrectSignature/jvm.kt:2:5: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
||||||
impl constructor(s: Array<String>)
|
impl constructor(s: Array<String>)
|
||||||
^
|
^
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -6,7 +6,8 @@ Output:
|
|||||||
Exit code: COMPILATION_ERROR
|
Exit code: COMPILATION_ERROR
|
||||||
Output:
|
Output:
|
||||||
compiler/testData/multiplatform/classScopes/functionIncorrectSignature/common.kt:1:14: error: header declaration 'Foo' has no implementation in module
|
compiler/testData/multiplatform/classScopes/functionIncorrectSignature/common.kt:1:14: error: header declaration 'Foo' has no implementation in module
|
||||||
The following declaration is incompatible because some members are not implemented.
|
The following declaration is incompatible because some members are not implemented:
|
||||||
|
public final impl class Foo
|
||||||
No implementations are found for members listed below:
|
No implementations are found for members listed below:
|
||||||
|
|
||||||
public final header fun function(b: ByteArray): Int
|
public final header fun function(b: ByteArray): Int
|
||||||
@@ -22,4 +23,3 @@ impl class Foo {
|
|||||||
compiler/testData/multiplatform/classScopes/functionIncorrectSignature/jvm.kt:2:5: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
compiler/testData/multiplatform/classScopes/functionIncorrectSignature/jvm.kt:2:5: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
||||||
impl fun function(b: ByteArray): Long = b.size.toLong()
|
impl fun function(b: ByteArray): Long = b.size.toLong()
|
||||||
^
|
^
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ Output:
|
|||||||
Exit code: COMPILATION_ERROR
|
Exit code: COMPILATION_ERROR
|
||||||
Output:
|
Output:
|
||||||
compiler/testData/multiplatform/classScopes/missingConstructor/common.kt:1:14: error: header declaration 'Foo' has no implementation in module
|
compiler/testData/multiplatform/classScopes/missingConstructor/common.kt:1:14: error: header declaration 'Foo' has no implementation in module
|
||||||
The following declaration is incompatible because some members are not implemented.
|
The following declaration is incompatible because some members are not implemented:
|
||||||
|
public final impl class Foo
|
||||||
No implementations are found for members listed below:
|
No implementations are found for members listed below:
|
||||||
|
|
||||||
public constructor Foo(s: String)
|
public constructor Foo(s: String)
|
||||||
@@ -19,4 +20,3 @@ header class Foo {
|
|||||||
compiler/testData/multiplatform/classScopes/missingConstructor/jvm.kt:1:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
compiler/testData/multiplatform/classScopes/missingConstructor/jvm.kt:1:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
||||||
impl class Foo
|
impl class Foo
|
||||||
^
|
^
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ Output:
|
|||||||
Exit code: COMPILATION_ERROR
|
Exit code: COMPILATION_ERROR
|
||||||
Output:
|
Output:
|
||||||
compiler/testData/multiplatform/classScopes/missingFunction/common.kt:1:14: error: header declaration 'Foo' has no implementation in module
|
compiler/testData/multiplatform/classScopes/missingFunction/common.kt:1:14: error: header declaration 'Foo' has no implementation in module
|
||||||
The following declaration is incompatible because some members are not implemented.
|
The following declaration is incompatible because some members are not implemented:
|
||||||
|
public final impl class Foo
|
||||||
No implementations are found for members listed below:
|
No implementations are found for members listed below:
|
||||||
|
|
||||||
public final header fun function(s: String): Unit
|
public final header fun function(s: String): Unit
|
||||||
@@ -16,4 +17,3 @@ header class Foo {
|
|||||||
compiler/testData/multiplatform/classScopes/missingFunction/jvm.kt:1:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
compiler/testData/multiplatform/classScopes/missingFunction/jvm.kt:1:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
||||||
impl class Foo
|
impl class Foo
|
||||||
^
|
^
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user