Allow Result return type and nullability operators on Result type
by default
This commit is contained in:
Vendored
+2
-2
@@ -2,6 +2,6 @@
|
||||
// !DIAGNOSTICS: -UNUSED_EXPRESSION
|
||||
|
||||
fun test(r: Result<Int>?) {
|
||||
r <!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?:<!> 0
|
||||
r<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>isFailure
|
||||
r ?: 0
|
||||
r?.isFailure
|
||||
}
|
||||
Vendored
+1
-1
@@ -5,5 +5,5 @@ fun result(): Result<Int> = TODO()
|
||||
val resultP: Result<Int> = result()
|
||||
|
||||
fun f(r1: Result<Int>?) {
|
||||
r1 <!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?:<!> <!UNUSED_EXPRESSION!>0<!>
|
||||
r1 ?: <!UNUSED_EXPRESSION!>0<!>
|
||||
}
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: +InlineClasses -AllowResultInReturnType
|
||||
|
||||
fun result(): <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = TODO()
|
||||
val resultP: <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = result()
|
||||
fun result(): Result<Int> = TODO()
|
||||
val resultP: Result<Int> = result()
|
||||
|
||||
+42
-42
@@ -16,105 +16,105 @@ fun params(
|
||||
|
||||
class CtorParams(r1: Result<Int>)
|
||||
|
||||
fun returnTypePublic(): <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = TODO()
|
||||
internal fun returnTypeInternal(): <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = TODO()
|
||||
private fun returnTypePrivate(): <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = TODO()
|
||||
fun returnTypeNullable(): <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int>?<!> = TODO()
|
||||
fun returnTypeAlias(): <!RESULT_CLASS_IN_RETURN_TYPE!>ResultAlias<Int><!> = TODO()
|
||||
fun <!RESULT_CLASS_IN_RETURN_TYPE!>returnInferred<!>(r1: Result<Int>, r2: ResultAlias<Int>, b: Boolean) = if (b) r1 else r2
|
||||
fun returnTypePublic(): Result<Int> = TODO()
|
||||
internal fun returnTypeInternal(): Result<Int> = TODO()
|
||||
private fun returnTypePrivate(): Result<Int> = TODO()
|
||||
fun returnTypeNullable(): Result<Int>? = TODO()
|
||||
fun returnTypeAlias(): ResultAlias<Int> = TODO()
|
||||
fun returnInferred(r1: Result<Int>, r2: ResultAlias<Int>, b: Boolean) = if (b) r1 else r2
|
||||
|
||||
fun returnTypeInline(): InlineResult<Int> = TODO()
|
||||
fun returnContainer(): List<Result<Int>> = TODO()
|
||||
|
||||
val topLevelP: <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = TODO()
|
||||
val <!RESULT_CLASS_IN_RETURN_TYPE!>topLevelPInferred<!> = topLevelP
|
||||
internal val topLevelPInternal: <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = TODO()
|
||||
val topLevelP: Result<Int> = TODO()
|
||||
val topLevelPInferred = topLevelP
|
||||
internal val topLevelPInternal: Result<Int> = TODO()
|
||||
|
||||
private val topLevelPPrivate: Result<Int> = TODO()
|
||||
private val topLevelPPrivateInferred = topLevelP
|
||||
|
||||
private val topLevelPPrivateCustomGetter: <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!>
|
||||
private val topLevelPPrivateCustomGetter: Result<Int>
|
||||
get() = TODO()
|
||||
|
||||
val asFunctional: () -> Result<Int> = TODO()
|
||||
|
||||
open class PublicCls(
|
||||
val r1: <!RESULT_CLASS_IN_RETURN_TYPE!>Result<String><!>,
|
||||
val r2: <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int>?<!>,
|
||||
val r3: <!RESULT_CLASS_IN_RETURN_TYPE!>ResultAlias<Int><!>,
|
||||
val r4: <!RESULT_CLASS_IN_RETURN_TYPE!>ResultAlias<Int>?<!>,
|
||||
val r1: Result<String>,
|
||||
val r2: Result<Int>?,
|
||||
val r3: ResultAlias<Int>,
|
||||
val r4: ResultAlias<Int>?,
|
||||
|
||||
val r5: InlineResult<Int>,
|
||||
|
||||
internal val r6: <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!>,
|
||||
internal val r6: Result<Int>,
|
||||
|
||||
private val r7: Result<Int>,
|
||||
val r8: List<Result<Int>>
|
||||
) {
|
||||
val p1: <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = TODO()
|
||||
var p2: <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = TODO()
|
||||
val p3: <!RESULT_CLASS_IN_RETURN_TYPE!>ResultAlias<Int>?<!> = TODO()
|
||||
val p1: Result<Int> = TODO()
|
||||
var p2: Result<Int> = TODO()
|
||||
val p3: ResultAlias<Int>? = TODO()
|
||||
|
||||
val <!RESULT_CLASS_IN_RETURN_TYPE!>p4<!> = p1
|
||||
val p4 = p1
|
||||
|
||||
internal val p5: <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = TODO()
|
||||
internal val p5: Result<Int> = TODO()
|
||||
|
||||
private var p6: Result<Int> = TODO()
|
||||
|
||||
internal val <!RESULT_CLASS_IN_RETURN_TYPE!>p7<!> = p1
|
||||
protected val <!RESULT_CLASS_IN_RETURN_TYPE!>p8<!> = p1
|
||||
internal val p7 = p1
|
||||
protected val p8 = p1
|
||||
|
||||
fun returnInCls(): <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = TODO()
|
||||
protected fun returnInClsProtected(): <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = TODO()
|
||||
private fun returnInClsPrivate(): <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = TODO()
|
||||
fun returnInCls(): Result<Int> = TODO()
|
||||
protected fun returnInClsProtected(): Result<Int> = TODO()
|
||||
private fun returnInClsPrivate(): Result<Int> = TODO()
|
||||
}
|
||||
|
||||
internal open class InternalCls(
|
||||
val r1: <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!>,
|
||||
val r2: <!RESULT_CLASS_IN_RETURN_TYPE!>ResultAlias<Int>?<!>,
|
||||
val r1: Result<Int>,
|
||||
val r2: ResultAlias<Int>?,
|
||||
|
||||
val r3: List<Result<Int>>
|
||||
) {
|
||||
companion object {
|
||||
val cr1: <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = TODO()
|
||||
val cr1: Result<Int> = TODO()
|
||||
|
||||
private val cr2: Result<Int> = TODO()
|
||||
}
|
||||
|
||||
val <!RESULT_CLASS_IN_RETURN_TYPE!>p1<!> = r1
|
||||
val p2: <!RESULT_CLASS_IN_RETURN_TYPE!>Result<String><!> = TODO()
|
||||
val p1 = r1
|
||||
val p2: Result<String> = TODO()
|
||||
|
||||
protected val <!RESULT_CLASS_IN_RETURN_TYPE!>p3<!> = p1
|
||||
protected val p3 = p1
|
||||
|
||||
fun returnInInternal(): <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = TODO()
|
||||
protected fun returnInClsProtected(): <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = TODO()
|
||||
fun returnInInternal(): Result<Int> = TODO()
|
||||
protected fun returnInClsProtected(): Result<Int> = TODO()
|
||||
}
|
||||
|
||||
private class PrivateCls(
|
||||
val r1: <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!>,
|
||||
val r2: <!RESULT_CLASS_IN_RETURN_TYPE!>ResultAlias<Int>?<!>,
|
||||
val r1: Result<Int>,
|
||||
val r2: ResultAlias<Int>?,
|
||||
val r3: List<Result<Int>>
|
||||
) {
|
||||
companion object {
|
||||
val cr1: <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = TODO()
|
||||
val cr1: Result<Int> = TODO()
|
||||
private val cr2: Result<Int> = TODO()
|
||||
}
|
||||
|
||||
val <!RESULT_CLASS_IN_RETURN_TYPE!>p1<!> = r1
|
||||
val p2: <!RESULT_CLASS_IN_RETURN_TYPE!>Result<String><!> = TODO()
|
||||
val p1 = r1
|
||||
val p2: Result<String> = TODO()
|
||||
|
||||
fun returnInPrivate(): <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = TODO()
|
||||
fun returnInPrivate(): Result<Int> = TODO()
|
||||
}
|
||||
|
||||
fun local(r: Result<Int>) {
|
||||
val l1: Result<Int>? = null
|
||||
val l2 = r
|
||||
|
||||
fun localFun(): <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = TODO()
|
||||
fun localFun(): Result<Int> = TODO()
|
||||
|
||||
class F {
|
||||
val p1: <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int><!> = r
|
||||
val <!RESULT_CLASS_IN_RETURN_TYPE!>p2<!> = r
|
||||
val p1: Result<Int> = r
|
||||
val p2 = r
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Vendored
+15
-15
@@ -4,7 +4,7 @@
|
||||
fun <T> id(x: T): T = x
|
||||
|
||||
private val asFun: () -> Result<Int>? = TODO()
|
||||
private val Int.intResult: <!RESULT_CLASS_IN_RETURN_TYPE!>Result<Int>?<!>
|
||||
private val Int.intResult: Result<Int>?
|
||||
get() = null
|
||||
|
||||
fun returnInt(): Int? = 0
|
||||
@@ -12,29 +12,29 @@ fun returnInt(): Int? = 0
|
||||
|
||||
fun nullableOperators(r1: Result<Int>?, b: Boolean) {
|
||||
if (b) {
|
||||
r1<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>!!<!>
|
||||
asFun()<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>!!<!>
|
||||
returnInt()?.intResult<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>!!<!>.toString()
|
||||
r1!!
|
||||
asFun()!!
|
||||
returnInt()?.intResult!!.toString()
|
||||
}
|
||||
|
||||
if (b) {
|
||||
id(r1)<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>!!<!>
|
||||
id(r1)!!
|
||||
}
|
||||
|
||||
if (b) {
|
||||
r1<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>toString()
|
||||
r1<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>let { }
|
||||
returnInt()?.intResult<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>toString()
|
||||
asFun()<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>toString()
|
||||
id(r1)<!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?.<!>toString()
|
||||
r1?.toString()
|
||||
r1?.let { }
|
||||
returnInt()?.intResult?.toString()
|
||||
asFun()?.toString()
|
||||
id(r1)?.toString()
|
||||
}
|
||||
|
||||
if (b) {
|
||||
r1 <!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?:<!> 0
|
||||
r1 <!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?:<!> r1
|
||||
asFun() <!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?:<!> r1 <!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?:<!> 0
|
||||
id(asFun()) <!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?:<!> 0
|
||||
r1 ?: 0
|
||||
r1 ?: r1
|
||||
asFun() ?: r1 ?: 0
|
||||
id(asFun()) ?: 0
|
||||
|
||||
returnInt() ?: returnInt() ?: asFun() <!RESULT_CLASS_WITH_NULLABLE_OPERATOR!>?:<!> 0
|
||||
returnInt() ?: returnInt() ?: asFun() ?: 0
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user