53d6ac24e5
* Change 1.6 to 1.7 constants * Fix SAFE_CALL_WILL_CHANGE_NULLABILITY for testData * Change EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_WARNING to EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_ERROR * Change NON_EXHAUSTIVE_WHEN_STATEMENT to NO_ELSE_IN_WHEN * Fix testData for SafeCallsAreAlwaysNullable * Change T -> T & Any in test dumps * Change INVALID_CHARACTERS_NATIVE_WARNING -> INVALID_CHARACTERS_NATIVE_ERROR * TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_WARNING -> TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR
40 lines
698 B
Kotlin
Vendored
40 lines
698 B
Kotlin
Vendored
// FIR_IDENTICAL
|
|
// ALLOW_KOTLIN_PACKAGE
|
|
// !LANGUAGE: +UnrestrictedBuilderInference
|
|
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
|
// FILE: annotation.kt
|
|
|
|
package kotlin
|
|
|
|
annotation class BuilderInference
|
|
|
|
// FILE: test.kt
|
|
|
|
class Builder<T> {
|
|
fun add(t: T) {}
|
|
}
|
|
|
|
fun <S> build(@BuilderInference g: Builder<S>.() -> Unit): List<S> = TODO()
|
|
fun <S> wrongBuild(g: Builder<S>.() -> Unit): List<S> = TODO()
|
|
|
|
fun <S> Builder<S>.extensionAdd(s: S) {}
|
|
|
|
@BuilderInference
|
|
fun <S> Builder<S>.safeExtensionAdd(s: S) {}
|
|
|
|
val member = build {
|
|
add(42)
|
|
}
|
|
|
|
val memberWithoutAnn = wrongBuild {
|
|
add(42)
|
|
}
|
|
|
|
val extension = build {
|
|
extensionAdd("foo")
|
|
}
|
|
|
|
val safeExtension = build {
|
|
safeExtensionAdd("foo")
|
|
}
|