A set of additional tests for complex expressions DFA

This commit is contained in:
Mikhail Glukhikh
2015-12-11 12:08:36 +03:00
parent d024045638
commit 6fb871a088
13 changed files with 125 additions and 0 deletions
@@ -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");