92fa107471
- PackageLocalClassNotImportedWithDefaultImport.kt goes to codegen multi-file tests. File in java.lang moved to kotlin.jvm, which seems irrelevant to the test, because java.lang is prohibited by the VM - MergePackagesWithJava.kt (KT-689, Java and Kotlin in the same package) and kt955.kt (Unable to import from default package) are considered too obsolete to even test and are thus deleted Also check that there's no more than 1000 lines in the .txt file in diagnostic tests.
Several directives can be added in the beginning of a test file in the syntax:
// !DIRECTIVE
Directives:
1. DIAGNOSTICS
Must be
'([ + - ! ] DIAGNOSTIC_FACTORY_NAME | ERROR | WARNING | INFO ) +'
where
-
'+'means 'include'; -
'-'means 'exclude'; -
'!'means 'exclude everything but this'.Directives are applied in the order of appearance, i.e.
!FOO +BARmeans include onlyFOOandBAR.
Examples:
// !DIAGNOSTICS: -WARNING +CAST_NEVER_SUCCEEDS
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE
2. CHECK_TYPE
The directive adds the following declarations to the file:
class _<T>
fun <T> T.checkType(f: (_<T>) -> Unit) = f
With that, an exact type of an expression can be checked in the following way:
fun test(expr: A) {
expr checkType { it: _<A> }
}
Usage:
// !CHECK_TYPE
3. FILE
The directive let you compose a test consisting of several files in one actual file.
Usage:
// FILE: A.java /* Java code */
// FILE: B.kt /* kotlin code */