A set of additional tests for complex expressions DFA
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
fun baz(s: String?): String {
|
||||
val t = if (s == null) {
|
||||
""
|
||||
}
|
||||
else if (s == "") {
|
||||
val u: String? = null
|
||||
if (u == null) return ""
|
||||
u
|
||||
}
|
||||
else {
|
||||
s
|
||||
}
|
||||
return <!DEBUG_INFO_SMARTCAST!>t<!>
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package
|
||||
|
||||
public fun baz(/*0*/ s: kotlin.String?): kotlin.String
|
||||
@@ -0,0 +1,11 @@
|
||||
fun baz(s: String?, b: Boolean?): String {
|
||||
val t = if (if (b == null) return "" else <!DEBUG_INFO_SMARTCAST!>b<!>) {
|
||||
if (s == null) return ""
|
||||
s
|
||||
}
|
||||
else {
|
||||
if (s != null) return <!DEBUG_INFO_SMARTCAST!>s<!>
|
||||
""
|
||||
}
|
||||
return <!DEBUG_INFO_SMARTCAST!>t<!>
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package
|
||||
|
||||
public fun baz(/*0*/ s: kotlin.String?, /*1*/ b: kotlin.Boolean?): kotlin.String
|
||||
@@ -0,0 +1,11 @@
|
||||
fun baz(s: String?, u: String?): String {
|
||||
val t = when(if (u == null) return "" else <!DEBUG_INFO_SMARTCAST!>u<!>) {
|
||||
"abc" -> u
|
||||
"" -> {
|
||||
if (s == null) return ""
|
||||
s
|
||||
}
|
||||
else -> u
|
||||
}
|
||||
return <!DEBUG_INFO_SMARTCAST!>t<!>
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package
|
||||
|
||||
public fun baz(/*0*/ s: kotlin.String?, /*1*/ u: kotlin.String?): kotlin.String
|
||||
@@ -0,0 +1,13 @@
|
||||
fun baz(s: String?): String {
|
||||
val t = if (s == null) {
|
||||
""
|
||||
}
|
||||
else {
|
||||
val u: String? = null
|
||||
when (u) {
|
||||
null -> ""
|
||||
else -> u
|
||||
}
|
||||
}
|
||||
return <!DEBUG_INFO_SMARTCAST!>t<!>
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package
|
||||
|
||||
public fun baz(/*0*/ s: kotlin.String?): kotlin.String
|
||||
@@ -0,0 +1,9 @@
|
||||
fun baz(s: String?): String {
|
||||
val t = if (s != null) s
|
||||
else {
|
||||
val u: String? = null
|
||||
if (u == null) return ""
|
||||
u
|
||||
}
|
||||
return <!DEBUG_INFO_SMARTCAST!>t<!>
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package
|
||||
|
||||
public fun baz(/*0*/ s: kotlin.String?): kotlin.String
|
||||
@@ -0,0 +1,13 @@
|
||||
fun baz(s: String?, u: String?): String {
|
||||
val t = when(s) {
|
||||
is String -> {
|
||||
if (u == null) return <!DEBUG_INFO_SMARTCAST!>s<!>
|
||||
u
|
||||
}
|
||||
else -> {
|
||||
if (u == null) return ""
|
||||
u
|
||||
}
|
||||
}
|
||||
return <!DEBUG_INFO_SMARTCAST!>t<!>
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package
|
||||
|
||||
public fun baz(/*0*/ s: kotlin.String?, /*1*/ u: kotlin.String?): kotlin.String
|
||||
@@ -14967,12 +14967,36 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("ifCascadeExprNotNull.kt")
|
||||
public void testIfCascadeExprNotNull() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/ifCascadeExprNotNull.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("ifExprInConditionNonNull.kt")
|
||||
public void testIfExprInConditionNonNull() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/ifExprInConditionNonNull.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("ifExprInWhenSubjectNonNull.kt")
|
||||
public void testIfExprInWhenSubjectNonNull() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/ifExprInWhenSubjectNonNull.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("ifExprNonNull.kt")
|
||||
public void testIfExprNonNull() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/ifExprNonNull.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("ifWhenExprNonNull.kt")
|
||||
public void testIfWhenExprNonNull() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/ifWhenExprNonNull.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("implicitReceiver.kt")
|
||||
public void testImplicitReceiver() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/implicitReceiver.kt");
|
||||
@@ -15231,6 +15255,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("shortIfExprNotNull.kt")
|
||||
public void testShortIfExprNotNull() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/shortIfExprNotNull.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("smartCastOnElvis.kt")
|
||||
public void testSmartCastOnElvis() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/smartCastOnElvis.kt");
|
||||
@@ -15327,6 +15357,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("whenIfExprNonNull.kt")
|
||||
public void testWhenIfExprNonNull() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/whenIfExprNonNull.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("whenSubjectImpossible.kt")
|
||||
public void testWhenSubjectImpossible() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/smartCasts/whenSubjectImpossible.kt");
|
||||
|
||||
Reference in New Issue
Block a user