Data Inflow: Support grouping by expression nullability

This commit is contained in:
Alexey Sedunov
2017-11-10 19:28:52 +03:00
committed by Nikolay Krasko
parent 0a1580159f
commit c1cf03d89c
63 changed files with 668 additions and 4 deletions
@@ -0,0 +1,3 @@
[NotNull Values]
8 val <bold>x = foo(fun(n: Int) = n)</bold>
8 val <bold>x = foo(fun(n: Int) = n)</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
8 val <bold>x = foo(fun(n: Int): Int { return n })</bold>
8 val <bold>x = foo(fun(n: Int): Int { return n })</bold>
+4
View File
@@ -0,0 +1,4 @@
[NotNull Values]
4 val <bold>x = o as String</bold>
4 val <bold>x = o as String</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
3 fun <bold>assignmentWithSum(n: Int): Int {</bold>
3 fun <bold>assignmentWithSum(n: Int): Int {</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
10 val x = <bold>foo</bold>
10 val x = <bold>foo</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
12 val <bold>x = foo</bold>
12 val <bold>x = foo</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
21 val <bold>y = b.foo()</bold>
21 val <bold>y = b.foo()</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
22 val <bold>z = c.foo()</bold>
22 val <bold>z = c.foo()</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
20 val <bold>x = a.foo()</bold>
20 val <bold>x = a.foo()</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
8 val <bold>x = foo(1, 2) { { it } }</bold>
8 val <bold>x = foo(1, 2) { { it } }</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
3 fun foo(<bold>n: Int</bold>, s: String = "???") {
3 fun foo(<bold>n: Int</bold>, s: String = "???") {
@@ -0,0 +1,3 @@
[NotNull Values]
3 fun foo(n: Int, <bold>s: String = "???"</bold>) {
3 fun foo(n: Int, <bold>s: String = "???"</bold>) {
@@ -0,0 +1,3 @@
[NotNull Values]
9 val <bold>x = foo(::bar)</bold>
9 val <bold>x = foo(::bar)</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
10 val <bold>x = foo(f)</bold>
10 val <bold>x = foo(f)</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
5 val <bold>x = (::bar)(1)</bold>
5 val <bold>x = (::bar)(1)</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
3 fun <bold>foo(n: Int) = n + 1</bold>
3 fun <bold>foo(n: Int) = n + 1</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
3 fun <bold>foo(n: Int): Int {</bold>
3 fun <bold>foo(n: Int): Int {</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
11 val x = <bold>foo</bold>
11 val x = <bold>foo</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
7 val <bold>x = foo</bold>
7 val <bold>x = foo</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
9 val <bold>x = foo</bold>
9 val <bold>x = foo</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
4 val <bold>x = if (m > 1) n else 1</bold>
4 val <bold>x = if (m > 1) n else 1</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
8 val <bold>x = foo { it }</bold>
8 val <bold>x = foo { it }</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
9 val <bold>y = foo { it }</bold>
9 val <bold>y = foo { it }</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
4 val <bold>x = { 1 }()</bold>
4 val <bold>x = { 1 }()</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
5 val <bold>x = f()</bold>
5 val <bold>x = f()</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
4 val <bold>x = n</bold>
4 val <bold>x = n</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
4 var <bold>x = n</bold>
4 var <bold>x = n</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
4 val <bold>x: Int = 1</bold>
4 val <bold>x: Int = 1</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
4 val <bold>x: Int</bold>
4 val <bold>x: Int</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
4 var <bold>x: Int = 1</bold>
4 var <bold>x: Int = 1</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
4 var <bold>x: Int</bold>
4 var <bold>x: Int</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
11 val x = <bold>foo</bold>
11 val x = <bold>foo</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
5 fun <bold>bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }</bold>
5 fun <bold>bar(a: Int): Int = foo(a) { if (it > 0) it else return 0 }</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
4 val <bold>x = s!!</bold>
4 val <bold>x = s!!</bold>
+10
View File
@@ -0,0 +1,10 @@
// FLOW: IN
fun test(n: Int): String {
var s = when {
n > 0 -> "+"
n < 0 -> "-"
else -> null
}
return <caret>s
}
@@ -0,0 +1,17 @@
7 else -> <bold>null</bold>
9 return <bold>s</bold>
4 var <bold>s = when {</bold>
4 var s = <bold>when {</bold>
7 else -> <bold>null</bold>
6 n < 0 -> <bold>"-"</bold>
9 return <bold>s</bold>
4 var <bold>s = when {</bold>
4 var s = <bold>when {</bold>
6 n < 0 -> <bold>"-"</bold>
5 n > 0 -> <bold>"+"</bold>
9 return <bold>s</bold>
4 var <bold>s = when {</bold>
4 var s = <bold>when {</bold>
5 n > 0 -> <bold>"+"</bold>
@@ -0,0 +1,18 @@
[Null Values]
7 else -> <bold>null</bold>
9 return <bold>s</bold>
4 var <bold>s = when {</bold>
4 var s = <bold>when {</bold>
7 else -> <bold>null</bold>
[NotNull Values]
6 n < 0 -> <bold>"-"</bold>
9 return <bold>s</bold>
4 var <bold>s = when {</bold>
4 var s = <bold>when {</bold>
6 n < 0 -> <bold>"-"</bold>
5 n > 0 -> <bold>"+"</bold>
9 return <bold>s</bold>
4 var <bold>s = when {</bold>
4 var s = <bold>when {</bold>
5 n > 0 -> <bold>"+"</bold>
@@ -0,0 +1,6 @@
9 return <bold>s</bold>
4 var <bold>s = when {</bold>
4 var s = <bold>when {</bold>
5 n > 0 -> <bold>"+"</bold>
6 n < 0 -> <bold>"-"</bold>
7 else -> <bold>null</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
17 val <bold>y = b.foo()</bold>
17 val <bold>y = b.foo()</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
15 val <bold>y = b.foo</bold>
15 val <bold>y = b.foo</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
20 val <bold>y = b.foo</bold>
20 val <bold>y = b.foo</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
17 val <bold>y = b.foo</bold>
17 val <bold>y = b.foo</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
3 open class A(<bold>n: Int</bold>, s: String = "???")
3 open class A(<bold>n: Int</bold>, s: String = "???")
@@ -0,0 +1,3 @@
[NotNull Values]
3 open class A(n: Int, <bold>s: String = "???"</bold>)
3 open class A(n: Int, <bold>s: String = "???"</bold>)
@@ -0,0 +1,3 @@
[NotNull Values]
15 println("Now my name is '${a.<bold>name</bold>}'")
15 println("Now my name is '${a.<bold>name</bold>}'")
@@ -0,0 +1,3 @@
[NotNull Values]
8 println("And now my name is '$<bold>name</bold>'")
8 println("And now my name is '$<bold>name</bold>'")
@@ -0,0 +1,6 @@
[NotNull Values]
4 val x = <bold>o</bold> as? String
4 val <bold>x = o as? String</bold>
4 val x = <bold>o as? String</bold>
4 val x = <bold>o</bold> as? String
@@ -0,0 +1,3 @@
[NotNull Values]
4 constructor(<bold>n: Int</bold>, s: String = "???")
4 constructor(<bold>n: Int</bold>, s: String = "???")
@@ -0,0 +1,3 @@
[NotNull Values]
4 constructor(n: Int, <bold>s: String = "???"</bold>)
4 constructor(n: Int, <bold>s: String = "???"</bold>)
@@ -0,0 +1,3 @@
[NotNull Values]
25 println("My name is '${a.<bold>name</bold>}'")
25 println("My name is '${a.<bold>name</bold>}'")
@@ -0,0 +1,3 @@
[NotNull Values]
19 println("Now my name is '$<bold>name</bold>'")
19 println("Now my name is '$<bold>name</bold>'")
@@ -0,0 +1,3 @@
[NotNull Values]
3 val <bold>foo: Int = 1</bold>
3 val <bold>foo: Int = 1</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
3 var <bold>foo: Int = 1</bold>
3 var <bold>foo: Int = 1</bold>
@@ -0,0 +1,3 @@
[NotNull Values]
3 open class A(val <bold>n: Int</bold>)
3 open class A(val <bold>n: Int</bold>)
@@ -0,0 +1,3 @@
[NotNull Values]
3 open class A(var <bold>n: Int</bold>) {
3 open class A(var <bold>n: Int</bold>) {
@@ -0,0 +1,3 @@
[NotNull Values]
4 val <bold>x = when (m) {</bold>
4 val <bold>x = when (m) {</bold>