Files
kotlin-fork/compiler/testData/diagnostics
Alexander Udalov d32a02f21a Modify top-level/extension property hierarchy
- rename KTopLevelProperty to KTopLevelVariable
- create KTopLevelExtensionProperty, a subclass of KExtensionProperty
- create KTopLevelProperty, a superclass of KTopLevelVariable and
  KTopLevelExtensionProperty. (In the future, it will have a container of type
  KPackage.)
2014-07-02 01:55:53 +04:00
..
2014-07-02 00:38:50 +04:00

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 +BAR means include only FOO and BAR.

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