[kotlin] Provide CFG facade for the extract function refactoring
This is the first implementation of a control flow graph facade for the extract function IDE refactoring. The exact contents of 'KtDataFlowExitPointSnapshot' will be refined later. ^KT-65762 Fixed
This commit is contained in:
+4
@@ -0,0 +1,4 @@
|
||||
annotation class Anno(val value: IntArray)
|
||||
|
||||
@Anno(value = <expr>[1, 2, 3]</expr>)
|
||||
class Foo
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = DefaultExpressionInfo:
|
||||
expression = [1, 2, 3]
|
||||
type = kotlin.IntArray
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = []
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun foo(): Int {
|
||||
<expr>return@foo 1</expr>
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = null
|
||||
hasEscapingJumps = false
|
||||
hasJumps = true
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = kotlin.Int
|
||||
valuedReturnExpressions = [
|
||||
return@foo 1
|
||||
]
|
||||
variableReassignments = []
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun foo(): Int {
|
||||
1.let { <expr>return it + 1</expr> }
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = null
|
||||
hasEscapingJumps = true
|
||||
hasJumps = true
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = kotlin.Int
|
||||
valuedReturnExpressions = [
|
||||
return it + 1
|
||||
]
|
||||
variableReassignments = []
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun foo(): Int {
|
||||
1.let { <expr>return@foo it + 1</expr> }
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = null
|
||||
hasEscapingJumps = true
|
||||
hasJumps = true
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = kotlin.Int
|
||||
valuedReturnExpressions = [
|
||||
return@foo it + 1
|
||||
]
|
||||
variableReassignments = []
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun test(<expr>a: Int = compute()</expr>) {}
|
||||
|
||||
fun compute(): Int = 0
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = null
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = []
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun test(a: Int = <expr>compute()</expr>) {}
|
||||
|
||||
fun compute(): Int = 0
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = DefaultExpressionInfo:
|
||||
expression = compute()
|
||||
type = kotlin.Int
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = []
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
fun foo(a: Int): Int {
|
||||
val b: Int = 1
|
||||
<expr>return a + b</expr>
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = null
|
||||
hasEscapingJumps = false
|
||||
hasJumps = true
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = kotlin.Int
|
||||
valuedReturnExpressions = [
|
||||
return a + b
|
||||
]
|
||||
variableReassignments = []
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
fun test() {
|
||||
<expr>call(1);</expr>
|
||||
call(2)
|
||||
}
|
||||
|
||||
fun call(n: Int): Int = n
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = DefaultExpressionInfo:
|
||||
expression = call(1)
|
||||
type = kotlin.Int
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = []
|
||||
Reference in New Issue
Block a user