[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:
+7
@@ -0,0 +1,7 @@
|
||||
fun test() {
|
||||
var x = intArrayOf(0)
|
||||
<expr>x[0] += 1</expr>
|
||||
consume(x)
|
||||
}
|
||||
|
||||
fun consume(n: Int) {}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = DefaultExpressionInfo:
|
||||
expression = x[0] += 1
|
||||
type = kotlin.Unit
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = []
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
fun test() {
|
||||
var x = intArrayOf(0)
|
||||
<expr>x[0]++</expr>
|
||||
consume(x)
|
||||
}
|
||||
|
||||
fun consume(n: Int) {}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = DefaultExpressionInfo:
|
||||
expression = x[0]++
|
||||
type = kotlin.Unit
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = []
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
fun test() {
|
||||
var x = intArrayOf(0)
|
||||
<expr>++x[0]</expr>
|
||||
consume(x)
|
||||
}
|
||||
|
||||
fun consume(n: Int) {}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = DefaultExpressionInfo:
|
||||
expression = ++x[0]
|
||||
type = kotlin.Unit
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = []
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
fun test() {
|
||||
var x = 0
|
||||
<expr>x += 1</expr>
|
||||
consume(x)
|
||||
}
|
||||
|
||||
fun consume(n: Int) {}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = null
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = [
|
||||
VariableReassignment:
|
||||
expression = x += 1
|
||||
isAugmented = true
|
||||
variable = var x: kotlin.Int
|
||||
]
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
class Foo {
|
||||
var x: Int = 0
|
||||
|
||||
fun test() {
|
||||
<expr>x = 1</expr>
|
||||
}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = null
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = []
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
fun test() {
|
||||
var x = 0
|
||||
if (x > 0) {
|
||||
<expr>x = 1</expr>
|
||||
}
|
||||
consume(x)
|
||||
}
|
||||
|
||||
fun consume(n: Int) {}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = null
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = [
|
||||
VariableReassignment:
|
||||
expression = x = 1
|
||||
isAugmented = false
|
||||
variable = var x: kotlin.Int
|
||||
]
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
fun test() {
|
||||
var (x, y) = Pair(1, 2)
|
||||
<expr>x = 1</expr>
|
||||
consume(x)
|
||||
}
|
||||
|
||||
fun consume(n: Int) {}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = null
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = [
|
||||
VariableReassignment:
|
||||
expression = x = 1
|
||||
isAugmented = false
|
||||
variable = var x: kotlin.Int
|
||||
]
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun test() {
|
||||
<expr>x = "foo"</expr>
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = null
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = []
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
fun test() {
|
||||
var x = 0
|
||||
<expr>x++</expr>
|
||||
consume(x)
|
||||
}
|
||||
|
||||
fun consume(n: Int) {}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = null
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = [
|
||||
VariableReassignment:
|
||||
expression = x++
|
||||
isAugmented = true
|
||||
variable = var x: kotlin.Int
|
||||
]
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
fun test() {
|
||||
var x = 0
|
||||
<expr>++x</expr>
|
||||
consume(x)
|
||||
}
|
||||
|
||||
fun consume(n: Int) {}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = null
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = [
|
||||
VariableReassignment:
|
||||
expression = ++x
|
||||
isAugmented = true
|
||||
variable = var x: kotlin.Int
|
||||
]
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
fun test() {
|
||||
block { n ->
|
||||
<expr>n = 1</expr>
|
||||
}
|
||||
}
|
||||
|
||||
fun block(block: (Int) -> Unit) {}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = null
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = []
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
fun test() {
|
||||
<expr>val x = 0
|
||||
consume(1)</expr>
|
||||
consume(x)
|
||||
}
|
||||
|
||||
fun consume(n: Int) {}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = DefaultExpressionInfo:
|
||||
expression = consume(1)
|
||||
type = kotlin.Unit
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = []
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fun test(n: Int) {
|
||||
<expr>n = 5</expr>
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = null
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = []
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
fun test() {
|
||||
var x = 0
|
||||
<expr>x = 1</expr>
|
||||
consume(x)
|
||||
}
|
||||
|
||||
fun consume(n: Int) {}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = null
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = [
|
||||
VariableReassignment:
|
||||
expression = x = 1
|
||||
isAugmented = false
|
||||
variable = var x: kotlin.Int
|
||||
]
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
var x: Int = 0
|
||||
|
||||
fun test() {
|
||||
<expr>x = 1</expr>
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
KtDataFlowExitPointSnapshot:
|
||||
defaultExpressionInfo = null
|
||||
hasEscapingJumps = false
|
||||
hasJumps = false
|
||||
hasMultipleJumpKinds = false
|
||||
hasMultipleJumpTargets = false
|
||||
loopJumpExpressions = []
|
||||
returnValueType = null
|
||||
valuedReturnExpressions = []
|
||||
variableReassignments = []
|
||||
Reference in New Issue
Block a user