Minor: explicitly opt-in for diagnostics messages in MultiplatformAnalysisTests

This commit is contained in:
Dmitry Savvinov
2020-08-22 14:44:17 +03:00
parent 9cde42e2bc
commit 68d931969d
31 changed files with 56 additions and 46 deletions
@@ -4,5 +4,5 @@ actual interface A<T> {
}
fun main() {
bar().<!OVERLOAD_RESOLUTION_AMBIGUITY(" public abstract actual fun foo(x: String): Unit defined in A public abstract fun foo(x: String): Unit defined in A")!>foo<!>("")
bar().<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>("")
}
@@ -11,6 +11,6 @@ fun main() {
// Any behaviour is acceptable, as the code is erroneous.
// At the time of writing this test, we resolve to nearest A, i.e.
// 'fromBottom' is resolved, and 'fromLeft' is not.
A().<!UNRESOLVED_REFERENCE("fromLeft")!>fromLeft<!>()
A().<!UNRESOLVED_REFERENCE!>fromLeft<!>()
A().fromBottom()
}
@@ -1,3 +1,5 @@
// !RENDER_DIAGNOSTICS_MESSAGES
package sample
expect class <!AMBIGUOUS_ACTUALS("Class 'A'", "bottom, left")!>A<!> {
@@ -5,7 +5,7 @@ interface B : A
fun testA(x: A) {
x.foo()
x.bar()
x.<!UNRESOLVED_REFERENCE("baz")!>baz<!>()
x.<!UNRESOLVED_REFERENCE!>baz<!>()
take_A_common_1(x)
take_A_common_2_1(x)
@@ -15,7 +15,7 @@ fun testA(x: A) {
fun testB(x: B) {
x.foo()
x.bar()
x.<!UNRESOLVED_REFERENCE("baz")!>baz<!>()
x.<!UNRESOLVED_REFERENCE!>baz<!>()
take_A_common_1(x)
take_A_common_2_1(x)
@@ -12,5 +12,5 @@ fun take2(x: A): DD = null!!
fun take4(x: A): DD = null!!
fun test(x: A) {
<!OVERLOAD_RESOLUTION_AMBIGUITY(" public fun take4(x: A): AA defined in sample in file common-1.kt public fun take4(x: A): DD defined in sample in file common-2-3.kt")!>take4<!>(x)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>take4<!>(x)
}
@@ -16,10 +16,10 @@ fun take0(x: D): Unit = null!!
fun test_1(x: D) {
val res0: Unit = take0(x)
<!OVERLOAD_RESOLUTION_AMBIGUITY(" public fun take1(x: A): AA defined in sample in file common-1.kt public fun take1(x: A): DD defined in sample in file common-2-3.kt public fun take1(x: B): BB defined in sample in file common-2-1.kt public fun take1(x: C): CC defined in sample in file common-2-2.kt")!>take1<!>(x)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>take1<!>(x)
val res2: BB = take2(x)
val res3: BB = take3(x)
<!OVERLOAD_RESOLUTION_AMBIGUITY(" public fun take4(x: A): AA defined in sample in file common-1.kt public fun take4(x: A): DD defined in sample in file common-2-3.kt")!>take4<!>(x)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>take4<!>(x)
}
fun test_2() {
@@ -1,8 +1,8 @@
actual class A
// Error: ACTUAL_WITHOUT_EXPECT, becuase we shouldn't see expects through usual dependencies
actual class <!ACTUAL_WITHOUT_EXPECT("Actual class 'B'", "")!>B<!>
actual class <!ACTUAL_WITHOUT_EXPECT!>B<!>
// OK: though we can't actualize B, we can see it and use it.
fun useB(<!UNUSED_PARAMETER("b")!>b<!>: B) {
fun useB(<!UNUSED_PARAMETER!>b<!>: B) {
}
@@ -1,8 +1,8 @@
actual class A
// Error: ACTUAL_WITHOUT_EXPECT, becuase we shouldn't see expects through usual dependencies
actual class <!ACTUAL_WITHOUT_EXPECT("Actual class 'B'", "")!>B<!>
actual class <!ACTUAL_WITHOUT_EXPECT!>B<!>
// OK: though we can't actualize B, we can see it and use it.
fun useB(<!UNUSED_PARAMETER("b")!>b<!>: B) {
fun useB(<!UNUSED_PARAMETER!>b<!>: B) {
}
@@ -1 +1 @@
expect class <!NO_ACTUAL_FOR_EXPECT("class 'B'", "b-common", "")!>B<!>
expect class <!NO_ACTUAL_FOR_EXPECT!>B<!>
@@ -1,3 +1,3 @@
package foo
expect class <!AMBIGUOUS_ACTUALS("Class 'A'", "bottom, middle")!>A<!>
expect class <!AMBIGUOUS_ACTUALS!>A<!>
@@ -1,3 +1,5 @@
// !RENDER_DIAGNOSTICS_MESSAGES
package foo
expect class <!AMBIGUOUS_ACTUALS("Class 'ActualInMiddleCompatibleInBottom'", "bottom, middle")!>ActualInMiddleCompatibleInBottom<!>
@@ -1,3 +1,3 @@
package foo
<!ACTUAL_WITHOUT_EXPECT("Class 'A'", " The following declaration is incompatible because visibility is different: public final expect class A ")!>private<!> class A
<!ACTUAL_WITHOUT_EXPECT!>private<!> class A
@@ -1,3 +1,5 @@
// !RENDER_DIAGNOSTICS_MESSAGES
package foo
expect class <!AMBIGUOUS_ACTUALS("Class 'A'", "bottom, middle")!>A<!>
@@ -1,3 +1,5 @@
// !RENDER_DIAGNOSTICS_MESSAGES
package foo
actual fun foo<!ACTUAL_WITHOUT_EXPECT("Actual function 'foo'", " The following declaration is incompatible because number of value parameters is different: public expect fun foo(): Int ")!>(x: Int)<!>: Int = x
@@ -1 +1,3 @@
// !RENDER_DIAGNOSTICS_MESSAGES
actual class <!AMBIGUOUS_EXPECTS("Actual class 'A'", "left, right")!>A<!>
@@ -1 +1 @@
expect fun foo<!NO_ACTUAL_FOR_EXPECT("function 'foo'", "bottom for JVM", " The following declaration is incompatible because number of value parameters is different: public actual fun foo(): Int ")!>(x: Int)<!>: Int
expect fun foo<!NO_ACTUAL_FOR_EXPECT!>(x: Int)<!>: Int
@@ -3,4 +3,4 @@ package foo
expect class ExpectInCommonActualInMiddle
expect class ExpectInCommonActualInPlatforms
expect class <!NO_ACTUAL_FOR_EXPECT("class 'ExpectInCommonWithoutActual'", "js for JS", ""), NO_ACTUAL_FOR_EXPECT("class 'ExpectInCommonWithoutActual'", "jvm for JVM", "")!>ExpectInCommonWithoutActual<!>
expect class <!NO_ACTUAL_FOR_EXPECT, NO_ACTUAL_FOR_EXPECT!>ExpectInCommonWithoutActual<!>
@@ -4,7 +4,7 @@ actual class ExpectInCommonActualInPlatforms
actual class ExpectInMiddleActualInPlatforms
expect class <!NO_ACTUAL_FOR_EXPECT("class 'ExpectInJsWithoutActual'", "js for JS", "")!>ExpectInJsWithoutActual<!>
expect class <!NO_ACTUAL_FOR_EXPECT!>ExpectInJsWithoutActual<!>
expect class ExpectInJsActualInJs
actual class ExpectInJsActualInJs
@@ -3,7 +3,7 @@ package foo
actual class ExpectInCommonActualInPlatforms
actual class ExpectInMiddleActualInPlatforms
expect class <!NO_ACTUAL_FOR_EXPECT("class 'ExpectInJvmWithoutActual'", "jvm for JVM", "")!>ExpectInJvmWithoutActual<!>
expect class <!NO_ACTUAL_FOR_EXPECT!>ExpectInJvmWithoutActual<!>
expect class ExpectInJvmActualInJvm
actual class ExpectInJvmActualInJvm
@@ -4,4 +4,4 @@ actual class ExpectInCommonActualInMiddle
expect class ExpectInMiddleActualInPlatforms
expect class <!NO_ACTUAL_FOR_EXPECT("class 'ExpectInMiddleWithoutActual'", "js for JS", ""), NO_ACTUAL_FOR_EXPECT("class 'ExpectInMiddleWithoutActual'", "jvm for JVM", "")!>ExpectInMiddleWithoutActual<!>
expect class <!NO_ACTUAL_FOR_EXPECT, NO_ACTUAL_FOR_EXPECT!>ExpectInMiddleWithoutActual<!>
@@ -1,4 +1,4 @@
package foo
expect class <!NO_ACTUAL_FOR_EXPECT("class 'ExpectInCommonActualInJsOnly'", "jvm for JVM", "")!>ExpectInCommonActualInJsOnly<!>
expect class <!NO_ACTUAL_FOR_EXPECT("class 'ExpectInCommonActualInJvmOnly'", "js for JS", "")!>ExpectInCommonActualInJvmOnly<!>
expect class <!NO_ACTUAL_FOR_EXPECT!>ExpectInCommonActualInJsOnly<!>
expect class <!NO_ACTUAL_FOR_EXPECT!>ExpectInCommonActualInJvmOnly<!>
@@ -1,4 +1,4 @@
package foo
expect class <!NO_ACTUAL_FOR_EXPECT("class 'ExpectInMiddleActualInJsOnly'", "jvm for JVM", "")!>ExpectInMiddleActualInJsOnly<!>
expect class <!NO_ACTUAL_FOR_EXPECT("class 'ExpectInMiddleActualInJvmOnly'", "js for JS", "")!>ExpectInMiddleActualInJvmOnly<!>
expect class <!NO_ACTUAL_FOR_EXPECT!>ExpectInMiddleActualInJsOnly<!>
expect class <!NO_ACTUAL_FOR_EXPECT!>ExpectInMiddleActualInJvmOnly<!>
@@ -6,4 +6,4 @@ interface SubCheck : Check {
}
}
class <!EXPLICIT_OVERRIDE_REQUIRED_IN_MIXED_MODE("public open fun test(): String defined in SubCheckClass", "public open fun test(): String defined in base.CheckClass", "all-compatibility")!>SubCheckClass<!> : CheckClass(), SubCheck
class <!EXPLICIT_OVERRIDE_REQUIRED_IN_MIXED_MODE!>SubCheckClass<!> : CheckClass(), SubCheck
+1 -1
View File
@@ -10,7 +10,7 @@ fun test() {
}
anotherUseA {
<!UNRESOLVED_REFERENCE("foo")!>foo<!>()
<!UNRESOLVED_REFERENCE!>foo<!>()
}
anotherUseA {
@@ -5,6 +5,6 @@ actual class A {
}
fun test() {
<!RESOLUTION_TO_CLASSIFIER("TypealiasFromCommon", "EXPECT_CLASS_AS_FUNCTION", "Expected class TypealiasFromCommon does not have default constructor")!>TypealiasFromCommon<!>().<!DEBUG_INFO_MISSING_UNRESOLVED!>commonMember<!>()
<!RESOLUTION_TO_CLASSIFIER("TypealiasFromCommon", "EXPECT_CLASS_AS_FUNCTION", "Expected class TypealiasFromCommon does not have default constructor")!>TypealiasFromCommon<!>().<!DEBUG_INFO_MISSING_UNRESOLVED!>platformwMember<!>()
<!RESOLUTION_TO_CLASSIFIER!>TypealiasFromCommon<!>().<!DEBUG_INFO_MISSING_UNRESOLVED!>commonMember<!>()
<!RESOLUTION_TO_CLASSIFIER!>TypealiasFromCommon<!>().<!DEBUG_INFO_MISSING_UNRESOLVED!>platformwMember<!>()
}
@@ -1,16 +1,16 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
import kotlin.<!UNRESOLVED_REFERENCE("browser")!>browser<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>window<!>
import <!UNRESOLVED_REFERENCE("kotlinx")!>kotlinx<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>cinterop<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>CPointed<!>
import kotlin.<!UNRESOLVED_REFERENCE!>browser<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>window<!>
import <!UNRESOLVED_REFERENCE!>kotlinx<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>cinterop<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>CPointed<!>
fun jvmSpecific() {
val x: <!UNRESOLVED_REFERENCE("Cloneable")!>Cloneable<!>? = null
val x: <!UNRESOLVED_REFERENCE!>Cloneable<!>? = null
}
fun nativeSpecific() {
val x: <!UNRESOLVED_REFERENCE("CPointed")!>CPointed<!>? = null
val x: <!UNRESOLVED_REFERENCE!>CPointed<!>? = null
}
fun jsSpecific() {
val windowClosed = <!UNRESOLVED_REFERENCE("window")!>window<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>closed<!>
val windowClosed = <!UNRESOLVED_REFERENCE!>window<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>closed<!>
}
+3 -3
View File
@@ -1,14 +1,14 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
import kotlinx.browser.window
import kotlinx.<!UNRESOLVED_REFERENCE("cinterop")!>cinterop<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>CPointed<!>
import kotlinx.<!UNRESOLVED_REFERENCE!>cinterop<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>CPointed<!>
fun jvmSpecific() {
val x: <!UNRESOLVED_REFERENCE("Cloneable")!>Cloneable<!>? = null
val x: <!UNRESOLVED_REFERENCE!>Cloneable<!>? = null
}
fun nativeSpecific() {
val x: <!UNRESOLVED_REFERENCE("CPointed")!>CPointed<!>? = null
val x: <!UNRESOLVED_REFERENCE!>CPointed<!>? = null
}
fun jsSpecific() {
@@ -1,16 +1,16 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
import kotlin.<!UNRESOLVED_REFERENCE("browser")!>browser<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>window<!>
import <!UNRESOLVED_REFERENCE("kotlinx")!>kotlinx<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>cinterop<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>CPointed<!>
import kotlin.<!UNRESOLVED_REFERENCE!>browser<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>window<!>
import <!UNRESOLVED_REFERENCE!>kotlinx<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>cinterop<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>CPointed<!>
fun jvmSpecific() {
val x: Cloneable? = null
}
fun nativeSpecific() {
val x: <!UNRESOLVED_REFERENCE("CPointed")!>CPointed<!>? = null
val x: <!UNRESOLVED_REFERENCE!>CPointed<!>? = null
}
fun jsSpecific() {
val windowClosed = <!UNRESOLVED_REFERENCE("window")!>window<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>closed<!>
val windowClosed = <!UNRESOLVED_REFERENCE!>window<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>closed<!>
}
@@ -1,16 +1,16 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
import kotlin.<!UNRESOLVED_REFERENCE("browser")!>browser<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>window<!>
import <!UNRESOLVED_REFERENCE("kotlinx")!>kotlinx<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>cinterop<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>CPointed<!>
import kotlin.<!UNRESOLVED_REFERENCE!>browser<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>window<!>
import <!UNRESOLVED_REFERENCE!>kotlinx<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>cinterop<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>CPointed<!>
fun jvmSpecific() {
val x: <!UNRESOLVED_REFERENCE("Cloneable")!>Cloneable<!>? = null
val x: <!UNRESOLVED_REFERENCE!>Cloneable<!>? = null
}
fun nativeSpecific() {
val x: <!UNRESOLVED_REFERENCE("CPointed")!>CPointed<!>? = null
val x: <!UNRESOLVED_REFERENCE!>CPointed<!>? = null
}
fun jsSpecific() {
val windowClosed = <!UNRESOLVED_REFERENCE("window")!>window<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>closed<!>
val windowClosed = <!UNRESOLVED_REFERENCE!>window<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>closed<!>
}
@@ -1,4 +1,4 @@
package sample
actual class <!NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS("A", " public final expect fun f(): Unit ")!>A<!> {
actual class <!NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS!>A<!> {
}
@@ -99,7 +99,7 @@ abstract class AbstractMultiModuleIdeResolveTest : AbstractMultiModuleTest() {
getFileText = { it.text },
uncheckedDiagnostics = emptyList(),
withNewInferenceDirective = false,
renderDiagnosticMessages = true
renderDiagnosticMessages = directives.contains(BaseDiagnosticsTest.RENDER_DIAGNOSTICS_MESSAGES)
).toString()
KotlinTestUtils.assertEqualsToFile(expectedFile, actualTextWithDiagnostics)